Here you can find the standards agreed for development within the project.
The version numbers used within all repositories is based on semantic versioning.
Each repository evolves its version number independent of other repositories within the project. In particular the version number for the server is not explicitly aligned with the version number of the web client.
The development process in use is largely based on the default process suggested by Zenhub.
The branching strategy used by the project is largely as describined in this article, with the caveat that master is now called main in light of recent updates to Github naming standards.
As such the two primary branches in each repository are:
- main: for stable releases
- develop: for active development
In addition feature branches are used for issues and that are then merged into develop.
The convention for naming of feature branches is that they should take the name of the issue being worked on in the branch e.g. "coordination#100".
In general there should be one issue per feature branch.
In addition the following environments are used for the release management of the platform:
- dev: for the continual deployment from the develop branch, from Server and client repos.
- test: for carrying out performance / load testing, or just simply having an environment whereby particular issues can be reviewed
- sandbox: a production like environment where the capabilities fo the platform can be evaluated
- acc: for verification of new builds before they are deployed to production environments. It matches as far as possible the production setup
- prod: the production open innovation space.
The dev environment exposes the following end points:
- client: https://dev.alkem.io
- server: https://dev.alkem.io/graphql
Similar end points are exposed for all other environments.
Development takes place primarily on local machines.
The default developer IDE is VS Code, and repos may include configuration for that IDE that make sense to be shared (debug setups etc).
There are currently CI and Nightly builds on the develop branches of the following repositories:
Docker is used to containerize the results from each repository.
DockerHub is used as the primary registry for public images. New Images are pushing automatically to DockerHub upon tagged releases in the repos.
The currently supported repos on dockerhub are:
- alkemio/server
- alkemio/client-web
The Demo repo has a docker-composed application that takes the latest image from both of these repos and creates a simple running demonstrator.
It is likely that there is later a separate repository location added for more development oriented images.
All docker images should have a version number tag assigned.
The latest
tag is reserved for the latest image generated from the main branches.
The deployment environment is based on Kubernetes, generated via Terraform.