Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

No good way to handle changelogs for larger teams #301

Closed
Shardj opened this issue Apr 23, 2019 · 8 comments
Closed

No good way to handle changelogs for larger teams #301

Shardj opened this issue Apr 23, 2019 · 8 comments

Comments

@Shardj
Copy link

Shardj commented Apr 23, 2019

Just having a changelog file which you write to during development is fine for smaller teams. But with larger teams this will cause git conflicts. Also it doesn't work very neatly with any kind of automated deployment as you need to manually change the unreleased tag to the version it's deploying under or use something like sed which would be very unrobust.

I don't know if any libraries exist for this (something I'm looking for) but I'd suggest each new change for the changelog is actually written as a file in a set "changes" directory. This way you get no conflicts as long as you name files after their ticket. And you can automatically write the changes to your main changelog file during packaging/build. Do this by simply adding the date and new tag/release version number to your changelog, then reading files in the changes directory and postpend their contents to the changelog file in whatever format you like, then remove the contents of the changes directory.

If this doesn't exist and the idea interests anyone I'll make a library for it.

@Shardj
Copy link
Author

Shardj commented Apr 24, 2019

I threw together a quick bash script with the basic functionality of what I'm describing https://github.com/Shardj/teamchangelog

@zanseb
Copy link

zanseb commented May 22, 2019

FWIW: GitLab has a similar approach as you described. More info can be found at https://docs.gitlab.com/ee/development/changelog.html and https://gitlab.com/gitlab-org/gitlab-ce/tree/master/changelogs/unreleased

@Shardj
Copy link
Author

Shardj commented May 22, 2019

Thanks @zanseb that does look like exactly what I wanted. Still looking out for other solutions though if anyone else knows of any although at this point I'm probably going with my custom built solution.

@cbm755
Copy link

cbm755 commented Jun 4, 2019

SymPy uses a bot + PR template [1] which helps contributors write Changelog entries. SymPy has a lot of first-time contributors and for example, that bot points them at appropriate docs.

[1] https://github.com/sympy/sympy/wiki/Writing-Release-Notes

@iocampomx
Copy link

Hi @Shardj I thought for a moment your original statement, but monolithic applications came to my mind when you mentioned large teams, I think this is more suitable for microservices and two-pizza teams, which from my experience is the path the industry is following. This is of course not a rule, and I do respect large applications and large teams, but perhaps they need a different mechanism to trace logs.

@Shardj
Copy link
Author

Shardj commented Jun 9, 2019

Hi @Shardj I thought for a moment your original statement, but monolithic applications came to my mind when you mentioned large teams, I think this is more suitable for microservices and two-pizza teams, which from my experience is the path the industry is following. This is of course not a rule, and I do respect large applications and large teams, but perhaps they need a different mechanism to trace logs.

I absolutely agree, my reasoning is this: keep-a-changelog's suggestion for changelogs pushes itself as the main standard and is suggested everywhere I look on the web. But it completely fails to address the issues I mentioned for large teams. I simply hoped a well maintained library that someone knows of could solve the issues and be mentioned on keep-a-changelog for those who are looking for something more.

@GrahamTheCoder
Copy link

#56 helps for some use cases

@mdickinson
Copy link

For what it's worth, the approach described in the original issue description is the one that core Python uses. There's a custom tool called blurb which manages creating the news entries and putting them in the right place, along with a GitHub bot that checks that every PR has a news entry (unless there's an explicitly added label saying that a news entry is unnecessary). I don't know to what extent it's possible to use blurb for projects other than core Python.

blurb: https://github.com/python/core-workflow/tree/master/blurb

Repository owner locked and limited conversation to collaborators Mar 8, 2023
@olivierlacan olivierlacan converted this issue into discussion #512 Mar 8, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants