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

Document differences with nx release and migration options #763

Open
samuelfernandez opened this issue Dec 24, 2023 · 1 comment
Open

Document differences with nx release and migration options #763

samuelfernandez opened this issue Dec 24, 2023 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@samuelfernandez
Copy link

It would be very nice to have documentation on how this plugin resembles and differentiates from nx release. Also, document how to migrate the configuration to the new integrated solution using Nx CLI.

@edbzn edbzn added the documentation Improvements or additions to documentation label Dec 25, 2023
@edbzn
Copy link
Member

edbzn commented Dec 25, 2023

Main differences:

  • Nx release is still in Alpha version where semver has been tested on many projects over 3 years
  • Nx release keep all package versions in sync by default whereas semver by default treats projects independently
  • Nx release needs config for the first release
  • Nx release runs globally on the workspace where semver runs individually on every project (in independent mode)
  • Nx release creates one single commit whereas semver creates multiple ones (in independent mode)
  • Nx release has 3 separate commands (version, changelog, publish) where semver has one single configurable command (update: nx release can run with one single command)
  • Nx release can be configured globally in nx.json where semver is statically configured in each project.json or dynamically using the Plugin API (inference)

Nx release features not supported by semver:

  • Release groups
  • Updating any projects that depend on them to use the new version
  • Programmatic APIs
  • Configurable version resolver (semver is tag-based)
  • Optional tagging

Semver features not supported by Nx release:

  • Running a series of executors when a new release is made (--postTargets)
  • Supporting all conventional changelog presets and making them configurable
  • Skipping some commit types to trigger new releases (--skipCommitTypes)
  • Supporting GitLab release
  • Producing a patch bump when dependencies change (--trackDeps)

Migrating from Semver to Nx release:

Some work is made to bring migration scripts to semver to let users explore the new Nx Release. However, these scripts will have limitations like migrating the CI setup, supporting extremely customized versioning processes, etc...

To be completed...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants