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
conventional-changelog-conventionalcommits v8.0.0 breaks semantic release #633
Comments
I had the error even with |
I'm not sure what that means. I simply have a |
@ryancausey Oh, I'm not sure, I'm configuring all the plugins explicitly, and the plugins accept the |
Seems like there is a bug with semantic-release plugins conflicting with latest major conventional commits. Reverting as issue suggests: semantic-release/release-notes-generator#633 commit-id:b1f4a00c
Seems like there is a bug with semantic-release plugins conflicting with latest major conventional commits. Reverting as issue suggests: semantic-release/release-notes-generator#633 commit-id:b1f4a00c
the conventional-changelog packages released new major versions. that means they include breaking changes. since they were just released, no work has been done to make adjustments to account for the changes in semantic-release. if someone would be willing to investigate what changes would be needed, that could help us adjust for these changes sooner |
@travi yeah that makes sense. If we need to customize the preset though, we have to install it, and then it's easy to install the wrong version... so should we make this package check the version of the preset at runtime, and at least print a warning? I would almost suggest we put the compatible version in |
I understand the desire, but npm doesn't provide a great way to define these sorts of relationships. I'm open to proposals as a separate issue if there are options that I'm not aware of, but this is a difficult one to solve. I think the closest might be peerDependencies with meta defining the optional part, but I think there are complexities that make that not ideal too |
For folks landing here for various breakages related to updating conventional-commits packages before semantic-release is updated to handle the breaking changes, I'm trying to consolidate the conversation in this thread. Until I get more organized about that, please see my suggestions in semantic-release/semantic-release#3292 (comment) |
@travi not sure you saw my suggestion to check and warn at runtime if the preset package being used is not a known compatible version, would you be okay with a PR to do that? |
sorry. i did, but forgot to comment about that approach. it doesnt seem to me like there is a clean approach there either that is maintainable and still accomplishes the goal for new breaking changes. our approach to true peer dependencies and node versions is to keep them open ended, so we would have to release a new version with updated ranges once we are aware that a new major version is incompatible, which also requires responding fairly quickly to be most helpful. each of the conventional-commits packages has its own individual major version (an approach that i agree with), so we would have to handle each one individually. this also means more investigation when trying to release a version for such incompatibility communication. in the end, i think this almost entirely comes down to folks installing latest versions in pipelines without pinning a major version. would be open to suggestions to make this suggestion more clear and discoverable in docs or elsewhere in a general way that doesnt require maintainer action each time that breaking changes are released in conventional-commits packages. |
In my case it wasn't that - I was installing I can understand where you're coming from though. I can also understand the way all these different packages are structured. But - figuring out how to even customize everything and follow the control flow of release notes generation has left me thinking the work of fetching and parsing git commits and generating a changelog from them is spread out across too many packages for its own good. Maybe I would feel differently if these were all TS projects or the configuration was done via a strongly typed TS API rather than an unvalidated JSON DSL. It's pretty hairy to dig into how the configuration is getting passed around and used. And at least half of the code is for implementing that DSL that isn't really capable of doing what I want anyway, I wish I could just provide a function for filtering and categorizing commits by type and scope, etc, which would be way more flexible and require way less library code. |
We have the same issue..
|
I agree that is what people should do. However, the problem I found is that is currently hard to test if a major version bump will cause something to fail as we have semantic-release only running on our main branch. Implementing semantic-release/semantic-release#3278 would allow us to at least run with dry-run in a branch where we upgrade versions and see if anything breaks |
The latest version has a conflict with the latest version of semantic-release semantic-release/release-notes-generator#633
The latest major version (`8.0.0`) containing breaking changes, which are not yet included in release-notes-generator. Therefore, pin its version to the previous release for now to not block any further releases. See issue: - semantic-release/release-notes-generator#633
The latest major version (`8.0.0`) containing breaking changes, which are not yet included in release-notes-generator. Therefore, pin its version to the previous release for now to not block any further releases. See issue: - semantic-release/release-notes-generator#633
see this comment for more details: semantic-release/release-notes-generator#633 (comment)
## [8.0.0](v7.8.1...v8.0.0) (2024-05-11) ### ⚠ BREAKING CHANGES * **npm:** node * **npm:** node 20 ### Bug Fixes * **team-requested-reviewers:** attempt to clean up getRequestedReviewersAsIndividuals ([3970fdd](3970fdd)) * **logger:** fix incorrect import of formatISO ([20245d2](20245d2)) ### Build System * **npm:** bREAKING npm deps to latest, node to 20.13.1, release workflow updated ([b57b6a9](b57b6a9)), closes [#63](#63) * **npm:** set conventional-changelog-conventionalcommits to 7.0.2 ([1cd64e9](1cd64e9)), closes [/github.com/semantic-release/release-notes-generator/issues/633#issuecomment-2100094407](https://github.com/mlg87//github.com/semantic-release/release-notes-generator/issues/633/issues/issuecomment-2100094407) * **npm:** update npm deps, node to 20 ([b170fd2](b170fd2)), closes [#63](#63) * **npm:** updates yarn.lock ([4ee76d4](4ee76d4))
It looks like v8.0.0 of conventional-changelog-conventionalcommits was released about an hour ago. This causes the semantic-release "generateNotes" step of plugin "@semantic-release/release-notes-generator" to fail:
Reverting conventional-changelog-conventionalcommits back to the v7.x.x series makes this release run fine again.
The text was updated successfully, but these errors were encountered: