1
1
mirror of https://github.com/casey/just.git synced 2024-10-26 06:50:11 +03:00

Remove v prefix from version (#850)

This commit is contained in:
Casey Rodarmor 2021-06-01 16:37:40 -07:00 committed by GitHub
parent acc7494268
commit 0a9ffd7a7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 163 additions and 47 deletions

View File

@ -69,25 +69,26 @@ jobs:
run: |
sudo apt-get update
- name: Install Main Toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
profile: minimal
components: clippy
override: true
- name: Install Rust Toolchain
run: |
rustup component add clippy
rustup target add ${{ matrix.target }}
rustup default `cat rust-toolchain`-${{ matrix.target }}
- name: Install AArch64 Toolchain
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get install gcc-aarch64-linux-gnu
- name: Version
- name: Info
run: |
rustup --version
cargo --version
cargo clippy --version
- name: Check Lockfile
run: |
cargo update --locked --package just
- name: Build
run: cargo build --all --target ${{ matrix.target }}
@ -144,12 +145,16 @@ jobs:
run: ./bin/package ${{github.ref}} ${{matrix.os}} ${{ matrix.target }}
shell: bash
- name: Prerelease Check
id: is_prerelease
run: cargo run --package prerelease -- --reference ${{ github.ref }}
- name: Publish
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v0.1.5
if: startsWith(github.ref, 'refs/tags/')
with:
draft: false
files: ${{ steps.package.outputs.archive }}
prerelease: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
prerelease: ${{ steps.is_prerelease.outputs.value }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

64
Cargo.lock generated
View File

@ -266,6 +266,15 @@ version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]]
name = "prerelease"
version = "0.0.0"
dependencies = [
"executable-path",
"regex",
"structopt",
]
[[package]]
name = "pretty_assertions"
version = "0.7.2"
@ -278,6 +287,30 @@ dependencies = [
"output_vt100",
]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro2"
version = "1.0.27"
@ -398,6 +431,30 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "structopt"
version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
dependencies = [
"clap",
"lazy_static",
"structopt-derive",
]
[[package]]
name = "structopt-derive"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
dependencies = [
"heck",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "strum"
version = "0.20.0"
@ -463,6 +520,7 @@ dependencies = [
name = "test-utilities"
version = "0.0.0"
dependencies = [
"just",
"tempfile",
]
@ -499,6 +557,12 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "version_check"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
[[package]]
name = "wasi"
version = "0.10.2+wasi-snapshot-preview1"

View File

@ -12,6 +12,9 @@ autotests = false
categories = ["command-line-utilities", "development-tools"]
keywords = ["command-line", "task", "runner", "development", "utility"]
[workspace]
members = [".", "bin/prerelease"]
[dependencies]
ansi_term = "0.12.0"
atty = "0.2.0"

13
bin/prerelease/Cargo.toml Normal file
View File

@ -0,0 +1,13 @@
[package]
name = "prerelease"
version = "0.0.0"
authors = ["Casey Rodarmor <casey@rodarmor.com>"]
edition = "2018"
publish = false
[dependencies]
regex = "1.5.4"
structopt = "0.3.21"
[dev-dependencies]
executable-path = "1.0.0"

View File

@ -0,0 +1,20 @@
use regex::Regex;
use structopt::StructOpt;
#[derive(StructOpt)]
struct Arguments {
#[structopt(long)]
reference: String,
}
fn main() {
let arguments = Arguments::from_args();
let regex = Regex::new("^refs/tags/[[:digit:]]+[.][[:digit:]]+[.][[:digit:]]+$")
.expect("Failed to compile release regex");
println!(
"::set-output name=value::{}",
!regex.is_match(&arguments.reference)
);
}

View File

@ -0,0 +1,42 @@
use executable_path::executable_path;
use std::{process::Command, str};
fn stdout(reference: &str) -> String {
let output = Command::new(executable_path("prerelease"))
.args(&["--reference", reference])
.output()
.unwrap();
assert!(output.status.success());
String::from_utf8(output.stdout).unwrap()
}
#[test]
fn junk_is_prerelease() {
assert_eq!(stdout("refs/tags/asdf"), "::set-output name=value::true\n");
}
#[test]
fn valid_version_is_not_prerelease() {
assert_eq!(
stdout("refs/tags/0.0.0"),
"::set-output name=value::false\n"
);
}
#[test]
fn valid_version_with_trailing_characters_is_prerelease() {
assert_eq!(
stdout("refs/tags/0.0.0-rc1"),
"::set-output name=value::true\n"
);
}
#[test]
fn valid_version_with_lots_of_digits_is_not_prerelease() {
assert_eq!(
stdout("refs/tags/01232132.098327498374.43268473849734"),
"::set-output name=value::false\n"
);
}

View File

@ -55,7 +55,7 @@ man:
view-man: man
man man/just.1
version := `sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/v\1/p' Cargo.toml | head -1`
version := `sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/\1/p' Cargo.toml | head -1`
# add git log messages to changelog
changes:

1
rust-toolchain Normal file
View File

@ -0,0 +1 @@
1.52.1

View File

@ -310,7 +310,7 @@ impl Config {
))
} else {
app
.version(concat!("v", env!("CARGO_PKG_VERSION")))
.version(env!("CARGO_PKG_VERSION"))
.author(env!("CARGO_PKG_AUTHORS"))
.about(concat!(
env!("CARGO_PKG_DESCRIPTION"),
@ -900,7 +900,7 @@ mod tests {
// have proper tests for all the flags, but this will do for now.
#[test]
fn help() {
const EXPECTED_HELP: &str = "just v0.9.4
const EXPECTED_HELP: &str = "just 0.9.4
Casey Rodarmor <casey@rodarmor.com>
🤖 Just a command runner \
- https://github.com/casey/just

View File

@ -7,3 +7,4 @@ publish = false
[dependencies]
tempfile = "3"
just = { path = ".." }

View File

@ -123,39 +123,6 @@ macro_rules! tmptree {
mod tests {
use super::*;
#[test]
fn unindents() {
assert_eq!(unindent("foo"), "foo");
assert_eq!(unindent("foo\nbar\nbaz\n"), "foo\nbar\nbaz\n");
assert_eq!(unindent(""), "");
assert_eq!(unindent(" foo\n bar"), "foo\nbar");
assert_eq!(unindent(" foo\n bar\n\n"), "foo\nbar\n");
}
#[test]
fn indentations() {
assert_eq!(indentation(""), "");
assert_eq!(indentation("foo"), "");
assert_eq!(indentation(" foo"), " ");
assert_eq!(indentation("\t\tfoo"), "\t\t");
assert_eq!(indentation("\t \t foo"), "\t \t ");
}
#[test]
fn blanks() {
assert!(blank(" \n"));
assert!(!blank(" foo\n"));
assert!(blank("\t\t\n"));
}
#[test]
fn commons() {
assert_eq!(common("foo", "foobar"), "foo");
assert_eq!(common("foo", "bar"), "");
assert_eq!(common("", ""), "");
assert_eq!(common("", "bar"), "");
}
#[test]
fn tmptree_file() {
let tmpdir = tmptree! {