vership 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vership-0.2.4/.github/workflows/ci.yml +34 -0
- vership-0.2.4/.github/workflows/release.yml +141 -0
- vership-0.2.4/.gitignore +1 -0
- vership-0.2.4/CHANGELOG.md +51 -0
- vership-0.2.4/Cargo.lock +1059 -0
- vership-0.2.4/Cargo.toml +33 -0
- vership-0.2.4/LICENSE +21 -0
- vership-0.2.4/Makefile +25 -0
- vership-0.2.4/PKG-INFO +8 -0
- vership-0.2.4/README.md +156 -0
- vership-0.2.4/pyproject.toml +16 -0
- vership-0.2.4/src/changelog.rs +224 -0
- vership-0.2.4/src/checks.rs +117 -0
- vership-0.2.4/src/cli.rs +60 -0
- vership-0.2.4/src/config.rs +126 -0
- vership-0.2.4/src/error.rs +48 -0
- vership-0.2.4/src/git.rs +177 -0
- vership-0.2.4/src/hooks.rs +31 -0
- vership-0.2.4/src/lib.rs +12 -0
- vership-0.2.4/src/main.rs +137 -0
- vership-0.2.4/src/output.rs +42 -0
- vership-0.2.4/src/project/detect.rs +42 -0
- vership-0.2.4/src/project/mod.rs +26 -0
- vership-0.2.4/src/project/rust.rs +61 -0
- vership-0.2.4/src/project/rust_maturin.rs +85 -0
- vership-0.2.4/src/release.rs +223 -0
- vership-0.2.4/src/schema.rs +67 -0
- vership-0.2.4/src/version.rs +69 -0
- vership-0.2.4/tests/changelog_test.rs +333 -0
- vership-0.2.4/tests/config_test.rs +54 -0
- vership-0.2.4/tests/git_test.rs +170 -0
- vership-0.2.4/tests/version_test.rs +144 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
18
|
+
with:
|
|
19
|
+
components: rustfmt, clippy
|
|
20
|
+
- run: cargo fmt --check
|
|
21
|
+
- run: cargo clippy -- -D warnings
|
|
22
|
+
|
|
23
|
+
test:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
28
|
+
- run: cargo test
|
|
29
|
+
|
|
30
|
+
all-checks-passed:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
needs: [lint, test]
|
|
33
|
+
steps:
|
|
34
|
+
- run: echo "All checks passed"
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v[0-9]*.[0-9]*.[0-9]*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
dry_run:
|
|
10
|
+
description: "Dry run (skip publishing)"
|
|
11
|
+
required: false
|
|
12
|
+
default: true
|
|
13
|
+
type: boolean
|
|
14
|
+
skip_crates_io:
|
|
15
|
+
description: "Skip crates.io publish"
|
|
16
|
+
required: false
|
|
17
|
+
default: false
|
|
18
|
+
type: boolean
|
|
19
|
+
skip_pypi:
|
|
20
|
+
description: "Skip PyPI publish"
|
|
21
|
+
required: false
|
|
22
|
+
default: false
|
|
23
|
+
type: boolean
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
contents: write
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
test:
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
34
|
+
- run: cargo check --locked
|
|
35
|
+
- run: cargo test
|
|
36
|
+
|
|
37
|
+
build:
|
|
38
|
+
needs: test
|
|
39
|
+
strategy:
|
|
40
|
+
matrix:
|
|
41
|
+
include:
|
|
42
|
+
- target: x86_64-unknown-linux-gnu
|
|
43
|
+
os: ubuntu-latest
|
|
44
|
+
- target: aarch64-unknown-linux-gnu
|
|
45
|
+
os: ubuntu-latest
|
|
46
|
+
- target: x86_64-apple-darwin
|
|
47
|
+
os: macos-latest
|
|
48
|
+
- target: aarch64-apple-darwin
|
|
49
|
+
os: macos-latest
|
|
50
|
+
runs-on: ${{ matrix.os }}
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v4
|
|
53
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
54
|
+
with:
|
|
55
|
+
targets: ${{ matrix.target }}
|
|
56
|
+
- name: Install cross-compilation tools
|
|
57
|
+
if: matrix.target == 'aarch64-unknown-linux-gnu'
|
|
58
|
+
run: |
|
|
59
|
+
sudo apt-get update
|
|
60
|
+
sudo apt-get install -y gcc-aarch64-linux-gnu
|
|
61
|
+
- name: Install maturin and zig
|
|
62
|
+
run: pip install maturin ziglang
|
|
63
|
+
- name: Build wheel
|
|
64
|
+
shell: bash
|
|
65
|
+
run: |
|
|
66
|
+
case "${{ matrix.target }}" in
|
|
67
|
+
*-gnu)
|
|
68
|
+
maturin build --release --target ${{ matrix.target }} --zig
|
|
69
|
+
;;
|
|
70
|
+
*)
|
|
71
|
+
maturin build --release --target ${{ matrix.target }}
|
|
72
|
+
;;
|
|
73
|
+
esac
|
|
74
|
+
- name: Build binary
|
|
75
|
+
run: cargo build --release --target ${{ matrix.target }}
|
|
76
|
+
env:
|
|
77
|
+
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
|
|
78
|
+
- name: Package binary
|
|
79
|
+
run: |
|
|
80
|
+
ARCHIVE_NAME="vership-${{ github.ref_name }}-${{ matrix.target }}"
|
|
81
|
+
mkdir -p "${ARCHIVE_NAME}"
|
|
82
|
+
cp "target/${{ matrix.target }}/release/vership" "${ARCHIVE_NAME}/"
|
|
83
|
+
tar czf "${ARCHIVE_NAME}.tar.gz" "${ARCHIVE_NAME}"
|
|
84
|
+
shasum -a 256 "${ARCHIVE_NAME}.tar.gz" > "${ARCHIVE_NAME}.tar.gz.sha256"
|
|
85
|
+
- uses: actions/upload-artifact@v4
|
|
86
|
+
with:
|
|
87
|
+
name: build-${{ matrix.target }}
|
|
88
|
+
path: |
|
|
89
|
+
vership-*.tar.gz
|
|
90
|
+
vership-*.tar.gz.sha256
|
|
91
|
+
target/wheels/*.whl
|
|
92
|
+
|
|
93
|
+
sdist:
|
|
94
|
+
needs: test
|
|
95
|
+
runs-on: ubuntu-latest
|
|
96
|
+
steps:
|
|
97
|
+
- uses: actions/checkout@v4
|
|
98
|
+
- name: Install maturin
|
|
99
|
+
run: pip install maturin
|
|
100
|
+
- name: Build sdist
|
|
101
|
+
run: maturin sdist
|
|
102
|
+
- uses: actions/upload-artifact@v4
|
|
103
|
+
with:
|
|
104
|
+
name: sdist
|
|
105
|
+
path: target/wheels/*.tar.gz
|
|
106
|
+
|
|
107
|
+
release:
|
|
108
|
+
needs: [build, sdist]
|
|
109
|
+
runs-on: ubuntu-latest
|
|
110
|
+
steps:
|
|
111
|
+
- uses: actions/checkout@v4
|
|
112
|
+
- uses: actions/download-artifact@v4
|
|
113
|
+
with:
|
|
114
|
+
path: /tmp/artifacts
|
|
115
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
116
|
+
|
|
117
|
+
- name: Publish to crates.io
|
|
118
|
+
if: ${{ !inputs.dry_run && !inputs.skip_crates_io }}
|
|
119
|
+
run: cargo publish
|
|
120
|
+
env:
|
|
121
|
+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
|
122
|
+
|
|
123
|
+
- name: Install uv
|
|
124
|
+
uses: astral-sh/setup-uv@v6
|
|
125
|
+
|
|
126
|
+
- name: Publish to PyPI
|
|
127
|
+
if: ${{ !inputs.dry_run && !inputs.skip_pypi }}
|
|
128
|
+
run: uv publish /tmp/artifacts/build-*/*.whl /tmp/artifacts/sdist/*.tar.gz
|
|
129
|
+
env:
|
|
130
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
131
|
+
|
|
132
|
+
- name: Create GitHub Release
|
|
133
|
+
if: ${{ !inputs.dry_run }}
|
|
134
|
+
run: |
|
|
135
|
+
gh release create ${{ github.ref_name }} \
|
|
136
|
+
--title "${{ github.ref_name }}" \
|
|
137
|
+
--generate-notes \
|
|
138
|
+
/tmp/artifacts/build-*/*.tar.gz \
|
|
139
|
+
/tmp/artifacts/build-*/*.sha256
|
|
140
|
+
env:
|
|
141
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
vership-0.2.4/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/target
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## [0.2.4](https://github.com/rvben/vership/compare/v0.2.3...v0.2.4) - 2026-03-28
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **ci**: download artifacts to /tmp to avoid cargo publish size limit ([2cb9ee9](https://github.com/rvben/vership/commit/2cb9ee9ac0a71774c411a5614a1f02a4ecd86060))
|
|
16
|
+
|
|
17
|
+
## [0.2.3](https://github.com/rvben/vership/compare/v0.2.2...v0.2.3) - 2026-03-28
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **ci**: use uv publish instead of twine, fix cargo publish --allow-dirty ([54dccff](https://github.com/rvben/vership/commit/54dccff08f6eae3fe425c3afe2d6d0e540019cd0))
|
|
22
|
+
|
|
23
|
+
## [0.2.2](https://github.com/rvben/vership/compare/v0.2.1...v0.2.2) - 2026-03-28
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **ci**: allow dirty working tree for cargo publish (downloaded artifacts) ([29e9b6c](https://github.com/rvben/vership/commit/29e9b6ced8e6741bec9cd12e830327649a721046))
|
|
28
|
+
|
|
29
|
+
## [0.2.1](https://github.com/rvben/vership/compare/v0.2.0...v0.2.1) - 2026-03-28
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **ci**: use --zig flag for maturin cross-compilation on GNU targets ([5e65f0b](https://github.com/rvben/vership/commit/5e65f0bc22028467fa77c463c341a85cc853e7b4))
|
|
34
|
+
|
|
35
|
+
## [0.2.0] - 2026-03-28
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- add --no-push flag to bump command ([9df1baa](https://github.com/rvben/vership/commit/9df1baad4b42307408cdb69a684f4ee28ec3d659))
|
|
40
|
+
- **vership**: implement release orchestrator (bump, status, preflight, changelog) ([a782546](https://github.com/rvben/vership/commit/a782546c43f587438ea165005b213e5ba0b8ef3f))
|
|
41
|
+
- **vership**: implement config parsing and hook execution ([c325c8c](https://github.com/rvben/vership/commit/c325c8c58853025d76dbfff6d0d10d69d2cfa89e))
|
|
42
|
+
- **vership**: implement pre-flight checks (git, lockfile, lint, tests) ([c99e8db](https://github.com/rvben/vership/commit/c99e8db9d728dca548266d8f31dd900d13c5203f))
|
|
43
|
+
- **vership**: implement changelog generation from conventional commits ([127fe16](https://github.com/rvben/vership/commit/127fe16c7b675485261fa81a668b3ae70d1328e9))
|
|
44
|
+
- **vership**: implement git operations (tags, commits, remote URL, staging) ([12145c3](https://github.com/rvben/vership/commit/12145c3abb64e2bb4bd78f31b1f443cbfa47a175))
|
|
45
|
+
- **vership**: implement version parsing, bumping, and project type detection ([32abfbf](https://github.com/rvben/vership/commit/32abfbf4015e8dc3f67767af7afa186a4fe0bb9f))
|
|
46
|
+
- **vership**: scaffold project with CLI, error handling, and project type trait ([ad73bfc](https://github.com/rvben/vership/commit/ad73bfcd10418fe00119375cf339976c4078b5ce))
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- **vership**: only check tracked files for uncommitted changes ([1dbec7c](https://github.com/rvben/vership/commit/1dbec7cd64a6d9b232d72a39f3dbbab295b5cbec))
|
|
51
|
+
- **vership**: address code review findings (TOML parsing, error handling, test coverage) ([a1cbc70](https://github.com/rvben/vership/commit/a1cbc707cf9b0592bb1c331ec93bfe5623bf670f))
|