...
 
Commits (6)
Gitlab pages https://htgoebel.gitlab.io/OSD-Neo2/
=========================================================
This branch contains the website for `OSD Neo2
<https://gitlab.com/htgoebel/OSD-Neo2>`. The website is build using `GitLab
Pages <https://docs.gitlab.com/ee/user/project/pages/index.html>`_
.. _README:
================================
Updating the `OSD Neo2` Website
================================
This branch contains the website for `OSD Neo2`__ . The website is
build using `GitLab Pages`__ and lives at
https://htgoebel.gitlab.io/OSD-Neo2/
__ https://gitlab.com/htgoebel/OSD-Neo2
__ https://docs.gitlab.com/ee/user/project/pages/index.html
Basic Workflow
......@@ -37,3 +44,11 @@ The HTML files are generated using
The new pages are build
automatically by Gitlab's CI/CD system as soon as you push this branch
to Gitlab. The build-instructions are defined in ``.glitlab-ci.yml``.
.. Emacs config:
Local Variables:
mode: rst
ispell-local-dictionary: "american"
End:
.. |OSDNeo2| replace:: `OSD Neo2`
.. _Development:
================
Development
================
Branches
=========
* Branch **master** is the main development branch. The source code of
HEAD on this branch always reflects a state with the latest
development changes for the next release. Some would call this the
“integration branch”.
* Branch **releases** is the main release branch. The source code of
HEAD on this branch always reflects the state of the latest release.
Each commit to master is considered a new release and will be
tagged.
* Branch **website** is holding the source of the website. See the
:ref:`README in that branch <README>` for more information.
Version Scheme
===============
|OSDNeo2| follows the :pep:`440` version scheme:
* Releases are numbered like `0.14`, `0.14.1`, `1.1`, `1.2`, `1.2.1`
* Prereleases have `.dev0`, `.dev1`, etc. appended.
Information for Maintainers
================================
.. toctree::
:maxdepth: 2
release
.. include:: ../_common_definitions.txt
.. Emacs config:
Local Variables:
mode: rst
ispell-local-dictionary: "american"
End:
========================
The Release Process
========================
This page describes the release process for |OSDNeo2|. The process may
look over-engineered for a small project like this one, but I'm used
to it from my other projects like `PyInstaller
<http://www.pyinstaller.org>`_.
.. _Preparation:
Preparation
=============
1. Ensure you have write access to the repository at GitLab.
2. Install the required helper-tools::
pip install --user -U zest.releaser
Full Release Process
=============================
Prepare for Release
----------------------
1. Prepare (see :ref:`above <Preparation>`).
2. Implement and close all issues and pull requests in a specific milestone.
3. Ensure everything relevant is committed and tested. ``git stash``
your local changes which should not go into the release.
4. Continuous integration tests should pass (if we have these tests)
Main Release Process
--------------------------
6. Set a shell variable to be able to copy-and-paste the remaining
snippets, e.g.::
version=3.1
7. Create the **release branch**::
git checkout -b release/$version
8. **Update versions** in Source-code, Changelog, etc.::
prerelease # zest.releaser command
This will
- ask you a few questions - required version, ...
- remove ``.devN`` from the version string
- update date and version in ``NEWS.rst``
10. Update **``NEWS.rst``**:
Where to look for possible changes? You can look in pull requests,
issues, commits, mailing list or even |OSDNeo2| cli options
(new/removed options).
a. Check if the files are valid reStructuredText by running::
rst2html NEWS.rst > /tmp/NEWS.html
xdg-open /tmp/NEWS.html # opens file in your web-browser
b. If everything is fine, commit::
git commit -m "Update NEWS.rst for release $version" NEWS.rst
12. Adjust whatever else is required for the release *now*.
13. Complete the release:
a. Merge into branch `releases`::
git checkout releases
git merge --no-ff -m "Release $version." release/$version
b. In case of a merge-conflict, resolve it using::
git gui # In the context-menu select "Use Local Version"
git commit -m "Finished release $version."
d. Tag and sign the release (we are using prefix ``v``)::
git tag -s v$version -m "|OSDNeo2| $version"
14. Do **not** run the zest.releaser script ``release``. It will only
perform stuff we do not need for this project.
15. Push the changes to GitLab::
git push --follow-tags origin releases
This will automatically create a new release and release archives
under https://gitlab.com/htgoebel/OSD-Neo2/tags
16. Edit the release on GitLab:
a. Go to the `|OSDNeo2| tags page
<https://gitlab.com/htgoebel/OSD-Neo2/tags>`_
b. Edit the latest `tag` details.
c. Copy there the changelog for the current release. This should
look like `this one
<https://gitlab.com/htgoebel/OSD-Neo2/tags/v0.14>`_ Mind to
keep the links to the release archives and the different markup
(which is `markdown`).
19. Update the `website <https://htgoebel.gitlab.io/OSD-Neo2>`_:
- Update version in ``conf.py``.
- Commit and push push the updated website::
git add conf.py
git commit -m "Bump version to $version"
git push
20. Announce the new release on:
* `Neo-Layout mailing list
<https://lists.neo-layout.org/listinfo/diskussion>`_
Post-Release Steps
------------------------
Now we are going to perform some **post-release** steps:
20. Checkout the release-branch and forward it to releases::
git checkout release/$version releases
git reset --hard releases
22. Run the release script ``postrelease``::
postrelease # zest.releaser command
This will
- increment version string for a new release: `3.0 -> 3.1.dev0`
- prepare `NEWS.rst` for the next release.
23. Merge into branch `develop`::
git checkout master
git merge --no-ff -m "Finish releasing $version." release/$version
24. Check the diffs: it should only be version related stuff::
git diff origin/master
25. Delete the local release branch and push the changes:
git branch -d release/$version
git push --follow-tags origin master releases
.. include:: ../_common_definitions.txt
.. Emacs config:
Local Variables:
mode: rst
ispell-local-dictionary: "american"
End:
......@@ -25,9 +25,9 @@ Bildschirm anzeigt.
:scale: 50%
:alt: Bildschirmfoto: |OSDNeo2| in Aktion
**Aktuelle Version**: |version| (Download_)
**Aktuelle Version**: |release| (Download_)
.. _Archiv: https://gitlab.com/htgoebel/OSD-Neo2/uploads/f0636f2f248945a652538d0bf4466b1a/OSD-neo2-0.14.tar.gz
.. _Archiv: https://gitlab.com/htgoebel/OSD-Neo2/uploads/6bbb9bcd60f29e6c50ce634f624ca07b/OSD-neo2-0.14.1.tar.gz
.. _Download: Archiv_
Neben einer `Standard-Tastatur
......@@ -226,5 +226,23 @@ beide Versionen gleichzeitig installieren, allerdings nutzen sie die
gleiche :ref:`Konfigurationsdatei` und die Einstellungen können
sich damit stören.
Weitere Informationen für Entwickler
--------------------------------------
.. |OSDNeo2| replace:: `OSD Neo2`
Diese Texte sind auf Englisch verfasst.
.. toctree::
:maxdepth: 1
:titlesonly:
development/index
Updating the Website <README>
.. include:: _common_definitions.txt
.. Emacs config:
Local Variables:
mode: rst
ispell-local-dictionary: "german"
End: