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

docs(FAQ): explain why is chore entries not in my CHANGELOG #195

Closed
wants to merge 1 commit into from

Conversation

stevemao
Copy link
Member

@stevemao stevemao commented Jun 17, 2017

I was surprised to see people asking for this since it made sense to me when I looked at it the first time. But too many people asking for it so maybe worth to add this? Mostly I copied @nexdrew's comment in issue #135.

Closes #135

I was surprised to see people asking for this since it made sense to me when I looked at it the first time. But too many people asking for it so maybe worth to add this? Mostly I copied @nexdrew's comment in the issue #135.

Closes #135
@coveralls
Copy link

coveralls commented Jun 17, 2017

Coverage Status

Coverage remained the same at 99.515% when pulling af852ec on feature/expain-why-chore-isnt-in-changelog into 2790e08 on master.

Copy link
Member

@nexdrew nexdrew left a comment

Choose a reason for hiding this comment

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

A few minor suggestions around wording.

@@ -307,6 +307,14 @@ Although this will allow each commit to be included as separate entries in your

For this reason, we recommend keeping the scope of each PR to one general feature or fix. In practice, this allows you to use unstructured commit messages when committing each little change and then squash them into a single commit with a structured message (referencing the PR number) once they have been reviewed and accepted.

### Why is `chore`, `style`, `refactor`, `docs`, `ci` or `build` entries not in my CHANGELOG?

TL;DR: Those entries don't make any different to your end-users, unless there's a BREAKING CHANGE.
Copy link
Member

Choose a reason for hiding this comment

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

Maybe change this line to this?

These entries shouldn't make any difference to your end-users, unless there's a BREAKING CHANGE, in which case the entry **will** be included in the CHANGELOG.


TL;DR: Those entries don't make any different to your end-users, unless there's a BREAKING CHANGE.

Typically, commits marked as chore do not end up in the CHANGELOG by default. Since the CHANGELOG file is always included in the published package, the idea is to strike a balance between including the important changes (in an easy to read/render format) and keeping the file to a reasonable size. If all changes were included, it would essentially duplicate the entire git log.
Copy link
Member

Choose a reason for hiding this comment

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

Can we add this link?

Since the CHANGELOG file is [always included](https://docs.npmjs.com/files/package.json#files) in the published package...


Typically, commits marked as chore do not end up in the CHANGELOG by default. Since the CHANGELOG file is always included in the published package, the idea is to strike a balance between including the important changes (in an easy to read/render format) and keeping the file to a reasonable size. If all changes were included, it would essentially duplicate the entire git log.

The only reason that chore ended up in the CHANGELOG is because it was also marked as a BREAKING CHANGE, which is a little odd but understandable.
Copy link
Member

Choose a reason for hiding this comment

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

One more suggestion, let's change this line to:

The only reason a chore (or similar entry) will end up in the CHANGELOG is if it is also marked as a BREAKING CHANGE.

@stevemao
Copy link
Member Author

Blocked by #219

@bcoe
Copy link
Member

bcoe commented Nov 29, 2017

@stevemao this documentation seems reasonable, but my temptation is to potentially move it into a docs/faq.md file; Similarly, I was thinking we could have a docs/advanced.md outlining some interesting advanced tips and tricks.

We've taken this approach with yargs (splitting docs across a few files in docs/) and I think it's helped keep a more concise easy to follow README.md.

@bcoe
Copy link
Member

bcoe commented May 21, 2018

@stevemao let's dust off #219 and land this.

@bcoe
Copy link
Member

bcoe commented Nov 1, 2018

@stevemao @nexdrew do you still think this is worthwhile to add? any more comments @nexdrew.

@hutson
Copy link
Contributor

hutson commented Nov 2, 2018

I think it's still worth adding 👍

@hutson hutson assigned hutson and bcoe and unassigned hutson Nov 2, 2018
@hutson hutson added the docs label Nov 2, 2018
@bcoe
Copy link
Member

bcoe commented Feb 14, 2019

@hutson @nexdrew just bringing this ticket back to your attention, don't suppose we could reopen this conversation in slack?

Copy link
Contributor

@hutson hutson left a comment

Choose a reason for hiding this comment

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

Looks good to me!

@hutson
Copy link
Contributor

hutson commented Feb 15, 2019

@bcoe I'm not in Slack anymore, but this PR still looks good to me. I feel the explanation will really help our community understand the versioning behavior of standard-version.

@restfulhead
Copy link

Hey everyone,

I was watching #280 which now refers to this ticket. Just to add my two cents to the discussion: We do have some smaller libraries, where we don't always add new features. Sometimes we just implement doc or chore changes. I'd argue many of those changes are still valuable for the end-user.

Take this very PR for example. If you would release this PR maybe along with some other documentation improvements, but no feature, then there would be a release without any release notes. This seems odd to the end-user.

Of course the workaround would be to just label such changes as a fix, but it would still be nice if I could configure the types of changes that go into the changelog based on my use case. I would assume this configuration would be different, depending on the type and size of the library/project/use case someone is working on.

Regarding difference to the git log: In our case, typically many commits make up a PR. The PR is then merged or squash merged with a conventional commit message. So this would be one entry in the change log per PR and not one entry per commit.

@bcoe
Copy link
Member

bcoe commented Mar 12, 2019

@ruhkopf @stevemao I'm seeing this same problem in some open-source libraries I contribute to at work; @stevemao how hard would it be to add a simple array configuration setting that allows someone to specify which sections are available in their README, with the default being the current behavior.

@bcoe bcoe added the triaged label Mar 12, 2019
@bcoe
Copy link
Member

bcoe commented Mar 12, 2019

@ruhkopf want to create a ticket for this feature? I'd rather make this configurable than land these docs explaining why we don't support chores, to be honest.

@stevemao
Copy link
Member Author

@bcoe at the moment it is just a config file (not an option).

@bcoe
Copy link
Member

bcoe commented Mar 13, 2019

@stevemao what project does this config file live in; I think it would be nice to make it more easily configurable.

For context, @JustinBeckwith and I are exploring using conventional commit messages for some of the libraries we're working on. However, doing so will likely require a bit more flexibility in CHANGELOG generation, and some additions to the specification.

@stevemao
Copy link
Member Author

There used to be a PR on adding a new preset to make angular-like conventions easy to config. I think we should create one and use it more.

@bcoe
Copy link
Member

bcoe commented Mar 15, 2019

@stevemao I agree, do you think we could make this the preset that we use for standard-version by default, and base it on: https://www.conventionalcommits.org/en/v1.0.0-beta.3/

How would this preset be different than others (what would make it more configurable)?

@stevemao
Copy link
Member Author

I agree, do you think we could make this the preset that we use for standard-version by default, and base it on: https://www.conventionalcommits.org/en/v1.0.0-beta.3/

yes, and even angular config can be based on it

On top of my head, we can just list types that need to goto the CHANGELOG. BREAKING CHANGE keywords to mark this is important. Maybe some aliases (EG: feat becomes Features and BREAKING CHANGE will be listed under BREAKING CHANGES entry)? Pretty much https://github.com/Jimdo/changelogrc-spec

@bcoe
Copy link
Member

bcoe commented May 5, 2019

since #323, you can now configure whatever commit types you'd like to show up in your CHANGELOG \o/

@bcoe bcoe closed this May 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

Chores section
6 participants