BluePrint: Releases
Table of Contents
Introduction
Sahana Eden releases:
- ensure stability of core APIs, features and data models as basis for the implementation of custom solutions
- serve as reference points for user documentation
- serve as targets for issue resolution
- provide support tools for database migration
- provide migration pathways for backward-incompatible API changes
Stable-Repository
Releases will be published in a dedicated "stable" repository on GitHub.
Release Numbering
Release numbering will use a three-number schema like:
1.0.0 => Major.Minor.Update
Update
A change in the update number indicates a maintenance update of a release:
- releases critical fixes and enhancements (e.g. security issues, stability/performance issues, bugs)
- can contain enhancements, or feature previews
- can contain visual/UX improvements, but does not generally change feature behavior
- can add new optional dependencies
- is always API compatible (or backwards-compatible)
- does not require configuration updates
- does not require a database migration (web2py automatic migration sufficient)
- simple pull+automigrate sufficient
- upgrade can be fully automated/scripted
- no changes in custom templates required
Minor
A change in the minor release number indicates a new release in a release series:
- releases regular fixes and improvements, including new features
- is always API compatible (or backwards-compatible)
- can add new mandatory dependencies
- can require configuration updates
- can require scripted database migration
- upgrade can additionally require a configuration update and/or scripted database migration
- upgrade can be performed manually by sysadmins by following step-by-step instructions
- upgrade of custom templates could require minor interventions by template developer
Major
A change in the major release number indicates a new release series:
- releases major framework changes
- can break API backwards-compatibility and require adaption of custom template code and/or concepts
- can change or add dependencies, both optional and mandatory
- can require configuration updates
- can require database migrations, both scripted and manual
- upgrade will most likely require a manual database migration
- upgrade can be complex and will require solid experience with Sahana system administration
- upgrade of custom templates will require major interventions by template developer and/or professional support
Requirements before Release
All Releases
- all critical issues, and issues targeting this release, are closed
- change log is complete
- all unit tests pass
- smoke tests pass for all standard templates for all demo accounts of the respective template (minimum admin@example.com and normaluser@example.com)
- template-specific selenium tests pass
- disputed trunk changes resolved
Minor or Major Number Release
- all API changes documented
- database migration scripts complete
- migration instructions complete
- user documentation updates ready for roll-out
Requirements for Release
- Tagged commit in stable-repository (after non-selective pull from trunk)
- Change log published on GitHub releases
- Deployment tools can roll out dependencies
- Announcement on mailing list
Release Cycle
- new release three months after the last release
- any time earlier if deemed necessary to roll out critical fixes, or appropriate to release enhancements or feature previews
Last modified
5 years ago
Last modified on 11/25/19 13:55:50
Note:
See TracWiki
for help on using the wiki.