monover

Crates.iomonover
lib.rsmonover
version0.1.0
sourcesrc
created_at2023-05-23 00:12:30.60613
updated_at2023-05-23 00:12:30.60613
descriptionBlazing fast intelligent monorepo continuous integration versioning.
homepagehttps://crates.io/crates/monorepo
repositoryhttps://github.com/gregl83/monorepo
max_upload_size
id871584
size16,708
gregory langlais (gregl83)

documentation

README

.github/workflows/build.yml

monover

Blazing fast intelligent monorepo continuous integration versioning.

Features

Parallelized Repository Scans

Large file system directory structures are scanned using Rust 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.

Historical Version Log

Keeps track of versions to validate new target versions and perform state audits.

Version Log uses Rust implementation of the Cap'n Proto message format.

Supported Version Schemes

Multilingual Version Fluency

Supports versioning of repository packages using standard package management configuration files.

  • Generic
    • VERSION
  • Go
    • go.mod
  • NodeJs
    • package.json
  • Rust
    • cargo.toml
  • C++
    • conanfile.py
    • conanfile.txt
  • Python
    • setup.cfg
    • setup.py
  • Java
    • pom.xml
    • build.gradle
  • Scala
    • build.sbt
  • Swift
    • Package.swift
  • Dart
    • pubspec.yaml
  • Clojure
    • project.clj
  • F#
    • paket.dependencies
  • C#
    • .csproj
    • .nuspec
  • Haskell
    • .cabal
  • Kotlin
    • build.gradle.kts
  • R
    • DESCRIPTION
  • Lua
    • .rockspec
  • OCaml
    • .opam
    • opam
  • PHP
    • composer.json
  • Perl
    • Makefile.PL
    • Build.PL
    • META.yml
  • Julia
    • Project.toml
  • Crystal
    • shard.yml
  • Nim
    • .nimble
  • Erlang
    • rebar.config
  • Ruby
    • .gemspec
  • Elixir
    • mix.exs
  • Elm
    • elm.json
  • Idris
    • elba.toml

Concepts

CHANGE Files

These files are used for monover to decide how to increment package version files.

Example:

"major"

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:

  • Valid value for Versioning Scheme.
  • Key of version file to use.

License

MIT

Commit count: 28

cargo fmt