Here we will describe a process that takes place after a contributor has successfully integrated his changes to the codebase as well as extension to the documentation etc. into the "develop" branch (by merging pull-requests).
Changes/extensions in the codebase, e.g. as new features or bugfixes, have a value for our application. We document all changes in a CHANGELOG. In the release procedure these changes are deployed on a webserver. Afterwards the user can use the newly released version online. For this we use two environments that are visible to the public for testing and production.
We make a new release every first monday of a month. All features and bugfixes which are integrated in the develop branch until then will be released.
We use projects on github to organize the release. Issues and pull requests can be assigned to a release-project on github by linking the project in the issue/pr. With the project feature of github, all tasks that are linked to the project are organized via a Kanban board.
The project can be linked in an issue or pull request via the menu "Projects"
Before see How to Contribute
-
Make a release candidate branch (e.g.,
release/vx.x.x
) and pull request it intomaster
with the following updates:- Update the oeplatform/versions/changelogs/
current.md
(see the examples of previous releases)- Change filename to release version (x_x_x.md)
- Update the oeplatform/versions/changelogs/
-
Confirm that the PR passes all tests and checks
-
Tag the release number
-
Once successful, delete the tag, and merge the candidate PR into
master
on Github -
Switch to the now-updated master branch:
git checkout master
andgit pull upstream master
-
Tag the release number:
git tag v<release version>
, e.g.,git tag v1.2.0
versioneer
automatically updates the version number based on the tag- this is now the official tagged commit
-
Push the tag upstream:
git push upstream --tags
-
Make a new release on Github
- make sure that you choose the tag name defined above
- copy the release summary from changelog into the description box
-
Add a new line "# Next Release" at the top of
RELEASE_PROCEDURE.md
and commit tomaster
-
Announce it on our mailing list: [email protected]
- again, copy the rendered HTML from the Github release directly in the email
-
As stated in the django deployment documentation, every django app has to be served by an external web server. Please make sure to follow the security advise given in the deployment documentation, if you want to host your own version of the Open Energy Platform.
And that's it! Whew...
Further Notes on how to deploy the OEP are documented here we also try to make this procedure more userfriendly by introducing docker.