#date #version #major #user #recent #how #generate

app date-version

Generate a version based on a major and date. Because usually users just care how recent a version is.

2 releases

0.1.1 May 20, 2021
0.1.0 May 20, 2021

#2 in #major

MIT/Apache

10KB
137 lines

date-version

Installation

cargo install date-version

Examples

Point to a git repo that reports 4.1.0-2-g0ebd049 from git describe.

date-version path/to/repo --date

returns: 4.7707.0, or major.days.0. Days is number of days since 2000.01.01.

date-version path/to/repo --date-split

returns: 4.30.2, or major.days1.days2. Days is split into two u8 to overwrite minor and patch.

date-version path/to/repo --date --drop-patch --revisions

returns: 4.7707.2, or major.days.commitsSinceTag. Patch is dropped, commits since last tag is added on.

Reference

Date Version 0.1.0
Conor Patrick <conor@solokeys.com>
Generate a version string that is based on the latest tag in a git repo and it's creation date.  Because usually users
just want to know how recent a version is.

USAGE:
    date-version [FLAGS] [PATH]

FLAGS:
        --date                    Output version as major.days.0 (u16.u16.0), where major is from the last tag in the
                                  git repo, and days is number of days since 2000.01.01.
        --date-split              Output version as major.days1.days2 (u16.u8.u8), where major is from the last tag in
                                  the git repo, and ((days1 << 8) | days2) is number of days since 2000.01.01.
        --drop-major              Drop the major from the output.
        --drop-minor              Drop the minor from the output.
        --drop-patch              Drop the patch from the output.
        --enforce-u8              Fail if any version component does not fit in a u8.
    -h, --help                    Prints help information. Use --help for more details.
        --revisions               add .revisions (.u16) to the end of the output, where revisions is number of commits
                                  since last tag.
        --revisions-prerelease    add -revisions (-u16) to the end of the output, where revisions is number of commits
                                  since last tag.
    -V, --version                 Prints version information

ARGS:
    <PATH>    Path to git repo.

Dependencies

~12MB
~279K SLoC