Version 52 (modified by 9 years ago) ( diff ) | ,
---|
Release Process
Table of Contents
We plan to make release versions of Eden.
This will entail:
- Creating a QA branch
- features have final integration testing done here before being pushed to the Stable branch
- Creating a Stable branch
- deployments should be done from this branch
- Adding Tags to Releases
- Building upgrade scripts
Tagging
Tags will be added based on the following schema:
[BranchName]-[Major].[Minor].[Sub]
The VERSION string will include the Tag + the number of commits since the last tag + the hash of the commit
The Major release number will only change if we:
- create a new parallel branch which would become the new trunk
- probably this would be because we change the API in backward-incompatible ways
The Minor release number indicates the normal release.
- Upgrades between these should be accompanied by some Change Management as users will see some differences (this could be just a mail saying 'some things may change' or could be full User Acceptance Testing)
- These will often require an update script
The Sub release number indicates an update to the release. Sub-releases can introduce new features, but they would normally not:
- replace feature sets
- remove feature sets
- fundamentally change the logic/semantics of a feature set
Sub-releases may still require an upgrade script, but usually won't. They normally wouldn't need user communications.
Git docs on Tags:
Branch Tags
If a Branch of the code is made on GitHub to manage releasesfor a deployment, then it's version will be appended to that of the Stable branch, so
[BranchName]-[Major].[Minor].[Sub]-[BranchRelease].[Sub]
Upgrade Scripts
For every update that requires it, an Upgrade script will be added to:
eden/static/scripts/upgrade/1.a.b-1.a.c.py
The 'pull' script will be modified to call this script automatically
Template Upgrade Scripts
If there are template-specific changes for an update then these will be found in:
eden/modules/templates/TEMPLATE/upgrade/1.a.b-1.a.c.py
This will be checked for automatically by the 'pull' script
Branch Upgrade Scripts
Typically a Branch will be using a custom Template (even if this is a thin layer on top of other templates).
Branch upgrade scripts will therefore be in:
eden/modules/templates/TEMPLATE/upgrade/1.a.b_d.e-1.a.b_d.e.py or eden/modules/templates/TEMPLATE/upgrade/1.a.b_d.e-1.a.c_d.e.py
This will be checked for automatically by the 'pull' script.
If there is no branch-specific upgrade script yet there is one for the underlying stable upgrade then the pull script should detect this & allow the user to run this instead of nothing or bail & revert.
Old Info
When making a Stable Branch from which to build releases, we need to do these tasks:
Check that all works with a released version of Web2Py
Ensure included files sane:
- README
- VERSION
- INSTALL
- CHANGELOG
Clear Database
To clear database of test data & reset to defaults:
- Close Web2Py
- Delete all files from
/databases
&/uploads
Clean the files which are created by the deployment-templates of all personal data (i.e. overwrite with version from deployment-templates):
- cron/crontab
- models/000_config.py
Update Language Files
python web2py.py -S eden -R applications\eden\static\scripts\tools\languages.py
Merge any updates from Pootle
Export Application
- Clean: http://127.0.0.1:8000/admin/default/cleanup/eden
- Compile: http://127.0.0.1:8000/admin/default/compile_app/eden
- NB If this Errors then this is likely to be a faulty view (e.g. missing a final {{pass}}) which needs resolving before the release to avoid performance issues.
- Pack all: http://127.0.0.1:8000/admin/default/pack/eden
- Save as:
web2py.app.eden-0.x.w2p
This could be scripted:
cd /home/web2py # @ToDo: Clean # Compile python web2py.py -S eden -M -R applications/eden/static/scripts/tools/compile.py # @ToDo: Catch errors # @ToDo: Pack # @ToDo: Download with filename
Test
Import the app with a new name & Test
Upload to LaunchPad
Note: As of January 2012, BZR/Launchpad info for eden is deprecated. Please visit the GitHub page. Thanks.
Update Windows Installers
Update Wiki
Update Demo
- Update Web2Py if necessary
cd /home/web2py/applications/eden git pull
Alternate approach:
- Start appadmin: /root/web2py_admin.sh
- Configure SSH Tunnel: http://web2py.com/AlterEgo/default/show/143
- Access via SSH Tunnel: http://127.0.0.1:8001/admin
- Upload application: http://127.0.0.1:8001/admin/default/site
- Reboot VPS (free up resources for improved performance)