Skip to content

Latest commit

 

History

History
107 lines (93 loc) · 4.25 KB

File metadata and controls

107 lines (93 loc) · 4.25 KB

Developer Notes

Bumping Version Number and Deploying

Deploying a new version requires a new version number, named $VERSION in this document.

  • the release build will have version $VERSION
  • the git repository will have version ${VERSION}-SNAPSHOT
    • note that this is not conventional, since typically -SNAPSHOT is used for upcoming releases

General Procedure

  1. be on a machine from which you have permission to deploy (see deploy-coatjava.sh's scp commands)
  2. git switch development && git pull
  3. make sure you have no local changes (git status)
  4. ./deploy-coatjava.sh -v $VERSION
  5. git push -> open PR -> review PR -> merge
  6. make git tag and release

Note

Should deploy-coatjava.sh fail midway, your git repository may no longer be in the recommended initial state; here's how to revert:

  1. git switch development to switch back to development branch
  2. libexec/version-bump.sh $ORIGINAL_VERSION and be sure to include the -SNAPSHOT; alternatively, git reset --hard
  3. git branch -D version/$VERSION to delete the created version-bump branch

Legend:

  • magenta rectangle: manual step
  • green hexagon: automated
flowchart TB
    classDef manual    fill:#f8f,color:black
    classDef automatic fill:#8f8,color:black

    subgraph deploy-coatjava.sh
        deployScript[deploy-coatjava.sh -v $VERSION]:::manual
        bump1{{bump version to $VERSION}}:::automatic
        deployMaven{{deploy to Maven repo}}:::automatic
        deployTarball{{deploy tarball to clasweb}}:::automatic
        bump2{{bump version to $VERSION-SNAPSHOT}}:::automatic
        gitCommit{{new git branch and commit}}:::automatic
    end
    gitPush[git push]:::manual
    pullRequest[pull request and merge]:::manual
    gitTag[git tag and release]:::manual
    subgraph "Continuous Integration (CI)"
        bump3{{bump version to $VERSION}}:::automatic
        deployGit{{deploy git release tarball}}:::automatic
    end

    deployScript ==> bump1
    bump1 ==> deployMaven
    bump1 ==> deployTarball
    bump1 ==> bump2 ==> gitCommit
    gitCommit ==> gitPush ==> pullRequest ==> gitTag
    gitTag ==> bump3 ==> deployGit
Loading