This project contains a script that helps to implement versioning algorithm described below.
Now we do not use semantic versioning due to a lot of breaking changes on current stage of the projects. We only:
- Set major version to 0
- Set minor version to 1
- Increment patch versions number.
Our version strategy now: 0.1.x, where we change only x.
Link: Diagram. Developing process
Versioning in live developing process:
- Work in branch
dev/feature/ ... - When you want to publish the release version, merge
featurebranch into branchmaster. After you updatemasterbranch CI does the following:- Gets numeric version from
package.json - Publish package to npm repo
- Increment version in
package.json - Commits updated version.
Be sure you set an auto-commit check on CI to prevent an endless loop of commits and CI
- Gets numeric version from
- Version is incremented automatically if it is already exists (patch version is incremented).
If version is automatically changed, we have automatically created commit in branch
master. If you want, you can set any different version number infeaturebranch before merging tomaster.
Link: Diagram. Publish script
Publishing algorithm looks like:
@eigenspace/argument-parser- argument parser command line.@eigenspace/logger- common logger.
@eigenspace/codestyle- includes lint rules, config for typescript.@eigenspace/commit-linter- linter for commit messages.husky- used for configure git hooks.@types/*- contains type definitions for specific library.@eigenspace/common-types- contains common type definitions.@eigenspace/helper-scripts- contains common scripts definitions.jest- testing framework to write unit specs (including snapshots).ts-jest- it lets you use Jest to test projects written in TypeScript.eslint- it checks code for readability, maintainability, and functionality errors.eslint-plugin-eigenspace-script- includes set of script linting rules and configuration for them.typescript- is a superset of JavaScript that have static type-checking and ECMAScript features.lint-staged- used for configure linters against staged git files.
Important!
Travis creates the .npmrc file during ci startup. This file contains the access token to the npm repository.

