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
integrationand PROD frommaster, and has noreleasebranch - 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
- not every project has it — a project with only DEV and PROD instances deploys DEV from
- 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
developandmasterbranches 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:
- Fix the underlying issue — do not bypass the hook.
- Re-stage the fixed files and commit again.
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