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

Add: changelog-file.md to the Docs-for-Contributors-and-Maintainers section. #222

Merged
merged 19 commits into from
Apr 15, 2024

Conversation

miguelalizo
Copy link
Contributor

Addresses Issue #215 - Describe what a changelog is in the documentation

@miguelalizo
Copy link
Contributor Author

I think this addition is in a good state to be review. I tried to capture the information from the issue and maybe a bit more. Open to discussion if anything is missing or needs to be changed!

@lwasser
Copy link
Member

lwasser commented Apr 9, 2024

@miguelalizo this page is great. Thank you for another wonderful PR.

Note: when we add new content to our pyOpenSci guidebook, we always have a community review period! I've left a bit of feedback. I also opened the pr up for community review. I gave folks a week to provide feedback. I will check back in next week and we will then get this merged!

@miguelalizo
Copy link
Contributor Author

miguelalizo commented Apr 9, 2024

@lwasser Thanks for leaving some feedback! I'm having trouble finding where you left the feedback. Is it tied to this PR somwhere?

Copy link
Member

@lwasser lwasser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm glad that you pinged me! i left a review and didn't actually submit it. all of the comments should be visible now - my mistake!


[Keep a Changelog.md](https://keepachangelog.com/en/1.1.0/) is great, simple resource for understanding what a changelog is, how to create a good changelog, and includes some pointers of things to avoid in a changelog.

```{admonition} Semantic Versioning
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's add a call out / link to this page on versioning your package that is in the guide (which also recommends semver!!!

https://www.pyopensci.org/python-package-guide/package-structure-code/python-package-versions.html

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally missed this page! Thanks for the pointer. Just added a callout in the admonition


- **Contributor Recognition**: Acknowledgment of contributors who made significant contributions to the release, fostering a sense of community and appreciation for their efforts.

## What does it look like?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we want to add a short section regarding how maintainers use the changelog.
Something like (just an idea for language but feel free to adjust)

Often you will see a change log that documents a few things

  1. Unreleased commits
    at the top of the changelog, it's common to have an ## Unreleased section. This is where you can add new fixes, updates and features that have been added to the package since the last release.
    This section might look something like this:
## Unreleased
* Fix: Fixed a bug.... more here. (@github_username, #issuenumber) 
* Add: new feature to ...more here (@github_username, #issuenumber) 
  1. Below the unreleased section, there will be a section for each release. In these sections, you can organize new Fixes, Additions and update together.
## v1.0

### Updates
* Fix: Fixed a bug.... more here. (@github_username, #issuenumber) 

### Additions 
* Add: new feature to ...more here (@github_username, #issuenumber) 

### Deprecations

### Contributors to this release

When you are ready to make a new release, you can re-organize the list of unreleased elements into a section that is specific to that new release number.

The unreleased section then always lives at the top of the file. And as new features are added after release 1.x, they get added to that section.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! I will add a section titled "How do maintainers use it?" right before the "What does it look like?" section. Also, your writeup is already very descriptive and I'm not sure there is more to add to it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok fantastic!! thank you!


### Fixed

- [PROJECTNAME-TTTT](http://tickets.projectname.com/browse/PROJECTNAME-TTTT)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this. i often just use a issue number on github. but i could see that maybe some projects might have a different type of issue tracker. we might want to default to github/gitlab aproach for this guide however and could have a breakout that talks about different ways to link to issue tracker tickets!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment

Copy link
Collaborator

@ucodery ucodery left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a wonderful guide. Very motivating to the new project author I think!

documentation/repository-files/changelog-file.md Outdated Show resolved Hide resolved
documentation/repository-files/changelog-file.md Outdated Show resolved Hide resolved
documentation/repository-files/changelog-file.md Outdated Show resolved Hide resolved

[Keep a Changelog.md](https://keepachangelog.com/en/1.1.0/) is great, simple resource for understanding what a changelog is, how to create a good changelog, and includes some pointers of things to avoid in a changelog.

```{admonition} Semantic Versioning
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Versioning is a big topic, so much so that we have a guide for it! https://www.pyopensci.org/python-package-guide/package-structure-code/python-package-versions.html

We should link there rather than try and define semver twice in this guide IMO. But a good tip could be that the version string of a release often makes "chapters" in a changelog.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the callout @ucodery . @lwasser mentioned the same exact point in the feedback above and I just made sure to add a call-out rather than duplicating the effort.


## What does it look like?

```markdown
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, but I think real examples are sometimes easier to follow than ones entirely made up. We must have a project already that has a well-maintained changelog (@lwasser ?) that we can copy as an example? We could clip it for the code block and link to the repo for curious reader to dig deeper.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a great idea. Also, it does seem like the projects will benefit from this guide on changelogs since after going through almost all the projects on PyOpenSci, there is an clear trend of not having a standard for changelogs. Some projects have them as rst files, some projects have them as .txt file and many don't have a changeling at all!

I just added the changelog of Devicely as it is one of the few markdown versions that also follows semver and is based on keep a changelog. The format is not perfect however, since the with the 1.1.0, it seems the project authors stopped using the Added / Changed / Removed subheadings.

Please advice if we'd like to revert back to the template example as opposed to the real example from Devicely if needed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i agree with you both - great suggestion. let's use the real world example rather than a made up one!! and i love that we are also highlighting one of our packages by doing this!

@miguelalizo
Copy link
Contributor Author

@lwasser @ucodery thanks for the feedback! I made some edits and left some comments in the reviews to try to clarify any doubts I had.

```markdown
# Change Log
All notable changes to this project will be documented in this file.
Often you will see a change log that documents a few things
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Often you will see a change log that documents a few things
Often you will see a changelog that documents a few things

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds like the opener to a bulleted list. But I think the amount of detail that follows is too much for a list, can this be refactored into a full introduction sentence?

documentation/repository-files/changelog-file.md Outdated Show resolved Hide resolved
## Unreleased
* Fix: Fixed a bug.... more here. (@github_username, #issuenumber)
* Add: new feature to ...more here (@github_username, #issuenumber)
Below the unreleased section, there will be a section for each release. In these sections, you can organize new Fixes, Additions and update together.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds more like the guide and not something readers should copy into a CHANGELOG file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. I moved explanation out and cleaned up the section.


## [1.2.4] - 2017-03-15
When you are ready to make a new release, you can re-organize the list of unreleased elements into a section that is specific to that new release number.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes the process of releasing a changelog sound complicated. I think if a maintainer follows the best practices described here making a release can be done by adding 2 lines

 ## Unreleased
+
+ ## v5.12.0

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ahhhh @ucodery this might be partially my fault.

this is what i'm used to seeing

or this

essentially you have a large flowing unreleased section. Then when you go to make a release, you organize into fixed, added, removed/ deprecated contributors.

However your suggest is also good and much simpler. i'm curious what you think? we could stick with the simpler version but add a small breakout on how the changelog might be reorganized for a release (as an option).

Any changelog is better than no changelog so i'm open to thoughts here :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both valid points! I think it's easier to just see an example of where my thoughts are on this rather than explaining it. I rewrote the section and took somewhat of a hybrid approach. Let me know what you think!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, that makes more sense, thanks for the examples @lwasser!

documentation/repository-files/changelog-file.md Outdated Show resolved Hide resolved
documentation/repository-files/changelog-file.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@ucodery ucodery left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work!

Copy link
Member

@lwasser lwasser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great @miguelalizo many thanks! @ucodery thanks again for all of the review here!! let's merge!

@lwasser lwasser merged commit 8ef5e93 into pyOpenSci:main Apr 15, 2024
4 checks passed
@tkoyama010
Copy link
Member

@all-contributors please add @miguelalizo for doc

Copy link
Contributor

@tkoyama010

I've put up a pull request to add @miguelalizo! 🎉

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

Successfully merging this pull request may close these issues.

4 participants