Chapter 10. Overview

The following diagram summarizes the various stages involved in building and releasing Apache Isis.

The steps are:

  1. check out code using svn checkout (see Chapter 3, Building Isis from Source), update and commit changes.

  2. make changes, implements features, fixes bugs. These are installed, in the normal way, to your local repo using mvn install.

  3. when the codebase is ready for a snapshot release, manually deploy the snapshot into the Apache snapshot repo. This is discussed further in Section 11.2, “Manually Deploy Snapshot”.

    In addition, the snapshot version of the site may be deployed to the website. This process for this is the same as for staging the website during a formal release, see (7) below and alsoSection 12.5.4, “Stage the Website”.

  4. when the codebase is ready for a formal release, the release manager creates a branch in svn in preparation for the following steps

  5. using the branch, the release manager uses mvn release:prepare to produce the release artifacts. This goal:

    • update the POMs from x.x.x-SNAPSHOT-incubating to x.x.x-incubating

    • builds and verifies the codebase

    • commits the changes

    • creates a tag copy

    • updates the POMs for the next iteration, ie from x.x.x-incubating to x.y.0-incubating-SNAPSHOT

  6. next, the mvn release:perform command is used to upload the signed versions of the artifacts (which includes the source release ZIP) to the Apache staging repository. See Section 12.5, “Upload Release for Voting”.

  7. also in preparation for the release, the website is staged so that it can be reviewed. See Section 12.5.4, “Stage the Website”.

  8. the release is voted on by the community. While in the incubator a vote must also be performed by the Incubator PMC (ie on mailto:incubator@apache.org). It is permissible to perform these in parallel if required. See Section 12.6, “Voting”

Assuming that the vote passes:

  1. the Maven artifacts should be promoted from the staging repository to release repository (again, see Section 12.7, “Promoting Release to Distribution”), from which...

  2. ... the artifacts will automatically be replicated up to Maven central repo

  3. the source release should be copied from the release repository to the "dist" folder, where it will be mirrored. It can also be referenced as a download at this point. See Section 12.7, “Promoting Release to Distribution”

  4. The website should be promoted, and checked that download links etc. are correct; see Section 12.7.3, “Promote and update the Website”.

If the vote is rejected, then the branch, tag and staging repo are deleted/dropped, the necessary fixes are made and then the above steps are performed again.

The following chapters provide detail on the above steps.