SXCM Developpement
Developper tools
development environment
To get a development environment, you should follow theses steps :
- create a fork of this repository by running the fork option in the
https://github.com/startxfr/sxcm
This action must be performed in your github account by visiting thehttps://github.com/startxfr/sxcm
account and clinking thefork
button. - Clone a local copy of your cloned repository with
git clone https://github.com/yourusername/sxcm ~/sxcm
- link shared library with
ln -s ~/sxcm/src /usr/share/sxcm
- Create an sxcm local executable with
ln -s ~/sxcm/src/cli /usr/bin/sxcm
- Change directory context with
cd ~/sxcm
main files
- Entrypoint of the sxcm command
vi /usr/bin/sxcm
- Multiple library loaded by the sxcm command with
vi /usr/share/sxcm/*
- Multiple profiles loaded by the sxcm command with
vi /usr/share/sxcm/profiles/*
- Multiple resources loaded by the sxcm command with
vi /usr/share/sxcm/resources/*
Release lifecycle
Release convention
- MAJOR version for major sxcm structural changes that lead to break the compatibility with previous version (ex: X.0.0)
- MINOR version for major functionality ehancement added in a backwards compatible manner (ex: 0.X.0)
- PATCH version for bug, security and functionnals updates, backwards compatible for continous delivery (ex: 0.0.X)
- PRE-RELEASE version for an unstable release that might not satisfy the intended compatibility requirements (ex: 0.0.0-beta)
- BUILD version to identify to differents build during release preparation (ex: 0.0.0-tag)
Major are based on the latest related minor release. Minor are based on the latest related patch release with an odd number are used for stable and releasable version. A even minor or patch number indicate a release not stable and releasable.
The CI chain will run integration test suite and promote to a stable release number the code if test are OK.
Examples
- major release :
1.8
to1
- minor release :
1.8.16
to1.8
- patch release :
1.9.3
is unstable,1.9.4
is stable - pre-release :
1.9.5
is unstable, prepare stable1.9.6
with1.9.6-alpha
- build release :
1.9.7+20200313144700
or1.9.7-alpha+20200313144700
Release rules
- Major releases defined by startx strategy (driven by technology improvments)
- Minor releases defined by openshift, startx's driven roadmap
- Patch releases defined by technical issues related to services
- pre-release defined as part of major and minor release lifecycle
- build release used only during dev, test, build CI operations