| 1 | |
| 2 | = 1) Complete milestone = |
| 3 | |
| 4 | * Update/complete the milestone in Trac for the release - i.e.: [milestone:v1.0.1] |
| 5 | * reference ticket's with each item |
| 6 | |
| 7 | = 2) Complete source code = |
| 8 | |
| 9 | * update {{{CHANGES}}} : copy/paste milestone text |
| 10 | * update {{{sara_cmt/__init__.py}}} : set correct {{{ __version__ }}} |
| 11 | |
| 12 | = 3) Create PIP package = |
| 13 | |
| 14 | {{{ |
| 15 | python setup.py sdist |
| 16 | }}} |
| 17 | |
| 18 | = 4) Test = |
| 19 | |
| 20 | * test package |
| 21 | * test upgrading / compatibility issues |
| 22 | * if everything ok: continue with steps 5+ |
| 23 | |
| 24 | = 5) GIT: bugfix release: patchlevel version increase = |
| 25 | |
| 26 | When you're only releasing a patchlevel version, i.e.: from 1.0.0 to 1.0.1: |
| 27 | * we don't create seperate branch for patchlevel versions |
| 28 | * we keep the minor version branch, i.e.: 1.0 |
| 29 | * just tag the version |
| 30 | * push the tags |
| 31 | |
| 32 | {{{ |
| 33 | git checkout stable/<version> |
| 34 | git tag -a <version> -m "Version <version> release" |
| 35 | git push --tags |
| 36 | }}} |
| 37 | |
| 38 | I.e.: release 1.0.1: |
| 39 | |
| 40 | {{{ |
| 41 | git checkout stable/1.0 |
| 42 | git tag -a 1.0.1 -m "Version 1.0.1 release" |
| 43 | git push --tags |
| 44 | }}} |
| 45 | |
| 46 | = 5) GIT: feature release: major/minor version increase = |
| 47 | |
| 48 | For major or minor version increase releases (i.e. 1.1 or 2.0) |
| 49 | * we create a new branch |
| 50 | * tag the version |
| 51 | * push the tags and new branch |
| 52 | * setup local branch tracking so you get remote updates for the new branch |
| 53 | |
| 54 | {{{ |
| 55 | git checkout -b stable/<version> master # Create new local branch for new <version> based on <master> |
| 56 | git tag -a <version> -m "Version <version> release" |
| 57 | git push --tags <remote> stable/<version> # Create new remote branch for new <version> |
| 58 | git config branch.stable/<version>.remote <remote> # Set up local branch tracking |
| 59 | git config branch.stable/<version>.merge refs/heads/stable/<version> # Set up local branch tracking |
| 60 | }}} |
| 61 | |
| 62 | I.e.: release 1.1 |
| 63 | {{{ |
| 64 | git checkout -b stable/1.1 master |
| 65 | git tag -a 1.1 -m "Version 1.1 release" |
| 66 | git push --tags origin stable/1.1 |
| 67 | git config branch.stable/1.1.remote origin |
| 68 | git config branch.stable/1.1.merge refs/heads/stable/1.1 |
| 69 | }}} |
| 70 | |
| 71 | = 6) Create tarball = |
| 72 | |
| 73 | {{{ |
| 74 | git checkout stable/<version> |
| 75 | git archive --format=tar --prefix=CMT-<version>/ HEAD | bzip2 >CMT-<version>.src.tar.bz2 |
| 76 | }}} |
| 77 | |
| 78 | I.e.: |
| 79 | {{{ |
| 80 | git checkout stable/1.0 |
| 81 | git archive --format=tar --prefix=CMT-1.0.1/ HEAD | bzip2 >CMT-1.0.1.src.tar.bz2 |
| 82 | }}} |
| 83 | |
| 84 | = 7) Upload to FTP = |
| 85 | |
| 86 | * upload src + pip package to ftp |