-
Notifications
You must be signed in to change notification settings - Fork 798
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 switch to include commit body #242
Comments
@derekgreer Interesting no one noticed this, it's a great idea. When we squash our PRs on GitHub, it puts the squashed commits into the body, e.g.:
It would be cool if that body could be put into the changelog as an indented list underneath the main commit message. |
Even just having extra detail beyond the first line, other than only breaking changes would be useful. Whether that's a list of commits in a PR being merged in, or descriptive text added manually as part of the commit message. Some new features, or involved fixes may warrant additional description above and beyond the one line. Suggesting "you can manually edit the changelog" as has been mentioned in other issues, to my mind, kind of largely defeats the purpose of using an automated tool... if the info is already in the commit, it should be able to be pulled out of the commit log and injected into the change log. Especially if changelogs aren't being generated immediately every time there's a PR merge, or whatever.. having to then go back and manually add some description to the generated file, sometime in the future, is not very reasonable. |
see motivation for a more flexible preset: conventional-changelog/conventional-changelog#421 |
Maybe, we can use |
@stevemao this seems clever 😄 (in the good sense of the word). I might still be inclined to make it a config option that gets turned on. |
Was any progress made on this? This tool is fab but I require the full commit message in the Changelog, rather than just the header. @stevemao Can you elaborate on what you meant re the |
@joshtoper see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details |
I'm really in favour of this idea. I've done away with the develop branch in my projects as I tend to work myself from feature/issue to feature/issue and publish asap. Having the commit body included in the changelog would be very helpful in providing some context to the changelog. |
Any progress or plan on supporting this? I'm also very interested in being able to customize changelog generation, as I may want to only include a section of the commit body in the changelog. |
This would be extremely helpful for many of my projects. I'd love to be able to outline a majority of the changes in my CHANGELOG by using a commit body without ejecting: |
@crutchcorn Perfect use case scenario. |
I'm going to be looking into adding this functionality. Linking related issues: |
@crutchcorn I've been slammed with various other projects recently, but would appreciate the patch 👍 this chat can potentially be a good place to coordinate. |
@crutchcorn do you intend to make a simple option to enable this feature instead of needing to create a customized template? |
@patrickmichalina I plan on making it a simple toggle. I've been reading through the source code of the dependencies and have an idea of how to add to this, but it's kinda down my priority list. I'll try taking a stab throughout the week or two, but it might take me a bit to get through |
Looking forward to this feature as well |
Any updates? |
I've some changes: #675 |
Any news? |
Would love to see this feature get merged. The body text describes rich information that's absolutely worthy of going in the release notes. |
Just a heads up if anyone needs to implement this now to their project, it's possible with a little configuration and a custom commit template. It's a bit tricky with whitespace handling in Handlebars + Markdown formatting, mine is definitely a little rough around the edges and YMMV based on how you format commit messages, but it works for us :) Suggestions welcome. First, you need your semantic-release config in a const { readFileSync } = require('fs')
const { join } = require('path')
module.exports = {
plugins: [
...
[
'@semantic-release/release-notes-generator',
{
writerOpts: {
commitPartial: readFileSync(join(__dirname, 'path/to/commit.hbs'), 'utf-8')
}
}
],
...
]
} And here's my modified ✅{{#if scope}} **{{scope}}:**
{{~/if}} {{#if subject}}
{{~subject}}
{{~else}}
{{~header}}
{{~/if}}
{{~!-- commit link --}} {{#if @root.linkReferences~}}
([{{shortHash}}](
{{~#if @root.repository}}
{{~#if @root.host}}
{{~@root.host}}/
{{~/if}}
{{~#if @root.owner}}
{{~@root.owner}}/
{{~/if}}
{{~@root.repository}}
{{~else}}
{{~@root.repoUrl}}
{{~/if}}/
{{~@root.commit}}/{{hash}}))
{{~else}}
{{~shortHash}}
{{~/if}}
{{~!-- commit references --}}
{{~#if references~}}
, closes
{{~#each references}} {{#if @root.linkReferences~}}
[
{{~#if this.owner}}
{{~this.owner}}/
{{~/if}}
{{~this.repository}}#{{this.issue}}](
{{~#if @root.repository}}
{{~#if @root.host}}
{{~@root.host}}/
{{~/if}}
{{~#if this.repository}}
{{~#if this.owner}}
{{~this.owner}}/
{{~/if}}
{{~this.repository}}
{{~else}}
{{~#if @root.owner}}
{{~@root.owner}}/
{{~/if}}
{{~@root.repository}}
{{~/if}}
{{~else}}
{{~@root.repoUrl}}
{{~/if}}/
{{~@root.issue}}/{{this.issue}})
{{~else}}
{{~#if this.owner}}
{{~this.owner}}/
{{~/if}}
{{~this.repository}}#{{this.issue}}
{{~/if}}{{/each}}
{{~/if}}
{{~#if body}}
{{{{raw}}}}
{{{{/raw}}}}
{{body}}
{{~/if}}
{{{{raw}}}}
{{{{/raw}}}}
|
Thank you very much, @ddx32 !! Your solution works fine for me! |
My team uses semantic-release for a large number of projects and this feature would be awesome to provide more detail in Changelogs. |
I'm using lerna, which relies on conventional-changelog for automated changelogs. Being able to include commit body in changelog would be an amazing improvement. Is there any plans to add this feature, super-easy research (among devs in my company) reveals that this is a VERY popular improvement 💪🏻 Thanks for all your good work! |
Also looking to how to add body to lerna's changelog. |
I would like to add that having a way to specify a section of the commit message body that goes into the changelog would be extra valuable to me. This way, you can add both a message directed at other developers of the same project (which doesn't show up in the changelog), and a message directed at the readers of the changelog (be they end users or developers of some code consuming your project). In the meanwhile, big thanks to @ddx32! Your suggestion seems to solve most of what I need 🙏 ❤️ EDIT: here's the commit where I implemented ddx32's suggestion in our project, in case anyone finds it helpful to see it used in a real world situation. |
Works pretty well! Thank you soo much @ddx32 for sharing your solution! Saved me days of googling and trial and error... 🙏🏻🙌🏻 |
Currently standard-version only includes the commit header. Is there a way to optionally include the commit body in the CHANGELOG.md? Is there a sister tool I should be using to generate release notes to end users that provide all the details?
The text was updated successfully, but these errors were encountered: