-
Notifications
You must be signed in to change notification settings - Fork 37
Description
skeleton-based projects (except for Setuptools and maybe cherrypy libs) currently rely on manually-merged CHANGES.rst, meaning it's not feasible for changes in the skeleton like 133c5e6 to generate changelog entries when incorporated in projects downstream. Adding a manual entry there would cause conflicts with every merge downstream.
The solution for this problem is for projects to adopt something like towncrier
or scriv
or reno
. My main reluctance in adopting one of these is that they all require an extra "finalization" step prior to cutting a release. The current process is super-lightweight (tag and push). Adding a changelog manager will require that every release be managed and managed on a device that has a terminal and git push access. It's conceivable that a Github action could be added to enact a finalize step.
I'm also somewhat reluctant as I'd like to avoid the need to create a new file for each change, but the only alternative would be to somehow indicate the user-facing release notes in the commit history, and since no project has successfully demonstrated that, I'm inclined to accept the file-based approach, despite the toil that adds.
Another concern I want to address is to avoid the need for there to be an issue associated with every change. Although it's best practice to associate an issue or PR with a change, I don't want to require that there be one, the way the Setuptools project does. I want a process that degrades nicely for projects that are informal and fast moving.
I wanted to use reno, as it promises not to require a 'finalization' step, but the caveats scare me. My next instinct would be to use scriv, but since Setuptools uses towncrier, it may be best to use towncrier.