Now that we are using quite a few output formats and translated versions it makes sense to have some form of documentation for the release process of the practical guide.
- export all illustrations as png from the S3 illustration repository and integrate into the practical guide repo
- make sure illustration repository is published so that the pattern map illustration on the website is the current version
- export translatable texts for illustrations and upload to crowdin
- bump the date in
config/project.yaml
- make a clean build for all fully automated formats and the Deckset source (using
./build.sh
) - run
make ebook
again (or even twice) so that the ebook is built - edit Deckset source: remove link on title page (otherwise the headline is aligned left
- export Deckset slide deck (16:9, with S3-Open-Theme v0.3) as PDF and PNG
- export Deckset slides (4:3) as A4 PDF
- move release artifacts to directory
release
8 Upload 3 PDFs (deckset 16:9 and A4, and ebook), 1 ePub and 1 ZIP (Deckset PNG) to ftp://sociocracy30.org/_res/practical-guide
- Crowdin: Build and download all translations (as a backup)
- Upload previous version of the sources (typically in develop) to a crowdin branch called
release-YYYY-MM-DD
- merge release branch into develop
- upload current sources to crowdin
- manually remove all files from crowdin that have been renamed or deleted in the practical guide
- hide strings in structure.yaml and other relevant files
- Bump the date on https://sociocracy30.org/guide/, the links should stay the same.
- Manually update Glossary, Changelog and Acknowledgements. The simplest way to update these is to copy the content out of the Deckset-file and manually remove the headlines.
- Changelog: https://sociocracy30.org/guide/changelog/
- Glossary: https://sociocracy30.org/guide/glossary/
- Acknowledgements: https://sociocracy30.org/guide/acknowledgements/
- merge release into master
- tag with
release-YYYY-MM-DD
- push to GitHub
Driver: We want to preserve efforts of people translating the project as much as possible, so that with the release of a new version of the guide translators don't won't suffer a major setback from
We attempted creation of release branches for previous versions, and deleted the master branch (files in the project root), but this messed up everything, it was then unclear which branch contained the "original" version of a string. Fortunately it's was possible to undo the deletion of the master files from the crowdin activity stream. So now everything is working again.
Branches are only relevant for future versions, i.e. the moment we start working on a new release, we can offer the work in progress for translations. But the moment we publish to master in Crowdin, we can only build the new version.
According to Crowdin support, the proper workflow when using version branches always including following:
- Using master branch to maintain the main release version
- Other version branches should contain the same content + new content/features under development
- Duplicate option you have (show - recommended for versions) helps translators to see only new content (as all duplicates are hidden and inherit translations from master branch)
- Once you decide to merge version branch with master you can do in locally and then update it in Crowdin
- Version branch that got merged locally now can be deleted in Crowdin project
Here is more information on branches and versions management: https://support.crowdin.com/versions-management/