Skip to content

Contributions: Release

Max Okorokov edited this page Jun 14, 2024 · 37 revisions

Release

Major x.0.0 preparation

Generate x-1.y.z version demo site

  • checkout latest x-1.y.z tag
  • run yarn install
  • run script yarn demo:release-snapshot
  • checkout master (demo/src/public/releases/x-1.x should be there)
  • update versions.json with new major
  • check yarn demo works correctly, check stackblitzes
  • git add /releases/x-1.x and versions.json, commit on master

Prepare the release

  • make sure all deprecations to be removed in x.0.0 are removed
  • make sure src/package.json has correct peer dependencies
  • make sure README.md and getting-started.page.html are update with the latest dependencies
  • check that schematics work (don't remember how to do this locally :)

Minor x.x.0 preparation

  • go through feat commits and update new feature comments with @since x.x.0 and deprecated ones with @deprecated x.x.0 Explanation why here
  • for each new API field check if static ngAcceptInputType_XXX: XXX; needs to be added
  • commit documentation changes

Patch X.X.X preparation

nothing special should be done for a patch release

Publish

  • make sure you're on the master branch and you're ready to release
  • generate the new release (yarn version). This will generate a tagged release commit with changelog updates, build the library and the demo site.
  • check the CHANGELOG.md in the last commit. If necessary update the file and run yarn changelog:patch to amend changelog and update the git release tag.
  • push to npm (cd dist/ng-bootstrap, npm publish, cd ../..). There is no way of NOT rewriting the latest tag in npm, so when publishing OLDER releases, you have to manually restore the latest tag with npm dist-tags add @ng-bootstrap/ng-bootstrap@Z.Z.Z latest
  • push master to GitHub (git push upstream)
  • push tags to GitHub (git push upstream --tags)
  • push the demo site (yarn demo:publish)
  • close the release milestone
  • create a GitHub release based on the latest tag and copy/paste changelog (to be automated...)
  • let the World know!