diff --git a/.github/workflows/crate-bump.yml b/.github/workflows/crate-bump.yml new file mode 100644 index 000000000000..418fe10fd85d --- /dev/null +++ b/.github/workflows/crate-bump.yml @@ -0,0 +1,68 @@ +name: Bump Rust 🦀 crate version + +on: + workflow_dispatch: + inputs: + dist-location: + description: 'Distribution location' + type: choice + options: + - cln-plugin + - cln-rpc + - cln-grpc + default: 'cln-plugin' + required: true + +jobs: + bump: + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup protoc + uses: arduino/setup-protoc@v3 + + - name: Setup rust + uses: dtolnay/rust-toolchain@1.77 + + - name: Install cargo binstall + uses: cargo-bins/cargo-binstall@main + + - name: Install cargo-release and cargo-semver-checks + run: | + cargo binstall cargo-release --version 0.25.10 + cargo binstall cargo-semver-checks --version 0.36.0 + + - name: Determine version + id: determine-version + run: | + if cargo semver-checks -p ${{ github.event.inputs.dist-location }} --release-type patch; then + echo "bump=patch" >> $GITHUB_OUTPUT + elif cargo semver-checks -p ${{ github.event.inputs.dist-location }} --release-type minor; then + echo "bump=minor" >> $GITHUB_OUTPUT + elif cargo semver-checks -p ${{ github.event.inputs.dist-location }} --release-type major; then + echo "bump=minor" >> $GITHUB_OUTPUT + else + echo "bump=unknown" >> $GITHUB_OUTPUT + exit 1 + fi + + - name: Bump version + run: | + cargo release version -p ${{ github.event.inputs.dist-location }} ${{ steps.determine-version.outputs.bump }} --execute --no-confirm + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "${{ github.event.inputs.dist-location }}: Bump the ${{ steps.determine-version.outputs.bump }} version" + title: "${{ github.event.inputs.dist-location }}: Bump the ${{ steps.determine-version.outputs.bump }} version" + body: | + Triggered manually with option: ${{ github.event.inputs.dist-location }} + Version bump determined by `cargo semver-checks` + branch: "${{ github.event.inputs.dist-location }}-version-bump" + base: master + labels: version-bump, automated + delete-branch: true diff --git a/Cargo.toml b/Cargo.toml index bcc6f30f7d75..5f77640565f3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,3 +12,8 @@ members = [ "plugins/lsps-plugin", "plugins/wss-proxy-plugin", ] + +[workspace.dependencies] +cln-rpc = { path = "cln-rpc", version = "0.4.0" } +cln-grpc = { path = "cln-grpc", version = "0.4.1" } +cln-plugin = { path = "plugins", version = "0.4.0" } diff --git a/cln-grpc/Cargo.toml b/cln-grpc/Cargo.toml index 05963ecebccb..7a53125787ae 100644 --- a/cln-grpc/Cargo.toml +++ b/cln-grpc/Cargo.toml @@ -15,7 +15,7 @@ server = ["cln-rpc"] [dependencies] anyhow = "1.0" log = "0.4" -cln-rpc = { path = "../cln-rpc/", version = "0.4", optional = true } +cln-rpc = { workspace = true, optional = true } cfg-if = "1.0" serde = { version = "1.0", features = ["derive"] } tonic = { version = "0.11", features = ["tls", "transport"] } @@ -29,7 +29,7 @@ tokio-util = "0.7.10" [dev-dependencies] serde_json = "1.0.72" -cln-rpc = { path = "../cln-rpc/", version = "0.4" } +cln-rpc = { workspace = true } [build-dependencies] tonic-build = "0.11" diff --git a/plugins/Cargo.toml b/plugins/Cargo.toml index e6c9042d9ec5..bc895e1a0be2 100644 --- a/plugins/Cargo.toml +++ b/plugins/Cargo.toml @@ -27,4 +27,4 @@ tracing = { version = "^0.1", features = ["async-await", "log"] } [dev-dependencies] tokio = { version = "1", features = ["macros", "rt-multi-thread", ] } -cln-grpc = { version = "0.4", path = "../cln-grpc" } +cln-grpc = { workspace = true } diff --git a/plugins/grpc-plugin/Cargo.toml b/plugins/grpc-plugin/Cargo.toml index c8ef03689a50..3e89109400c4 100644 --- a/plugins/grpc-plugin/Cargo.toml +++ b/plugins/grpc-plugin/Cargo.toml @@ -17,9 +17,9 @@ anyhow = "1.0" log = "0.4" rcgen = { version = "0.13.1", features = ["pem", "x509-parser"] } prost = "0.12" -cln-grpc = { version = "0.4", features = ["server"], path = "../../cln-grpc"} -cln-plugin = { version = "0.4", path = "../../plugins" } -cln-rpc = { version = "0.4", path = "../../cln-rpc" } +cln-grpc = { workspace = true, features = ["server"]} +cln-plugin = { workspace = true } +cln-rpc = { workspace = true } serde_json = "1.0.113" [dependencies.tokio] diff --git a/plugins/lsps-plugin/Cargo.toml b/plugins/lsps-plugin/Cargo.toml index bbdebe9365d8..4557cebe1615 100644 --- a/plugins/lsps-plugin/Cargo.toml +++ b/plugins/lsps-plugin/Cargo.toml @@ -14,8 +14,8 @@ path = "src/service.rs" [dependencies] anyhow = "1.0" async-trait = "0.1" -cln-plugin = { version = "0.4", path = "../" } -cln-rpc = { version = "0.4", path = "../../cln-rpc" } +cln-plugin = { workspace = true } +cln-rpc = { workspace = true } hex = "0.4" log = "0.4" rand = "0.9" diff --git a/plugins/rest-plugin/Cargo.toml b/plugins/rest-plugin/Cargo.toml index 7dab8a46badc..1ee8dc5f78f5 100644 --- a/plugins/rest-plugin/Cargo.toml +++ b/plugins/rest-plugin/Cargo.toml @@ -31,7 +31,7 @@ utoipa = { version = "5", features = ['axum_extras'] } log-panics = "2" socketioxide = "0.15" -cln-plugin = { version = "0.4", path = "../../plugins" } -cln-rpc = { version = "0.4", path = "../../cln-rpc" } +cln-plugin = { workspace = true } +cln-rpc = { workspace = true } utoipa-swagger-ui = { version = "9.0.0", features = ["vendored", "axum"] } diff --git a/plugins/wss-proxy-plugin/Cargo.toml b/plugins/wss-proxy-plugin/Cargo.toml index dd73a0be5871..6d0a61d07dfa 100644 --- a/plugins/wss-proxy-plugin/Cargo.toml +++ b/plugins/wss-proxy-plugin/Cargo.toml @@ -23,6 +23,6 @@ tokio-rustls = { version = "0.26", default-features = false, features = ["ring", log-panics = "2" -cln-plugin = { version = "0.4", path = "../../plugins" } -cln-rpc = { version = "0.4", path = "../../cln-rpc" } +cln-plugin = { workspace = true } +cln-rpc = { workspace = true }