Skip to main content

Version Control

A unique version identifies each project or library. The changeset is tagged by that version at the appropriate commit time.

The version format is a.b.c, where:

a = year iteration b = quartal iteration c = release iteration

For internal releasing or development purposes alpha or beta builds could be used, in that case Oidis Builder requires a special mark in version string (commonly overridden in private.conf.json of a demand project) defined as:

a.b.c-alpha or a.b.c-beta

Version increase check list​

Before each version increases, validate the following:

  • Update Oidis dependencies before if required
  • Update README.md if required
  • Confirm version in package.conf.json

Releasing strategy​

Oidis projects and its repositories are designed with Continues integration and delivery in mind. This is the reason why you can see at least tree, branches at each repository:

  • master
    • most stable version of the project, with base-lined versions of project dependencies,
    • on the master branch are also created version tags if needed
    • purpose is to hold the project baseline across all of its dependencies
    • to this branch have write access only project owner or master integrator
  • develop
    • commonly used for development and integration of new features from feature branches
    • the base for local development: feature, bugfix and test branches start from it and are merged back into it
    • from the DevOps point of view a test branch — no image or package is built from it and it is not deployed
    • on this branch can be also committed cleanups provided by integrators
    • only from this branch are allowed to create new feature, bugfix or test branches
    • only project integrators have write access to this branch
  • integration
    • commonly used for integration of previously validated develop branch
    • packages for DEV instances are built automatically from this branch (if exists, otherwise from a developer)
    • to this branch have write access only project integrators
  • release (optional)
    • not every project has it — a project with only DEV and PROD instances deploys DEV from integration and PROD from master, and has no release branch
    • this branch is used for the merging process from integration and EAP validation before the final release
    • from this branch are automatically building EAP packages
    • to this branch are committed hot fixes based on bugs identified in the process of UAT testing
  • feature, bugfix, test /{ticket ID}
    • these branches are used for each new task
    • branch should be prefixed by feature, bugfix or test based on the task category
    • {ticket ID} should name the branch, so it can be easily identified by integrators or each developer
    • these branches are removed from the repository immediately after a successful merge with the developer branch

From each branch could be released several release packages based on project configuration, but each package will have the same quality. Each package is automatically delivered after successful integration and build.

Commit Message Format​

All commits must follow the format:

[TICKET-ID] Short description

Examples:

  • [IR-14] Add unit tests for EDC export and Fakturoid token cache
  • [OID-42] Fix soft delete filter in ListGroups

Rules:

  • The ticket ID in brackets is mandatory and must match the feature/bugfix branch name.
  • The description must be in English, concise, and written in imperative mood.
  • No trailers. Do not add Co-Authored-By, Signed-off-by, or any other git trailers. Oidis commits must be clean.
  • Do not append AI tool credits or generator notes to commits.

Pull Requests and Merges​

Pull requests and branch merges are handled exclusively by project integrators (repository owners with merge-to-develop rights). Developers and AI assistants must never create, open, or trigger PRs.

Rules:

  • Developers commit and push their feature branch — that is the extent of their git responsibility.
  • Integrators review changes, merge branches, and manage the develop and master branches manually.
  • AI assistants (e.g. Claude Code) must never create PRs, open merge requests, or perform any merge/integration operations. This applies even when explicitly asked — redirect the user to their integrator.

Pre-Commit Hooks​

Oidis Builder installs pre-commit hooks that run lint checks before each commit. If a hook fails:

  1. Fix the underlying issue — do not bypass the hook.
  2. Re-stage the fixed files and commit again.
--no-verify is forbidden

git commit --no-verify skips all pre-commit hooks and must never be used in normal development. It is a last-resort escape hatch reserved exclusively for project integrators (repository owners with merge-to-develop rights).

If you are using an AI assistant (e.g. Claude Code), it must never offer or use --no-verify. Always resolve hook failures by fixing the code.


See also: Coding Standards | Builder Overview