Home | Download/Install | Documentation | Packages | Screenshots | News | Forum/Mailing-lists | Contact | GForge

Release process

Overview

  • How to build a release without forgetting anything.
  • Target: administrators

Communication

  • Send an announcement: An example of which is available here

(release 0.7 announcement)

Subversion operations and metainfo updates

First of all you've got to put your computer in release mode. Click for instructions.

First of all you've got to put your computer in release mode. Click for instructions.

First of all you've got to put your computer in release mode. Click for instructions.

Edit the ~/.pydistutils.cfg (or %HOME%\pydistutils.cfg on Windows) to include the following lines:
# pydistutils configuration file example
[egg_info]
tag_build = .linux_fedora_fc14 #For unixes and non-pure-python packages only! Leave empty otherwise
tag_svn_revision = 0           # no revision until release is done
 
[egg_upload]
login=yyyyyyyyy    # put your gforge login name here
password=xxxxxxxxx # put your gforge password here
verbose=True

Some explanation about the tag: all bdist_egg and sdist egg files will have the tag “linux_fedora” in this example. This is not the expected behaviour for pure python package. So pure python package must have this line in their setup.cfg file:

  [egg_info]
  tag_build = 
  

so that they are multiplatform.

Create the release branches

Pre-requisites

These instruction suppose a release for a 1.1 version and require prior installation of openalea 1.0
  • Update the alea_branch script ( in openalea/misc/src/openalea/misc/alea_branch.py) to specify the packages to be released. Then:
    alea_branch --not-dry-run openalea 1.1
    alea_branch --not-dry-run vplants 1.1
    alea_branch --not-dry-run alinea 1.1
 
  • Update the openalea/openalea_meta/setup.py and vplants/vplants_meta/setup.py files to add the relevant packages and their versions. As a reminder, these are the packages part of the 0.7 release:
    • OpenAlea: deploy deploygui core visualea sconsx stdlib openalea_meta misc scheduler
    • VPlants: PlantGL tool stat_tool sequence_analysis container amlobj mtg tree_matching aml fractalysis newmtg WeberPenn vplants_meta lpy
    • Alinea: caribu graphtal adel topvine
  • Checkout the branches:
    svn co https://scm.gforge.inria.fr/svn/openalea/branches/release_1_0 openalea_1_1
    svn co https://scm.gforge.inria.fr/svn/vplants/vplants/branches/release_1_0 vplants_1_1
    svn co https://scm.gforge.inria.fr/svn/openaleapkg/branches/release_1_0 alinea_1_1
 
  • Update the versions
    cd openalea_1_1
    python multisetup.py --update-version 1.0 1.1
    cd vplants_1_1
    python multisetup.py --update-version 1.0 1.1
    cd alinea_1_1
    python multisetup.py --update-version 1.0 1.1
    

Meta info updates

  • For each package in each project:
    • Check Meta info (Authors and Changelog.txt are used in the sphinx documentation)
      • README.txt ( name / url / doc , …)
      • ChangeLog.txt (add necessary info by date - use SVN log or history and use restructuredText format)
      • LICENSE.txt ( check that the license is correct)
      • AUTHORS.txt ( add all the contributors with their email addresses )
    • Set the correct version number in all metainfo.ini files by incrementing appropriate number (if not aleady done by previous –update-version).
    • Update all setup.cfg so that tab_build is specifically set to empty for pure python packages
    • MANIFEST.in (add all necessary file : ex *.txt, *.py)
    • Add dependencies in setup.cfg (requires field)
    • Commit your changes
 svn commit -m 'Add contributors to Authors.txt.'

During the release period

