Skip to content

Latest commit

 

History

History
93 lines (57 loc) · 2.27 KB

release_checklist.md

File metadata and controls

93 lines (57 loc) · 2.27 KB

CouchDB-rs Release Checklist

  1. Resolve any FIXME comments in the code.

  2. Ensure the chill crate builds and runs using the latest dependencies.

     $ cargo update &&
       cargo test &&
       cargo test --release
    

If any errors occur then fix them.

  1. Ensure packaging succeeds.

     $ cargo package
    

If any errors occur then fix them.

  1. Create a temporary Git branch for the release.

     $ git checkout -b release_prep
    
  2. Update project files.

    1. Edit Cargo.toml to declare the correct version for this crate.

      1. E.g., remove the -master suffix.

      2. Ensure the documentation link is correct.

    2. Edit CHANGELOG.md to add the date for the new release and remove the “unreleased” adjective. Ensure the change log is up-to-date, clear, and well formatted.

    3. Edit README.md to update all references to the latest release and next release.

    4. Ensure there are no untracked files in the working directory.

    5. Commit changes.

       $ git commit
      
  3. Build and publish Rust documentation for the new version.

    1. Build.

       $ cargo clean &&
         cargo doc --no-deps &&
         ver=$(grep '^version\s=' Cargo.toml | head -n1 | sed -Ee 's/.*"([0-9]+\.[0-9]+\.[0.9]+)"$/\1/')
         git checkout gh-pages &&
         cp -pR target/doc doc/v$ver &&
         git add doc/v$ver
      
    2. Review doc/v$ver/chill/index.html.

    3. Publish.

       $ git commit -a -m "Add documentation for v$ver" &&
         git push origin &&
         git checkout release_prep
      
  4. Merge updates into master.

     $ git checkout master &&
       git merge release_prep &&
       git branch -d release_prep
    
  5. Publish the crate.

     $ cargo publish
    
  6. Create Git tag.

     $ git tag -a v$ver -m "v$ver release" &&
       git push --tags
    
  7. Prep for new work.

    1. Edit Cargo.toml to increment the version, adding the -master suffix.

    2. Edit CHANGELOG.md to add the new “unreleased” section for the next version.

    3. Commit changes

       $ git commit -m "Prep for work on the next release"
      
    4. Close the issue milestone for the new release.