✨🐛💥 A semantic-release plugin for gitmojis. Different from conventional changelog, Gitmoji commits are used to determine a release type and generate release notes.
I love this plugin and using emojis instead of angular commit msgs, so thank you!
I'm seeing a bug when using a monorepo where ReleaseNotes' knowledge of commits persists when semantic-release is iterating across packages in a monorepo. Whichever package is first, the commits related to that package are the only commits listed for all subsequent packages.
The ReleaseNotes class .get reuses the ._instance instead of using the current set of commits it should be receiving. I was able to make the monorepo packages have separate release notes by having .get freshly instantiate the class each time:
static get (context, releaseNotesOptions) {
ReleaseNotes._instance = new ReleaseNotes(context, releaseNotesOptions)
return ReleaseNotes._instance
}
I don't know if this is a valid fix because I'm not sure what use case(s) exist for not using the class with new, but figured it would be a good place to start to find a final fix.
# v0.1.0-add-release.1 (https://github.com/scottnath/experiments/compare/scottnath-experiments-a@0.0.2-add-release.1...scottnath-experiments-a@0.1.0-add-release.1) (2023-09-06)
## ✨ New Features
* 67f2e78 (https://github.com/scottnath/experiments/commit/67f2e78) ✨ another change in A
## 🐛 Fixes
* fd83f3d (https://github.com/scottnath/experiments/commit/fd83f3d) 🆕 change to A
Release notes for package scottnath-experiment-b
# v0.1.0-add-release.1 (https://github.com/scottnath/experiments/compare/scottnath-experiments-b@0.0.2-add-release.1...scottnath-experiments-b@0.1.0-add-release.1) (2023-09-06)
## ✨ New Features
* 67f2e78 (https://github.com/scottnath/experiments/commit/67f2e78) ✨ another change in A
## 🐛 Fixes
* fd[83](https://github.com/scottnath/experiments/actions/runs/6100581263/job/16555183681#step:6:84)f3d (https://github.com/scottnath/experiments/commit/fd83f3d) 🆕 change to A
### Dependencies
* scottnath-experiments-a: upgraded to 0.1.0-add-release.1
Using the adjusted package at scottnath/semantic-release-gitmoji
# v0.1.0-add-release-experiment.1 (https://github.com/scottnath/experiments/compare/scottnath-experiments-a@0.0.1...scottnath-experiments-a@0.1.0-add-release-experiment.1) (2023-09-06)
## ✨ New Features
* 67f2e78 (https://github.com/scottnath/experiments/commit/67f2e78) ✨ another change in A
## 🐛 Fixes
* a3349cb (https://github.com/scottnath/experiments/commit/a3349cb) 🐛 add basic files to packages
* 2c1d02a (https://github.com/scottnath/experiments/commit/2c1d02a) 🐛 changes to b
* af83eca (https://github.com/scottnath/experiments/commit/af83eca) 🐛 only in a
* bfbfadb (https://github.com/scottnath/experiments/commit/bfbfadb) 🐛 change in A
* 9ef89fc (https://github.com/scottnath/experiments/commit/9ef89fc) 🚀 set up one pkg fully
* 4eb481b (https://github.com/scottnath/experiments/commit/4eb481b) 🎨 changes to A only
* fd83f3d (https://github.com/scottnath/experiments/commit/fd83f3d) 🆕 change to A
Release notes for package scottnath-experiment-b
# v0.0.2-add-release-experiment.1 (https://github.com/scottnath/experiments/compare/scottnath-experiments-b@0.0.1...scottnath-experiments-b@0.0.2-add-release-experiment.1) (2023-09-06)
## 🐛 Fixes
* a3349cb (https://github.com/scottnath/experiments/commit/a3349cb) 🐛 add basic files to packages
* 2c1d02a (https://github.com/scottnath/experiments/commit/2c1d02a) 🐛 changes to b
* 56cf3f9 (https://github.com/scottnath/experiments/commit/56cf3f9) 🐛 change to B
* b6ea03a (https://github.com/scottnath/experiments/commit/b6ea03a) 🐛 change in B
* 9ef[89](https://github.com/scottnath/experiments/actions/runs/6101134859/job/16556837347#step:6:90)fc (https://github.com/scottnath/experiments/commit/9ef89fc) 🚀 set up one pkg fully
* 2673e5c (https://github.com/scottnath/experiments/commit/2673e5c) 🚀 fixing tagformat in b
* ecc71ca (https://github.com/scottnath/experiments/commit/ecc71ca) 🎨 changes to B only
### Dependencies
* scottnath-experiments-a: upgraded to 0.1.0-add-release-experiment.1
Hi @momocow
I love this plugin and using emojis instead of angular commit msgs, so thank you!
I'm seeing a bug when using a monorepo where ReleaseNotes' knowledge of commits persists when semantic-release is iterating across packages in a monorepo. Whichever package is first, the commits related to that package are the only commits listed for all subsequent packages.
Example repo: https://github.com/scottnath/experiments
Monorepo plugin: https://github.com/qiwi/multi-semantic-release
The fix I found
The ReleaseNotes class
.get
reuses the._instance
instead of using the current set of commits it should be receiving. I was able to make the monorepo packages have separate release notes by having.get
freshly instantiate the class each time:see the change: https://github.com/scottnath/semantic-release-gitmoji/compare/main...release-notes-class
I don't know if this is a valid fix because I'm not sure what use case(s) exist for not using the class with
new
, but figured it would be a good place to start to find a final fix.Using current semantic-release-gitmoji
The dependencies:
example PR: https://github.com/scottnath/experiments/pull/1 Release output in GitHub Actions: https://github.com/scottnath/experiments/actions/runs/6100581263/job/16555183681
Release Notes for package
scottnath-experiment-a
Release notes for package
scottnath-experiment-b
Using the adjusted package at scottnath/semantic-release-gitmoji
https://github.com/scottnath/semantic-release-gitmoji/compare/main...release-notes-class
The dependencies:
example PR: https://github.com/scottnath/experiments/pull/2 Release output in GitHub Actions: https://github.com/scottnath/experiments/actions/runs/6100581263/job/16555183681
Release Notes for package
scottnath-experiment-a
Release notes for package
scottnath-experiment-b
thank you for any help!