-
Notifications
You must be signed in to change notification settings - Fork 96
Use Towncrier for Changelog? #270
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
Comments
Even with our 2.x I don't think this is an issue since this is a dev tool. No need to require the end users to have py >=3.5. I see there are quite a few steps to this workflow, which will increase the chance to forget something. I think this would be best if it could be integrated with tox and easily automated. |
Thanks Thomas for your feedback! 👍
Yes, I think, the normal user shouldn't be affected much as the releases are done by the maintainers only.
I thought of that too. 😉 Maybe my description was a bit verbose, but I wanted to make sure it contains some "flesh". Typically, the normal user has to create only one file with a specific name and some content. That's all. I think, this is not really difficult. We could describe that in our "Contributing" section. For the release manager(s), there are indeed some more steps involved. As you rightfully noted, this can be done with tox. |
Looking at the pypi page, the possible issue types seem to be rather complete, even including a
We can ask the people who open PRs to also open an issue for reference and discussion. In the end, I'm always for more automation, as it allows us to focus more on the essentials, and removes possibility for mistakes. That's a yes from me 👍 |
That's true. I also worked with Towncrier in a local branch. The only issue that I found is, when you do not have an issue, but you want to record the change.
You mean, we should separate the issue from a new issue which is only related to the fragment? Or maybe I missed your idea.
Thanks. 😃 Yes, automation is usually a good thing. Just wanted to make sure I don't over-engineering it. 😉 I still have my local branch. If I push it we can play with that. |
If that change is worth recording, maybe it is also worth creating an issue for 😉.
I meant that each pull request (change effected) should close at least one issue. I think that having an issue for each changelog entry would make us more aware of what is actually changing, and it would encourage discussion on changes that could actually affect the users. While we're at it, I have to say that I like the |
Situation
Currently, all changes are recorded in a single
CHANGELOG.rst
file. In most cases this is enough and it works well.However, in some cases conflicts can occur. Sometimes it would be helpful to have a tool which could create that changelog automatically.
Idea
Some projects use the towncrier tool. It is built around "news fragments", little text snippets that are stored in different files under a common directory (e.g.
changes.d
). When a new release is drafted, these files are brought together and create the final changelog file. This minimizes any conflicts.Every filename contains an issue number and a "type". A type can be feature, bugfix, doc, removal, or you can use self-defined types. These types will become sections in the final changelog file. All fragments are collected, sorted, and added under the sections.
When Towncrier is correctly set up, a typical workflow looks like this:
123
.towncrier create 123.bugfix
.This file will be added inside the
changes.d
directory.The more issues you solve, the more files you will collect inside your
changes.d
directory. At some point, we need to create a new release. In this case, the workflow looks like this:(could be done in other ways too, but this makes things a bit easier).
towncrier build --draft
.towncrier build
.This command will remove all files inside the
changes.d
directory and create the final changelog file.Pros
changes.d
.This makes it easier to see which will end up in the new release.
Cons
(This may be not as a big disadvantage as we move to Python 3 soon.)
@python-semver/reviewers @tlaferriere what do you think about that? Would that be helpful or just too much?
The text was updated successfully, but these errors were encountered: