Initial Steps To Create An Official Manuskript Release

Curtis Gedak 2018-04-11 12:07:06 -06:00
parent 3554c56da6
commit b4a71bc1c6

@ -0,0 +1,102 @@
Following is a _**DRAFT**_ proposal for the steps to follow when creating an
official manuskript release.
These steps are intended to be a work in progress and to be updated as
more experience is gained.
Assumptions
-----------
- **N-1** (*0.6.0*) is the current production release
- **N** (*0.7.0*) is about to be released
- **N+1** (*0.8.0*) is a release in the future
Steps
-----
1. FINISH DEVELOPMENT AND TESTING
- Complete development, documentation, and testing for upcoming
release.
2. CREATE RELEASE AREA AND CLEANUP MILESTONES FOR ISSUES AND PULL REQUESTS
- Create new
[draft release area for **N**](https://github.com/olivierkes/manuskript/releases).
- Close current project release milestone **N-1**.
- Ensure all issues and PRs are completed for milestone **N**, or
move to a different milestone.
- Create future release milestone **N+1**.
3. NOTIFY TRANSLATION TEAMS OF UPCOMING RELEASE
_**Need input from @olivierkes as I am unfamiliar with
translation process.**_
- Contact translation members about upcoming release in **1 week**?
- Incorporate translation updates
4. ADD DEVELOPMENT CHANGES TO MASTER BRANCH
- Merge develop branch into master branch.
git checkout master
git merge develop
5. PREPARE CHANGELOG
- Generate changelog.
github_changelog_generator -u olivierkes -p manuskript \
--token {MyChangelogGithubToken}
- Edit `CHANGELOG.md` to adjust for release number.
6. PREPARE SOURCE CODE FOR PRODUCTION RELEASE
- Update `manuskript/version.py` version number for production release
- Test that manuskript can start and open a project
- Commit `manuskript/version.py` and `CHANGELOG.md`
git status
git add manuskript/version.py CHANGELOG.md
git commit -m "========== manuskript-x.y.z =========="
- Stamp production version label on git repository
git tag -a X.Y.Z -m "manuskript-x.y.z release"
- Check git tree
gitk --all
- Push updates to the git repository
git push
git push --tags
7. PREPARE RELEASE PACKAGES
- GNU/Linux
- **.deb** - Automatically generated by `package/create_deb.sh` (See [Package Manuskript for Linux with dpkg](https://github.com/olivierkes/manuskript/wiki/Package-Manuskript-for-Linux-with-dpkg))
- **.rpm** - Manually create with [Package Manuskript for Linux with rpm](https://github.com/olivierkes/manuskript/wiki/Package-Manuskript-for-Linux-with-rpm)
- Mac OS X
- Automatically generated by `package/prepare_osx.sh` (See [Package Manuskript for OS X with PyInstaller](https://github.com/olivierkes/manuskript/wiki/Package-manuskript-for-OS-X))
- Windows
- Manually create with [Package Manuskript for Windows with PyInstaller](https://github.com/olivierkes/manuskript/wiki/Package-Manuskript-for-Windows-with-PyInstaller)
8. UPLOAD RELEASE PACKAGES
- Ensure all packages are uploaded to release area whether
automatically or manually created.
9. UPDATE PROJECT WEB SITE
- Announce new release on http://www.theologeek.ch/manuskript/