Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use towncrier for all or most Plone packages #2548

Closed
mauritsvanrees opened this issue Oct 1, 2018 · 6 comments
Closed

Use towncrier for all or most Plone packages #2548

mauritsvanrees opened this issue Oct 1, 2018 · 6 comments
Assignees

Comments

@mauritsvanrees
Copy link
Member

mauritsvanrees commented Oct 1, 2018

Towncrier is a tool for putting the changes in news fragments instead of a single CHANGES.rst that will get merge errors.

See also #2524. Busy on this during the Saltlabs Sprint in Halle.
This should be helpful for those wanted to assist: https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst

For a package, all branches used in 4.3-5.2 should be initialized to use towncrier. Partially this can be automated and partially you will need to edit the CHANGES.rst and move the unreleased changes to files in the news directory.

We may not need to do this for all packages. Also, it might be okay to do it for only a part of the packages at first, and see if it actually works in practice. But should be fine, and has been in use for a while.

List of packages:

  • Plone -> no towncrier
  • Products.ATContentTypes
  • Products.Archetypes
  • Products.CMFDynamicViewFTI
  • Products.CMFEditions
  • Products.CMFFormController
  • Products.CMFPlacefulWorkflow
  • Products.CMFPlone
  • Products.CMFQuickInstallerTool
  • Products.ExtendedPathIndex
  • Products.Marshall
  • Products.MimetypesRegistry
  • Products.PlacelessTranslationService
  • Products.PloneLanguageTool
  • Products.PlonePAS
  • Products.PortalTransforms
  • Products.ResourceRegistries
  • Products.contentmigration
  • Products.statusmessages
  • Products.validation
  • archetypes.multilingual
  • archetypes.referencebrowserwidget
  • archetypes.schemaextender
  • borg.localrole
  • collective.monkeypatcher
  • collective.xmltestreport
  • diazo
  • mockup
  • plone.alterego
  • plone.api
  • plone.app.blob
  • plone.app.caching
  • plone.app.collection
  • plone.app.content
  • plone.app.contentlisting
  • plone.app.contentmenu
  • plone.app.contentrules
  • plone.app.contenttypes
  • plone.app.controlpanel
  • plone.app.customerize
  • plone.app.debugtoolbar
  • plone.app.dexterity
  • plone.app.discussion
  • plone.app.event
  • plone.app.folder
  • plone.app.i18n
  • plone.app.imaging
  • plone.app.intid
  • plone.app.iterate
  • plone.app.layout
  • plone.app.linkintegrity
  • plone.app.locales
  • plone.app.lockingbehavior
  • plone.app.multilingual
  • plone.app.portlets
  • plone.app.querystring
  • plone.app.redirector
  • plone.app.referenceablebehavior
  • plone.app.registry
  • plone.app.relationfield
  • plone.app.robotframework
  • plone.app.testing
  • plone.app.textfield
  • plone.app.theming
  • plone.app.upgrade
  • plone.app.users
  • plone.app.uuid
  • plone.app.versioningbehavior
  • plone.app.viewletmanager
  • plone.app.vocabularies
  • plone.app.widgets
  • plone.app.workflow
  • plone.app.z3cform
  • plone.autoform
  • plone.batching
  • plone.behavior
  • plone.browserlayer
  • plone.cachepurging
  • plone.caching
  • plone.contentrules
  • plone.dexterity
  • plone.event
  • plone.folder
  • plone.formwidget.namedfile
  • plone.formwidget.recurrence
  • plone.i18n
  • plone.indexer
  • plone.intelligenttext
  • plone.keyring
  • plone.locking
  • plone.memoize
  • plone.namedfile
  • plone.outputfilters
  • plone.portlet.collection
  • plone.portlet.static
  • plone.portlets
  • plone.protect
  • plone.recipe.alltests
  • plone.recipe.zeoserver
  • plone.recipe.zope2instance
  • plone.registry
  • plone.releaser
  • plone.reload
  • plone.resource
  • plone.resourceeditor
  • plone.rest
  • plone.restapi
  • plone.rfc822
  • plone.scale
  • plone.schema
  • plone.schemaeditor
  • plone.session
  • plone.stringinterp
  • plone.subrequest
  • plone.supermodel
  • plone.synchronize
  • plone.testing
  • plone.theme
  • plone.themepreview
  • plone.tiles
  • plone.transformchain
  • plone.uuid
  • plone.versioncheck
  • plone.z3cform
  • plonetheme.barceloneta
  • plonetheme.sunburst
@gforcada
Copy link
Member

gforcada commented Oct 1, 2018

Should we update Mr.roboto to warn if the towmcrier config is there but changes.rst is modified? 🤔

@mauritsvanrees
Copy link
Member Author

It could help.
But it should already be hard to modify CHANGES.rst, because there is no header for the next version. Well, one could easily add an entry to the previous header...
I guess a check could easily lead to false positives, where a contributor edits the CHANGES.rst file directly to fix a typo.

@mauritsvanrees
Copy link
Member Author

Note that in some cases, you may need to add a dummy issue, so you have a unique identifier for towncrier. See plone/Products.CMFFormController#17.

@gforcada
Copy link
Member

gforcada commented Feb 8, 2019

I added a bunch of them while making releases today 🍰 ✨

One issue that I noticed while making company package releases is that if you create a news/123.my-fancy-suffix it is silently ignored by towncrier 😞

I already filed a ticket on twisted/towncrier#137 to add a lint mode, so one can verify the news snippets before releasing, to ensure no snippet is left behind.

@ale-rt
Copy link
Member

ale-rt commented Feb 8, 2019

Just for the record, my usual workflow, with the current tools available, when releasing is to:

  • run bin/prerelease
  • then I check fancy news files and the produced changelog
  • run bin/release
  • run bin/postrelease

Having a linter might be a nice addition but many times amending the produced changelog is something you want to do (especially when you have lot of changes).

gforcada referenced this issue in plone/plone.restapi Feb 9, 2019
@gforcada
Copy link
Member

I think this can be closed, if any repository is still not initialized, with plone/meta it should 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants