Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

bzr-eclipse Development Processes

Home | Continuous Integration | Release

Continuous Integration

A Jenkins CI server is available here: http://bzreclipse.org/jenkins/

The last successful build of bzr-eclipse can be installed directly from there: http://bzreclipse.org/jenkins/job/bzr-eclipse/lastSuccessfulBuild/artifact/org.vcs.bazaar.eclipse.site/target/site/

Release Process

This describes the release process for a new version of bzr-eclipse. It includes the release process for bzr-xmloutput and bzr-java-lib because of the dependencies between the projects. (At least until those projects need to do independent releases.)

Planning

This phase is about updating the wiki and bug databases.

  1. Identify changes to include
    Based on logged bugs and other requirements, build a list of what's in the release.

  2. Choose new version numbers
    Version numbers are three fields follow standard major.minor.patch methodology, e.g. 1.2.0.

    • bzr-xmloutput: Not clear if the version needs to change yet.
    • bzr-java-lib and bzr-eclipse new version are chosen together, and aligned to be identical, even if bzr-java-lib does not actually change.
  3. Document new features to include.
    The wiki should be updated with these plans, based on the version number.

  4. Create milestone on Launchpad

  5. Triage bugs for the new release.
    A new milestone is needed for the new version number, so bugs can be assigned to it.

Development

This phase is about making changes to the code. Functionality changes are not to be made after this phase.

  1. Update version numbers to -SNAPSHOT

  2. Implement and test those changes.
    This phase should have a distinct end so that there is code stability as the following stages are entered.

Build

  1. Determine if new versions of bzr-java-lib and bzr-xmloutput are required.
    Now it is known if bzr-xmloutput changes are required so new version numbers can be finalised.

  2. Ensure bzr-xmloutput version numbers are correct
    If the bzr-xmloutput version number changed, the code must be updated in these places:

    • bzr-xmloutput: info.py

    • bzr-xmloutput: installer/bzr-xmloutput-setup.nsi

    • bzr-java-lib: src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java

    • bzr-java-lib: scripts/fetch-bazaar-plugins.bat

    • bzr-java-lib: scripts/fetch-bazaar-plugins.sh

    • bzr-eclipse: org.vcs.bazaar.eclipse.client/fetch-plugins.bat

    • bzr-eclipse: org.vcs.bazaar.eclipse.client/fetch-plugins.sh

  3. Ensure bzr-java-lib version numbers are correct
    Remove -SNAPSHOT where found. The code must be updated in these places:

    • bzr-java-lib: pom.xml

    • bzr-eclipse: org.vcs.bazaar.eclipse.client/build.properties

    • bzr-eclipse: org.vcs.bazaar.eclipse.client/pom.xml

    • bzr-eclipse: org.vcs.bazaar.eclipse.client/META-INF/MANIFEST.MF

    • bzr-eclipse: org.vcs.bazaar.eclipse.client/.classpath

    • bzr-eclipse: org.vcs.bazaar.eclipse.core.tests/build.properties

    • bzr-eclipse: org.vcs.bazaar.eclipse.core.tests/pom.xml

    • bzr-eclipse: org.vcs.bazaar.eclipse.core.tests/META-INF/MANIFEST.MF

    • bzr-eclipse: org.vcs.bazaar.eclipse.core.tests/.classpath

    • bzr-eclipse: org.vcs.bazaar.eclipse.ui/pom.xml

  4. Ensure bzr-eclipse version numbers are correct
    Remove -SNAPSHOT where found. The code must be updated in these places:

    • bzr-eclipse: pom.xml

    • bzr-eclipse: org.vcs.bazaar.eclipse.*/META-INF/MANIFEST.MF

      • Update Bundle-Version and Require-Bundle
    • bzr-eclipse: org.vcs.bazaar.eclipse.feature/feature.xml

    • bzr-eclipse: org.vcs.bazaar.eclipse.site/site.xml

    • bzr-eclipse: org.vcs.bazaar.eclipse.tests-feature/feature.xml

  5. Update ChangeLogs based on what's included
    There are separate ChangeLogs for each project.

  6. Create Bazaar tags
    For each of the projects with a new version, the corresponding Bazaar tag is created, using the bzr tag command. This is required for the build to succeed, since bzr-xmloutput is fetched by tag.

  7. Push changes to trunks
    Changes for each project need to be pushed to the project trunk.

  8. Build bzr-java-lib

    • bzr export -r tag:x.y.z bzr-java-lib-x.y.z lp:bzr-java-lib

    • cd bzr-java-lib-x.y.z

    • mvn install

  9. Build bzr-eclipse

    • bzr export -r tag:x.y.z bzr-eclipse-x.y.z lp:bzr-eclipse

    • cd bzr-eclipse-x.y.z

    • mvn package

Publish

  1. Upload plugin
    Site http://bzreclipse.org/update-site
    The files to upload are everything under bzr-eclipse: org.vcs.bazaar.eclipse.site/target/site

  2. Update Eclipse Marketplace Listing
    Set the version number: http://marketplace.eclipse.org/content/bzr-eclipse-0

  3. Update ChangeLog on wiki
    Wiki page: BzrEclipse/ChangeLog

  4. Update news section of wiki
    Wiki page: BzrEclipse

  5. Update installation instructions if required
    Installation Instructions

  6. Update bugs

    • Search for all bugs on the relevant milestone
    • Select those with status other than "Fix Committed" and push them to another milestone.
    • Change bugs marked as "Fix Committed" with this release's milestone to "Fix Released".
  7. Update Launchpad main section

    • Go to the corresponding milestone and click "Create Release"
    • Make launchpad announcement on the main project page
    • If it's a feature release (e.g. 1.2) create a new series and branch for maintenance to it)
    • Create a new milestone following this one, e.g. 1.3 -> 1.3.1 & 1.4

  8. Email the users
    bzr-eclipse-users@lists.launchpad.net

  9. Further Launchpad housekeeping