SXCM Developpement

Developper tools

development environment

To get a development environment, you should follow theses steps :

  1. create a fork of this repository by running the fork option in the This action must be performed in your github account by visiting the account and clinking the fork button.
  2. Clone a local copy of your cloned repository with git clone ~/sxcm
  3. link shared library with ln -s ~/sxcm/src /usr/share/sxcm
  4. Create an sxcm local executable with ln -s ~/sxcm/src/cli /usr/bin/sxcm
  5. 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.


  • major release : 1.8 to 1
  • minor release : 1.8.16 to 1.8
  • patch release : 1.9.3 is unstable, 1.9.4 is stable
  • pre-release : 1.9.5 is unstable, prepare stable 1.9.6 with 1.9.6-alpha
  • build release : 1.9.7+20200313144700 or 1.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