The instructions are given for openalea, but they are the same for vplants and alinea
  • Update your SVN copy and build (check everything compiles)
    cd openalea_1_1
    svn update
    python multisetup.py clean -a install    
    
  • Merge from trunk if necessary, for example for the openalea.core package:
     alea_branch --not-dry-run -u core openalea 1.1
     #... test changes etc...
     svn ci -m "merge core from trunk"
 
 svn commit -m 'BUGFIX : fixing this bug in this package.'
  • Generate documentation (check if it works)
    python multisetup.py build_sphinx -b html
    python multisetup.py build_sphinx -b latex
    python multisetup.py upload_sphinx -r #might be asked for login and password
 
  • Create the eggs
    python multisetup.py install bdist_egg
 
  • check that all ./*/dist/*.egg have the correct name and upload them
    python multisetup.py egg_upload
 
  • provide tarballs
    alea_branch --not-dry-run -w openalea_1_1 -x openalea 1.1
 
  • now that everything works, and the egg are uploaded, the release is done but you now need to update the version, and add .dev tag in tag_build where packages are pure python. for the others, use your .pydistutils and commit the modifications.

When the release is finished

  • tag the release:
    alea_branch --not-dry-run --tag openalea 1.1
 
  • Merge the branch back into the trunk. There is no specific tool to do so as it requires some knowledge of what has been merged to the branch and what should NOT be merged back to the trunk, and this is not specified. See manual svn instructions.
  • Revert the ~/.pydistutils.cfg (or %HOME%\pydistutils.cfg on Windows):
[egg_info]
tag_build = .dev
tag_svn_revision = 1 # include a revision tag in egg name.

Build package distributions

This is probably obsolete

This is probably obsolete

This is probably obsolete

To specify the *dev* revision tag, change the .pydistutils.cfg (in your HOME directory) instead of all the setup.cfg files.

  • Export your SVN to an other directory (svn export)
  • On Windows
  python setup.py clean -a
  del dist
  python setup.py sdist
  python setup.py bdist_wininst --with-remote-config
  • On Linux
  python setup.py clean -a
  rm -rf dist
  python setup.py sdist
  python setup.py bdist_rpm 

Distribute Package

This is probably obsolete

This is probably obsolete

This is probably obsolete

  • Create Release + notes + Changes (same as Changelog.txt)
  • Upload Files
  • Create news
  • Send mail on openalea-devlp + openalea-users

Web Site

This is probably obsolete

This is probably obsolete

This is probably obsolete

update this section to include sphinx

  • API documentation : launch gendoc.py in module/core (e.g., ./core/doc/gendoc.py) that will scp the APIs to the gforge.
  • Upgrade link in download page
  • Update package page + API Link for documentation / Download
  • Send Technical Doc on openalea.gforge.inria.fr/doc/pkgname/version/python

Quick Linux release under Fedora

Click to show Linux fedora instructions

Click to show Linux fedora instructions

Click to show Linux fedora instructions

Assuming that you are happy with the code available in the repository, then the following procedure should work:

edit the file .pydistutils.cfg in your home directory and add this if not already present:

  # pydistutils configuration file example
  [egg_info]
  tag_build = .linux_fedora_fc14
  [upload_dist]
  release = 0.9  # replace by the proper release number,
  login=yyyyyyyyy   # put your gforge login name here
  password=xxxxxxxxx # put your gforge password here
  verbose=
  

Then, create a virtual environment

  virtualenv ./release
  cd release
  

activate it

  source bin/activate

checkout SVN and upload openalea

  svn checkout --username xxxxxxxx https://scm.gforge.inria.fr/svn/openalea/trunk
  cd openalea
  # rename the openalea_meta distribution egg file by adding the linux-i686 tag
  python multisetup install sdist bdist_egg
  python multisetup gforge_upload

checkout SVN and upload vplants

  # change the tag_build = .dev to .dev.fc10 if under fedora 
  svn checkout --username xxxxxxxx https://scm.gforge.inria.fr/svn/vplants/vplants/trunk vplants
  cd vplants
  python multisetup install sdist bdist_egg
  # rename the vplants_meta distribution egg file by adding the linux-i686 tag
  python multisetup gforge_upload

Windows release

The full windows release process, from downloading the sources to compiling and packaging is documented on this page.

MacOsX release

The full MacOsX release process, from downloading the sources to compiling and packaging is documented on this page

 
documentation/core/release_process.txt · Last modified: 2011/12/19 17:20 by user   Back to top
INRIA   INRA     CIRAD     AGROPOLIS
INRIA GForge RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki