It is recommended to develop with Visual Studio Code and make use of the git integration and the many extensions available.
Local development (requires python):
pip install mkdocs pip install mkdocs-material mkdocs serve # starts a dev server
cmd/ directory contains only the
stream-server command. The code of the server is in
internal/server and the static files for the playback website in
pkg/ contains project independent code to access the Twitch API. This separation is done in accordance to the Standard Go Project Layout.
Local development (requires go 1.13 and a Twitch client id):
The project uses Semantic Versioning prefixed with an
Everybody can contribute code by opening merge requests. Users with role Developer can also directly push to master.
This allows interested students to work on master and make use of the CI pipeline but only Maintainers can create version tags. These tags are protected and will trigger an deploy to GitLab Pages by
.gitlab-ci-pages.yml. This means that only a Maintainer can update the live documentation and the downloads.
This is done to prevent abuse e.g. distributing malware.
How a Maintainer should publish a new version¶
In GitLab → Repository → Compare - review the changes between master and the latest version tag (bottom of the list).
If everything is okay and no malicious code is found update the CHANGELOG.md with the new version and a short changelog. Maybe even link to issues or merge requests.
Commit (name it
Updated CHANGELOG to vX.X.X), push the changes and check if the CI pipeline succeeds.
If the pipeline fails it means there are still errors in the server or the docs.
Optionally for additional testing: The artifacts of the pipeline can be manually tested.
In GitLab → Repository → Tags create a new tag from master. The version should be the same as in the changelog and the commit message.
After the pipeline for the tag is finished the documentation and downloads should update after some time.
Note that google needs some time to crawl and virus scan the executables so until that happens chrome will display a warning when downloading.