https://github.com/gregl83/monover
Blazing fast intelligent monorepo continuous integration versioning.
https://github.com/gregl83/monover
automation monorepo semver versioning
Last synced: 9 months ago
JSON representation
Blazing fast intelligent monorepo continuous integration versioning.
- Host: GitHub
- URL: https://github.com/gregl83/monover
- Owner: gregl83
- License: mit
- Created: 2023-05-20T07:07:53.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-13T04:43:23.000Z (almost 3 years ago)
- Last Synced: 2025-04-09T21:55:12.256Z (about 1 year ago)
- Topics: automation, monorepo, semver, versioning
- Language: Rust
- Homepage:
- Size: 68.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/gregl83/monover/actions/workflows/build.yml)
[](https://crates.io/crates/monover)
[](https://github.com/gregl83/monover/blob/master/LICENSE)
# monover
Blazing fast intelligent [monorepo](https://monorepo.tools/) continuous integration versioning.
## State
In-Development of Beta
## Features
### Parallelized Repository Scans
Large file system directory structures are scanned using [Rust Rayon](https://github.com/rayon-rs/rayon) to minimize scan times.
### Version Validations
Package versions are validated to prevent duplicate target versions and variance from versioning scheme.
### Automatic Repository Versioning
Repository versions are automatically derived from package versions.
### Supported Version Schemes
- [Semantic Versioning](https://semver.org/)
### Multilingual Version Fluency
Supports versioning of repository packages using standard package management configuration files.
See [target.json](targets.json) for complete list of supported files.
Cannot find your favorite package manager? Open an [issue](https://github.com/gregl83/monover/issues/new) to request support.
## Concepts
### CHANGE Files
These files are used for `monover` to decide how to increment package version files.
#### Major
```json
"major"
```
#### Minor
```json
"minor"
```
#### Patch
```json
"patch"
```
#### Pre-Release
```json
"-"
```
### VERSION Files
These are special files that have three main functions:
- Version repository (auto-generated).
- Version repository packages (overrides version file matches).
- Settle version ambiguity (1 < version file match).
The format for `VERSION` files is a simple double-quoted string. They are valid JSON files without file extensions.
There are two possible values for the `VERSION` file string.
#### Versioning Scheme Version
```json
"1.0.0"
```
#### Version File Key
Must match a file key in [targets.json](targets.json).
```json
"cargo.toml"
```
Use this option for version ambiguity due to multiple files in [targets.json](targets.json) found in single package.
## License
[MIT](LICENSE)