wiki:BluePrint/Releases

BluePrint: Releases

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

BluePrint

Last modified 5 years ago Last modified on 11/25/19 13:55:50
Note: See TracWiki for help on using the wiki.