| | 1 | = !BluePrint: Releases = |
| | 2 | [[TOC]] |
| | 3 | |
| | 4 | == Introduction == |
| | 5 | |
| | 6 | Sahana Eden releases: |
| | 7 | - ensure stability of core APIs, features and data models as basis for the implementation of custom solutions |
| | 8 | - serve as reference points for user documentation |
| | 9 | - serve as targets for issue resolution |
| | 10 | - provide support tools for database migration |
| | 11 | - provide migration pathways for backward-incompatible API changes |
| | 12 | |
| | 13 | == Stable-Repository == |
| | 14 | |
| | 15 | Releases will be published in a dedicated "stable" repository on GitHub. |
| | 16 | |
| | 17 | == Release Numbering == |
| | 18 | |
| | 19 | Release numbering will use a three-number schema like: |
| | 20 | |
| | 21 | {{{ |
| | 22 | 1.0.0 => Major.Minor.Update |
| | 23 | }}} |
| | 24 | |
| | 25 | === Update === |
| | 26 | |
| | 27 | A change in the update number indicates a maintenance update of a release: |
| | 28 | |
| | 29 | - releases critical fixes and enhancements (e.g. security issues, stability/performance issues, bugs) |
| | 30 | - can contain minor enhancements, or preview-versions of new features |
| | 31 | - can contain visual/UX improvements, but do not generally change behavior |
| | 32 | - can add new optional dependencies |
| | 33 | - is always API compatible (or backwards-compatible) |
| | 34 | - do not require configuration updates |
| | 35 | - do not require a database migration (web2py automatic migration sufficient) |
| | 36 | |
| | 37 | => simple pull+automigrate sufficient |
| | 38 | => upgrade can be fully automated/scripted |
| | 39 | => no changes in custom templates required |
| | 40 | |
| | 41 | === Minor === |
| | 42 | |
| | 43 | A change in the minor release number indicates a new release in a release series: |
| | 44 | |
| | 45 | - releases regular fixes and improvements, including new feature sets |
| | 46 | - is always API compatible (or backwards-compatible) |
| | 47 | - can add new mandatory dependencies |
| | 48 | - can require configuration updates |
| | 49 | - can require scripted database migration |
| | 50 | |
| | 51 | => upgrade can additionally require a configuration update and/or scripted database migration |
| | 52 | => upgrade can be performed manually by sysadmins by following step-by-step instructions |
| | 53 | => upgrade of custom templates could in rare cases require intervention by template developer |
| | 54 | |
| | 55 | === Major === |
| | 56 | |
| | 57 | A change in the major release number indicates a new release series: |
| | 58 | |
| | 59 | - releases major framework changes |
| | 60 | - can break API backwards-compatibility and require adaption of custom template code and/or concepts |
| | 61 | - can change or add dependencies, both optional and mandatory |
| | 62 | - can require configuration updates |
| | 63 | - can require data migrations both scripted and manual |
| | 64 | |
| | 65 | => upgrade will most likely require a manual database migration |
| | 66 | => upgrade of custom templates will require intervention by template developer and/or professional support |
| | 67 | |
| | 68 | == Requirements before Release == |
| | 69 | |
| | 70 | === All Releases === |
| | 71 | |
| | 72 | - all critical issues, and issues targeting this release, are closed |
| | 73 | - change log is complete |
| | 74 | - all unit tests pass |
| | 75 | - smoke tests pass for all standard templates for all demo accounts of the respective template (minimum admin@example.com and normaluser@example.com) |
| | 76 | - template-specific selenium tests pass |
| | 77 | - disputed trunk changes resolved |
| | 78 | |
| | 79 | === Minor or Major Number Release === |
| | 80 | |
| | 81 | - all API changes documented |
| | 82 | - database migration scripts complete |
| | 83 | - migration instructions complete |
| | 84 | - documentation updates ready for roll-out |
| | 85 | |
| | 86 | == Requirements for Release == |
| | 87 | |
| | 88 | - Tagged commit in stable-repository (after non-selective pull from trunk) |
| | 89 | - Change log published on GitHub releases |
| | 90 | - Deployment tools can roll out dependencies |
| | 91 | - Announcement on mailing list |
| | 92 | |
| | 93 | ---- |
| | 94 | BluePrint |