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

automate project release process #42

Closed
dherman opened this Issue Jan 9, 2016 · 4 comments

Comments

Projects
None yet
2 participants
@dherman
Collaborator

dherman commented Jan 9, 2016

Pushing an update to crates.io requires the following manual steps:

Update release notes

  • Update the release notes in RELEASES.md.
  • Update the authors list in AUTHORS.md to include any names of new contributors.

Update neon manifest versions and test

  • Bump the patch version number in neon, neon-build, and neon-runtime crates (they are kept in lock-step at always the exact same major.minor.patch).
  • Bump the Cargo.toml dependency on neon-runtime to the exact patch-level version of neon-runtime.
  • Run cargo update in test/dynamic/native.
  • Run cargo clean && cargo update in test/static.
  • Run cargo test in the neon root directory and ensure the tests are green.

Update neon-cli manifest versions and test

  • Bump the cli/templates/Cargo.toml.hbs dependencies on neon-build and neon to the exact patch-level version of neon.
  • Bump the cli/package.json to the exact patch-level version of neon.
  • Run a smoke test of neon new:
    • Run neon new smoke-test in a temp directory.
    • Update the neon dependency to { path = "<path/to/neon>" }
    • Update the neon-build build-dependency to { path = "<path/to/neon>/crates/neon-build" }
    • Change the neon-cli dependency in smoke-test/package.json to <path/to/neon>/cli
    • Run npm i and node -e 'require(".")' and see if it prints "hello node".
  • Delete the temporary project.

Commit and push to GitHub

  • Commit with a commit message of v$major.$minor.$patch.
  • Push the commit to GH.

Publish

  • Go into cli and run npm publish.
  • Go into crates/neon-build and run cargo publish. (Must be done before publishing neon).
  • Go into crates/neon-runtime and run cargo publish. (Must be done before publishing neon (next step)).
  • Go into the root directory and run cargo publish.

Tag release branches

  • Go to the GitHub repo and click "Releases" and then "Draft a new release" and give it a tag of $major.$minor.$patch and a release title of v$major.$minor.$patch, and check the "This is a pre-release" checkbox and press "Publish release."

I would like to automate as much of this as possible!

/cc @mmun

@dherman

This comment has been minimized.

Show comment
Hide comment
@dherman

dherman Nov 17, 2017

Collaborator

The "smoke test" portion of this process might be better dealt with using a vargo new --neon abstraction as I sketched quickly in neon-bindings/rfcs#8.

Collaborator

dherman commented Nov 17, 2017

The "smoke test" portion of this process might be better dealt with using a vargo new --neon abstraction as I sketched quickly in neon-bindings/rfcs#8.

@dherman

This comment has been minimized.

Show comment
Hide comment
@dherman

dherman Mar 17, 2018

Collaborator

Note to self: investigate using cargo-release for this.

Collaborator

dherman commented Mar 17, 2018

Note to self: investigate using cargo-release for this.

dherman added a commit that referenced this issue Jun 11, 2018

dherman added a commit that referenced this issue Jun 11, 2018

Merge pull request #318 from neon-bindings/release-scripts
First attempt at some automation for the release process. (See #42.)

@dherman dherman changed the title from automate our project release process to Test the release automation Jun 11, 2018

@dherman dherman changed the title from Test the release automation to automate project release process Jun 11, 2018

@dherman

This comment has been minimized.

Show comment
Hide comment
@dherman

dherman Jun 11, 2018

Collaborator

Even though it's not tested, I'm gonna close this issue and call it implemented for now (since #318). I'll open new issues for testing it out with the next release, and for automating it further.

Collaborator

dherman commented Jun 11, 2018

Even though it's not tested, I'm gonna close this issue and call it implemented for now (since #318). I'll open new issues for testing it out with the next release, and for automating it further.

@dherman dherman closed this Jun 11, 2018

@dherman

This comment has been minimized.

Show comment
Hide comment
@dherman

dherman Jun 11, 2018

Collaborator

PS For posterity, the simplified/semi-automated process is now documented on the Release checklist wiki page.

Collaborator

dherman commented Jun 11, 2018

PS For posterity, the simplified/semi-automated process is now documented on the Release checklist wiki page.

dherman added a commit that referenced this issue Jun 11, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment