From 7e7c091d05cb09a29a130aeb4cfa0055aac55f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sun, 3 Apr 2022 17:21:32 +0200 Subject: [PATCH 01/29] Start new development cycle 0.3.0-SNAPSHOT --- CHANGES.md | 2 ++ Cargo.lock | 2 +- Cargo.toml | 2 +- VERSION | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 10fe5ee..648f4da 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,5 @@ +# Changes since latest release + # Changes in 0.2.0 - Add two additional errors for hooks diff --git a/Cargo.lock b/Cargo.lock index 45b4c7b..2beea6b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,7 +91,7 @@ dependencies = [ [[package]] name = "git-bump" -version = "0.2.0" +version = "0.3.0-SNAPSHOT" dependencies = [ "clap", "git2", diff --git a/Cargo.toml b/Cargo.toml index ef1f388..c272ea9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "git-bump" -version = "0.2.0" +version = "0.3.0-SNAPSHOT" authors = ["Florian Gamböck "] edition = "2021" diff --git a/VERSION b/VERSION index 0ea3a94..daf2bb7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.0 +0.3.0-SNAPSHOT From 298756c8d4712ca6f19d026e66aabc5edc15d726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Mon, 4 Apr 2022 18:08:45 +0200 Subject: [PATCH 02/29] Fix badge links in README --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 07907d2..0c1bf4e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,16 @@ # git-bump -![Crates.io](https://img.shields.io/crates/v/git-bump) -![docs.rs](https://img.shields.io/docsrs/git-bump) -![Crates.io](https://img.shields.io/crates/l/git-bump) +[![badge crates.io]][url crates.io] +[![badge docs.rs]][url docs.rs] +[![badge license]][url license] + +[badge crates.io]: https://img.shields.io/crates/v/git-bump +[badge docs.rs]: https://img.shields.io/docsrs/git-bump +[badge license]: https://img.shields.io/crates/l/git-bump + +[url crates.io]: https://crates.io/crates/git-bump +[url docs.rs]: https://docs.rs/git-bump +[url license]: https://github.com/FloGa/git-bump/blob/develop/LICENSE Consistently bump your version numbers with Lua scripts. From b4160048366774bf5f30a3dc1744e332a0c87a2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Mon, 4 Apr 2022 18:09:03 +0200 Subject: [PATCH 03/29] Add github badge to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0c1bf4e..3b2a187 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,16 @@ # git-bump +[![badge github]][url github] [![badge crates.io]][url crates.io] [![badge docs.rs]][url docs.rs] [![badge license]][url license] +[badge github]: https://img.shields.io/badge/github-FloGa%2Fgit--bump-green [badge crates.io]: https://img.shields.io/crates/v/git-bump [badge docs.rs]: https://img.shields.io/docsrs/git-bump [badge license]: https://img.shields.io/crates/l/git-bump +[url github]: https://github.com/FloGa/git-bump [url crates.io]: https://crates.io/crates/git-bump [url docs.rs]: https://docs.rs/git-bump [url license]: https://github.com/FloGa/git-bump/blob/develop/LICENSE From c6832947afea6d61f833de1cdc1a14438dd24e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Mon, 4 Apr 2022 18:09:20 +0200 Subject: [PATCH 04/29] [auto] Update README --- src/lib.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 1a6de6e..379f15d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,8 +1,19 @@ //! # git-bump //! -//! ![Crates.io](https://img.shields.io/crates/v/git-bump) -//! ![docs.rs](https://img.shields.io/docsrs/git-bump) -//! ![Crates.io](https://img.shields.io/crates/l/git-bump) +//! [![badge github]][url github] +//! [![badge crates.io]][url crates.io] +//! [![badge docs.rs]][url docs.rs] +//! [![badge license]][url license] +//! +//! [badge github]: https://img.shields.io/badge/github-FloGa%2Fgit--bump-green +//! [badge crates.io]: https://img.shields.io/crates/v/git-bump +//! [badge docs.rs]: https://img.shields.io/docsrs/git-bump +//! [badge license]: https://img.shields.io/crates/l/git-bump +//! +//! [url github]: https://github.com/FloGa/git-bump +//! [url crates.io]: https://crates.io/crates/git-bump +//! [url docs.rs]: https://docs.rs/git-bump +//! [url license]: https://github.com/FloGa/git-bump/blob/develop/LICENSE //! //! Consistently bump your version numbers with Lua scripts. //! From 1330e13e3ffa1f5f8fc11ccc2baf0001f5823680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 9 Apr 2022 23:18:05 +0200 Subject: [PATCH 05/29] Add Github Actions for Rust --- .github/env | 1 + .github/scripts/changelog-of-version | 20 ++++ .github/scripts/create-checksums | 5 + .github/scripts/strip-and-package | 50 ++++++++++ .github/workflows/release.yml | 134 +++++++++++++++++++++++++++ .github/workflows/test.yml | 40 ++++++++ 6 files changed, 250 insertions(+) create mode 100644 .github/env create mode 100755 .github/scripts/changelog-of-version create mode 100755 .github/scripts/create-checksums create mode 100755 .github/scripts/strip-and-package create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/env b/.github/env new file mode 100644 index 0000000..3adb617 --- /dev/null +++ b/.github/env @@ -0,0 +1 @@ +BINARY_NAME=git-bump diff --git a/.github/scripts/changelog-of-version b/.github/scripts/changelog-of-version new file mode 100755 index 0000000..0458810 --- /dev/null +++ b/.github/scripts/changelog-of-version @@ -0,0 +1,20 @@ +#!/bin/bash + +remove_top() { + local top=1 line + while IFS= read -r line; do + if [ "$top" ]; then + if [ "$line" ] && [[ "$line" != "# "* ]]; then + top= + printf '%s\n' "$line" + fi + else + printf '%s\n' "$line" + fi + done +} + +sed --silent '/^# .*'"$1"'$/,/^# /p' "$file.sha256" +done diff --git a/.github/scripts/strip-and-package b/.github/scripts/strip-and-package new file mode 100755 index 0000000..6374a31 --- /dev/null +++ b/.github/scripts/strip-and-package @@ -0,0 +1,50 @@ +#!/bin/bash + +pushd "target/$MATRIX_TARGET/release" || exit 1 + +bin_files=() +while read -r file; do + # Workaround for proper newline handling in windows + file=${file%#*} + + if [ "$file" ]; then + bin_files+=("$file") + fi +done < <( + cargo metadata --format-version=1 --no-deps | + jq -r '.packages[].targets | map(select(.kind[0] == "bin").name + "#")[]' +) + +if [ "$MATRIX_OS" = windows-latest ]; then + bin_files=("${bin_files[@]/%/.exe}") + name_archive="$BINARY_NAME-$MATRIX_TARGET.zip" + cmd_archive=(7z a) +else + name_archive="$BINARY_NAME-$MATRIX_TARGET.tar.gz" + cmd_archive=(tar cavpf) +fi + +case "$MATRIX_TARGET" in + aarch64-*-linux-gnu) + sudo apt-get -y update + sudo apt-get -y install gcc-aarch64-linux-gnu + strip_exe="aarch64-linux-gnu-strip" + ;; + arm-*-linux-gnueabihf) + sudo apt-get -y update + sudo apt-get -y install gcc-arm-linux-gnueabihf + strip_exe="arm-linux-gnueabihf-strip" + ;; + *) + strip_exe="strip" + ;; +esac + +echo +printf '%s\n' "Binaries:" "${bin_files[@]}" +echo + +"$strip_exe" "${bin_files[@]}" +"${cmd_archive[@]}" ../../../"$name_archive" "${bin_files[@]}" + +echo "::set-output name=name_archive::$name_archive" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..32d996f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,134 @@ +name: Release + +on: + push: + branches: + - hotfix/* + - release/* + tags: + - "*" + +jobs: + test: + uses: ./.github/workflows/test.yml + + build: + name: Build release binaries + needs: + - test + strategy: + matrix: + include: + - { os: ubuntu-latest, target: aarch64-unknown-linux-gnu } + - { os: ubuntu-latest, target: arm-unknown-linux-gnueabihf } + - { os: ubuntu-latest, target: i686-unknown-linux-gnu } + - { os: ubuntu-latest, target: i686-unknown-linux-musl } + - { os: ubuntu-latest, target: x86_64-unknown-linux-gnu } + - { os: ubuntu-latest, target: x86_64-unknown-linux-musl } + + - { os: macos-latest, target: x86_64-apple-darwin } + + - { os: windows-latest, target: i686-pc-windows-msvc } + - { os: windows-latest, target: x86_64-pc-windows-msvc } + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set environment + shell: bash + run: | + cat ./.github/env >>"$GITHUB_ENV" + + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: minimal + target: ${{ matrix.target }} + + - name: Setup Rust cache + uses: Swatinem/rust-cache@v1 + + - name: Build release + uses: actions-rs/cargo@v1 + with: + command: build + args: --release --locked --target ${{ matrix.target }} + use-cross: ${{ matrix.os == 'ubuntu-latest' }} + + - name: Strip and package artifacts + if: ${{ startsWith(github.ref, 'refs/tags/') }} + id: package + shell: bash + env: + MATRIX_TARGET: ${{ matrix.target }} + MATRIX_OS: ${{ matrix.os }} + run: ./.github/scripts/strip-and-package + + - name: Upload artifacts + if: ${{ startsWith(github.ref, 'refs/tags/') }} + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.package.outputs.name_archive }} + path: ${{ steps.package.outputs.name_archive }} + + github_release: + name: Create GitHub release + if: ${{ startsWith(github.ref, 'refs/tags/') }} + needs: + - build + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set environment + run: | + cat ./.github/env >>"$GITHUB_ENV" + + - name: Download artifacts + uses: actions/download-artifact@v2 + + - name: Create checksums + run: ./.github/scripts/create-checksums + + - name: Create release notes + run: | + ./.github/scripts/changelog-of-version \ + "$(git describe --tags --abbrev=0)" \ + >RELEASE.md + + - name: Create release + uses: softprops/action-gh-release@v1 + with: + files: ${{ env.BINARY_NAME }}-*/${{ env.BINARY_NAME }}-* + body_path: RELEASE.md + draft: true + + cargo_publish: + name: Publish package to creates.io + if: ${{ startsWith(github.ref, 'refs/tags/') }} + needs: + - test + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + + - name: Publish package + run: cargo publish --token '${{ secrets.CRATES_IO_TOKEN }}' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..d13fc58 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,40 @@ +name: Test + +on: + pull_request: + + push: + branches: + - develop + - feature/* + + workflow_call: + +jobs: + test: + name: Run test suite + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set environment + shell: bash + run: | + cat ./.github/env >>"$GITHUB_ENV" + + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: minimal + + - name: Setup Rust cache + uses: Swatinem/rust-cache@v1 + + - name: Run tests + uses: actions-rs/cargo@v1 + with: + command: test From 27dbbed4162ff69f9020b30065b90920f612f321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 20:18:23 +0100 Subject: [PATCH 06/29] Convert application into binary only There is no actual library code that could be shared, so let's stay with the main.rs and ditch the lib.rs for now. --- src/lib.rs | 290 --------------------------------------------------- src/main.rs | 291 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 290 insertions(+), 291 deletions(-) delete mode 100644 src/lib.rs diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 379f15d..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,290 +0,0 @@ -//! # git-bump -//! -//! [![badge github]][url github] -//! [![badge crates.io]][url crates.io] -//! [![badge docs.rs]][url docs.rs] -//! [![badge license]][url license] -//! -//! [badge github]: https://img.shields.io/badge/github-FloGa%2Fgit--bump-green -//! [badge crates.io]: https://img.shields.io/crates/v/git-bump -//! [badge docs.rs]: https://img.shields.io/docsrs/git-bump -//! [badge license]: https://img.shields.io/crates/l/git-bump -//! -//! [url github]: https://github.com/FloGa/git-bump -//! [url crates.io]: https://crates.io/crates/git-bump -//! [url docs.rs]: https://docs.rs/git-bump -//! [url license]: https://github.com/FloGa/git-bump/blob/develop/LICENSE -//! -//! Consistently bump your version numbers with Lua scripts. -//! -//! ## Motivation -//! -//! When publishing a new software release, there are usually a couple of places -//! where you want to update the current version number: -//! -//! - configuration files like `Cargo.toml` and `package.json` -//! - source files with defined constants for your application -//! - a conventional `VERSION` file in your repository root -//! - your changelog -//! - maybe a lot of other places, depending on you specific needs and workflow -//! -//! Also, depending on your workflow, you might want to first bump your version to -//! something like `1.2.3-RC`, then after some final testing `1.2.3` and -//! eventually to a development version `1.3.0-SNAPSHOT`. -//! -//! Since these tasks can be nicely automated, you might want to have a small -//! script that does the bumping for you. I even ended up with a `bump.sh` in each -//! of my projects, which are all quite similar, especially the ones for the same -//! programming language. To avoid this kind of boilerplate code in every single -//! repository, I came up with `git-bump` which is configurable via Lua scripts. -//! -//! `git-bump` searches for configuration files in certain -//! [locations](#configuration-file-locations), aggregates them, and calls a -//! custom Lua function for every defined file. This way it is possible to define -//! global version bump functions that can be used in each repository. -//! -//! ## Installation -//! -//! `git-bump` can be installed easily through Cargo via `crates.io`: -//! -//! ```shell script -//! cargo install git-bump -//! ``` -//! -//! ## Usage -//! -//! ```text -//! USAGE: -//! git-bump -//! -//! ARGS: -//! Version to set -//! -//! OPTIONS: -//! -h, --help Print help information -//! --list-files List files that would be updated -//! --print-sample-config Print sample config file -//! ``` -//! -//! To bump your versions to `1.2.3`, it is as simple as: -//! -//! ```shell script -//! git-bump 1.2.3 -//! ``` -//! -//! Or, with Git subcommand syntax: -//! -//! ```shell script -//! git bump 1.2.3 -//! ``` -//! -//! Well, maybe not quite that easy. If you do not have any configuration files -//! yet, nothing will happen. -//! -//! For a first success, let's start with a very simple configuration file in the -//! root of your Git repository. Name it `.git-bump.lua` (the leading `.` denotes -//! a hidden file in Linux and is quite usual for such configuration files) with -//! the following contents: -//! -//! ```lua -//! return { -//! VERSION = function(version) -//! return version -//! end, -//! } -//! ``` -//! -//! The configuration files are expected to return a Lua table. The keys are the -//! file names you want to run the bumper on, relative to the Git repository root. -//! The value is a Lua function, taking two parameters: The version that was given -//! as argument to `git-bump` and the contents of the file for conveniently -//! altering. If you do not need the current file content, you can ignore the -//! second parameter, Lua does not care about extraneous parameters. The functions -//! need to return the new contents of the file, which will then be written into -//! the according files. -//! -//! In this example, the file `VERSION` will only contain the given version string. -//! -//! More complex examples can be found in the section [Sample -//! Functions](#sample-functions). -//! -//! Since such configurations could be shared across multiple, different -//! repositories, `git-bump` will not create new files, but only operate on -//! existing files. So, for this example, create `VERSION` and run the bumper -//! again: -//! -//! ```text -//! $ touch VERSION -//! $ git bump 1.2.3 -//! $ cat VERSION -//! 1.2.3 -//! ``` -//! -//! To create a sample configuration file with several ready-to-use recipes, run: -//! -//! ```shell script -//! git bump --print-sample-config >.git-bump.lua -//! ``` -//! -//! To print out a list of existing files that are configured in the config files -//! and would be processed during bumping, run: -//! -//! ```shell script -//! git bump --list-files -//! ``` -//! -//! ## Hook Functions -//! -//! Along with the new contents for a specified file, one can also define hook -//! functions that should be run *before* or *after* the new content is written to -//! the file. -//! -//! The `pre_func` could be used, for example, to create a backup of the file -//! prior to updating it. The `post_func` might be used to do some house keeping -//! with modified config files. -//! -//! The hooks must be returned as a Lua table with the members `pre_func` and -//! `post_func`. Both members are optional. If a hook function does not exist, it -//! will be silently ignored. -//! -//! The following is a simple, imaginary example to demonstrate the usage of hook -//! functions. For a proper example, take a look at the section [Sample -//! Functions](#sample-functions). -//! -//! ```lua -//! return { -//! VERSION = function(version) -//! local os = require("os") -//! -//! local pre_func = function() -//! os.execute("cp VERSION VERSION.old") -//! end -//! -//! local post_func = function() -//! os.execute("git commit -m 'Update VERSION' VERSION") -//! end -//! -//! return version, {pre_func = pre_func, post_func = post_func} -//! end -//! } -//! ``` -//! -//! ## Configuration File Locations -//! -//! The bump config files will be searched in the following locations: -//! -//! - `$HOME/.git-bump.lua` (Unix) or `%USERPROFILE%\.git-bump.lua` (Windows) -//! -//! Per-user global config file. -//! -//! - `$GIT_DIR/git-bump.lua` -//! -//! Per-repository config file, not intended for sharing. -//! -//! - `$GIT_WORK_TREE/.git-bump.lua` -//! -//! Per-repository config file, may be checked into Git for sharing. -//! -//! Those locations will be evaluated in order, a later file overrides mappings of -//! the previous ones if they have matching keys. Missing config files will be -//! silently ignored. -//! -//! If you want to explicitly ignore a bumping function of a "higher" -//! configuration, you must declare it in a "lower" config file like so: -//! -//! ```lua -//! return { -//! -- ... -//! -//! ["dummy.txt"] = function(_, content) -//! -- no bumping, just return unaltered content -//! return content -//! end -//! -//! -- ... -//! } -//! ``` -//! -//! ## Sample Functions -//! -//! Find the latest sample config file here: -//! -//! -//! This is a non-exhaustive list of possible functions that can be used in your -//! config files. If you have ideas for more default functions, don't hesitate to -//! open a PR! - -use std::collections::HashMap; -use std::fs; -use std::ops::Deref; - -use mlua::prelude::*; - -use crate::state::State as BumpState; -pub use crate::{cli::run, error::Error, error::Result}; - -mod cli; -mod error; -mod state; - -/// Bump files to a given version. -fn bump(version: String) -> Result<()> { - let mut bump_state = BumpState::default(); - - let map = bump_state.get_file_mapping()?; - - let lua = bump_state.get_lua(); - for (file, f) in map.deref() { - let f = lua.registry_value::(f)?; - - let contents = fs::read_to_string(&file).map_err(|source| Error::ReadFailed { source })?; - - let (mut contents, hooks) = f - .call::<_, (String, Option>)>((version.clone(), contents)) - .map_err(|source| Error::LuaExecutionFailed { source })?; - if !contents.ends_with('\n') { - contents.push('\n') - } - - if let Some(hooks) = &hooks { - if let Some(pre_func) = hooks.get("pre_func") { - pre_func - .call(()) - .map_err(|source| Error::LuaPreFuncFailed { source })?; - } - } - - fs::write(file, contents).map_err(|source| Error::WriteFailed { source })?; - - if let Some(hooks) = &hooks { - if let Some(post_func) = hooks.get("post_func") { - post_func - .call(()) - .map_err(|source| Error::LuaPostFuncFailed { source })?; - } - } - } - - Ok(()) -} - -/// Print file paths that would be bumped. -fn list_files() -> Result<()> { - let mut bump_state = BumpState::default(); - - let map = bump_state.get_file_mapping()?; - - let mut keys = map.deref().keys().collect::>(); - keys.sort(); - - for file in keys { - println!("{}", file.to_string_lossy()); - } - - Ok(()) -} - -/// Print sample `git-bump.lua`. -fn print_sample_config() { - println!("{}", include_str!("../.git-bump.lua")) -} diff --git a/src/main.rs b/src/main.rs index ac71069..1772ff2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,293 @@ -use git_bump::run; +//! # git-bump +//! +//! [![badge github]][url github] +//! [![badge crates.io]][url crates.io] +//! [![badge docs.rs]][url docs.rs] +//! [![badge license]][url license] +//! +//! [badge github]: https://img.shields.io/badge/github-FloGa%2Fgit--bump-green +//! [badge crates.io]: https://img.shields.io/crates/v/git-bump +//! [badge docs.rs]: https://img.shields.io/docsrs/git-bump +//! [badge license]: https://img.shields.io/crates/l/git-bump +//! +//! [url github]: https://github.com/FloGa/git-bump +//! [url crates.io]: https://crates.io/crates/git-bump +//! [url docs.rs]: https://docs.rs/git-bump +//! [url license]: https://github.com/FloGa/git-bump/blob/develop/LICENSE +//! +//! Consistently bump your version numbers with Lua scripts. +//! +//! ## Motivation +//! +//! When publishing a new software release, there are usually a couple of places +//! where you want to update the current version number: +//! +//! - configuration files like `Cargo.toml` and `package.json` +//! - source files with defined constants for your application +//! - a conventional `VERSION` file in your repository root +//! - your changelog +//! - maybe a lot of other places, depending on you specific needs and workflow +//! +//! Also, depending on your workflow, you might want to first bump your version to +//! something like `1.2.3-RC`, then after some final testing `1.2.3` and +//! eventually to a development version `1.3.0-SNAPSHOT`. +//! +//! Since these tasks can be nicely automated, you might want to have a small +//! script that does the bumping for you. I even ended up with a `bump.sh` in each +//! of my projects, which are all quite similar, especially the ones for the same +//! programming language. To avoid this kind of boilerplate code in every single +//! repository, I came up with `git-bump` which is configurable via Lua scripts. +//! +//! `git-bump` searches for configuration files in certain +//! [locations](#configuration-file-locations), aggregates them, and calls a +//! custom Lua function for every defined file. This way it is possible to define +//! global version bump functions that can be used in each repository. +//! +//! ## Installation +//! +//! `git-bump` can be installed easily through Cargo via `crates.io`: +//! +//! ```shell script +//! cargo install git-bump +//! ``` +//! +//! ## Usage +//! +//! ```text +//! USAGE: +//! git-bump +//! +//! ARGS: +//! Version to set +//! +//! OPTIONS: +//! -h, --help Print help information +//! --list-files List files that would be updated +//! --print-sample-config Print sample config file +//! ``` +//! +//! To bump your versions to `1.2.3`, it is as simple as: +//! +//! ```shell script +//! git-bump 1.2.3 +//! ``` +//! +//! Or, with Git subcommand syntax: +//! +//! ```shell script +//! git bump 1.2.3 +//! ``` +//! +//! Well, maybe not quite that easy. If you do not have any configuration files +//! yet, nothing will happen. +//! +//! For a first success, let's start with a very simple configuration file in the +//! root of your Git repository. Name it `.git-bump.lua` (the leading `.` denotes +//! a hidden file in Linux and is quite usual for such configuration files) with +//! the following contents: +//! +//! ```lua +//! return { +//! VERSION = function(version) +//! return version +//! end, +//! } +//! ``` +//! +//! The configuration files are expected to return a Lua table. The keys are the +//! file names you want to run the bumper on, relative to the Git repository root. +//! The value is a Lua function, taking two parameters: The version that was given +//! as argument to `git-bump` and the contents of the file for conveniently +//! altering. If you do not need the current file content, you can ignore the +//! second parameter, Lua does not care about extraneous parameters. The functions +//! need to return the new contents of the file, which will then be written into +//! the according files. +//! +//! In this example, the file `VERSION` will only contain the given version string. +//! +//! More complex examples can be found in the section [Sample +//! Functions](#sample-functions). +//! +//! Since such configurations could be shared across multiple, different +//! repositories, `git-bump` will not create new files, but only operate on +//! existing files. So, for this example, create `VERSION` and run the bumper +//! again: +//! +//! ```text +//! $ touch VERSION +//! $ git bump 1.2.3 +//! $ cat VERSION +//! 1.2.3 +//! ``` +//! +//! To create a sample configuration file with several ready-to-use recipes, run: +//! +//! ```shell script +//! git bump --print-sample-config >.git-bump.lua +//! ``` +//! +//! To print out a list of existing files that are configured in the config files +//! and would be processed during bumping, run: +//! +//! ```shell script +//! git bump --list-files +//! ``` +//! +//! ## Hook Functions +//! +//! Along with the new contents for a specified file, one can also define hook +//! functions that should be run *before* or *after* the new content is written to +//! the file. +//! +//! The `pre_func` could be used, for example, to create a backup of the file +//! prior to updating it. The `post_func` might be used to do some house keeping +//! with modified config files. +//! +//! The hooks must be returned as a Lua table with the members `pre_func` and +//! `post_func`. Both members are optional. If a hook function does not exist, it +//! will be silently ignored. +//! +//! The following is a simple, imaginary example to demonstrate the usage of hook +//! functions. For a proper example, take a look at the section [Sample +//! Functions](#sample-functions). +//! +//! ```lua +//! return { +//! VERSION = function(version) +//! local os = require("os") +//! +//! local pre_func = function() +//! os.execute("cp VERSION VERSION.old") +//! end +//! +//! local post_func = function() +//! os.execute("git commit -m 'Update VERSION' VERSION") +//! end +//! +//! return version, {pre_func = pre_func, post_func = post_func} +//! end +//! } +//! ``` +//! +//! ## Configuration File Locations +//! +//! The bump config files will be searched in the following locations: +//! +//! - `$HOME/.git-bump.lua` (Unix) or `%USERPROFILE%\.git-bump.lua` (Windows) +//! +//! Per-user global config file. +//! +//! - `$GIT_DIR/git-bump.lua` +//! +//! Per-repository config file, not intended for sharing. +//! +//! - `$GIT_WORK_TREE/.git-bump.lua` +//! +//! Per-repository config file, may be checked into Git for sharing. +//! +//! Those locations will be evaluated in order, a later file overrides mappings of +//! the previous ones if they have matching keys. Missing config files will be +//! silently ignored. +//! +//! If you want to explicitly ignore a bumping function of a "higher" +//! configuration, you must declare it in a "lower" config file like so: +//! +//! ```lua +//! return { +//! -- ... +//! +//! ["dummy.txt"] = function(_, content) +//! -- no bumping, just return unaltered content +//! return content +//! end +//! +//! -- ... +//! } +//! ``` +//! +//! ## Sample Functions +//! +//! Find the latest sample config file here: +//! +//! +//! This is a non-exhaustive list of possible functions that can be used in your +//! config files. If you have ideas for more default functions, don't hesitate to +//! open a PR! + +use std::collections::HashMap; +use std::fs; +use std::ops::Deref; + +use mlua::prelude::*; + +use crate::state::State as BumpState; +use crate::{cli::run, error::Error, error::Result}; + +mod cli; +mod error; +mod state; + +/// Bump files to a given version. +fn bump(version: String) -> Result<()> { + let mut bump_state = BumpState::default(); + + let map = bump_state.get_file_mapping()?; + + let lua = bump_state.get_lua(); + for (file, f) in map.deref() { + let f = lua.registry_value::(f)?; + + let contents = fs::read_to_string(&file).map_err(|source| Error::ReadFailed { source })?; + + let (mut contents, hooks) = f + .call::<_, (String, Option>)>((version.clone(), contents)) + .map_err(|source| Error::LuaExecutionFailed { source })?; + if !contents.ends_with('\n') { + contents.push('\n') + } + + if let Some(hooks) = &hooks { + if let Some(pre_func) = hooks.get("pre_func") { + pre_func + .call(()) + .map_err(|source| Error::LuaPreFuncFailed { source })?; + } + } + + fs::write(file, contents).map_err(|source| Error::WriteFailed { source })?; + + if let Some(hooks) = &hooks { + if let Some(post_func) = hooks.get("post_func") { + post_func + .call(()) + .map_err(|source| Error::LuaPostFuncFailed { source })?; + } + } + } + + Ok(()) +} + +/// Print file paths that would be bumped. +fn list_files() -> Result<()> { + let mut bump_state = BumpState::default(); + + let map = bump_state.get_file_mapping()?; + + let mut keys = map.deref().keys().collect::>(); + keys.sort(); + + for file in keys { + println!("{}", file.to_string_lossy()); + } + + Ok(()) +} + +/// Print sample `git-bump.lua`. +fn print_sample_config() { + println!("{}", include_str!("../.git-bump.lua")) +} fn main() { if let Err(err) = run() { From 3f5523300928a75bdb8106f76f7c000124de5b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 20:21:15 +0100 Subject: [PATCH 07/29] Update Changelog --- CHANGES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 648f4da..29e0296 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,10 @@ # Changes since latest release +- Convert application into binary only + + There is no actual library code that could be shared, so let's stay with + the main.rs and ditch the lib.rs for now. + # Changes in 0.2.0 - Add two additional errors for hooks From 0ce47cec78ec187a411b5836ca4c2efb953503cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 22:48:33 +0100 Subject: [PATCH 08/29] Make public methods crate public There is no public API, hence crate public is enough. --- src/cli.rs | 2 +- src/error.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 82b6be3..d506837 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -26,7 +26,7 @@ struct Cli { print_sample_config: bool, } -pub fn run() -> Result<()> { +pub(crate) fn run() -> Result<()> { let cli = Cli::parse(); if let Some(version) = cli.version { diff --git a/src/error.rs b/src/error.rs index 17a7a6c..b88d55d 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,8 +1,8 @@ -pub type Result = std::result::Result; +pub(crate) type Result = std::result::Result; #[derive(Debug, thiserror::Error)] #[non_exhaustive] -pub enum Error { +pub(crate) enum Error { #[error("Not a Git repository")] NotARepository, #[error("Not supported on bare repositories")] From b0e18376cb776fe298b8f3b90d9694d5815caad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 22:52:44 +0100 Subject: [PATCH 09/29] Update dependencies --- Cargo.lock | 175 +++++++++++++++++++++++++---------------------------- 1 file changed, 83 insertions(+), 92 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2beea6b..72deb0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -36,9 +36,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.73" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" dependencies = [ "jobserver", ] @@ -51,16 +51,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.1.8" +version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c47df61d9e16dc010b55dba1952a57d8c215dbb533fd13cdd13369aac73b1c" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ "atty", "bitflags", "clap_derive", + "clap_lex", "indexmap", - "lazy_static", - "os_str_bytes", + "once_cell", "strsim", "termcolor", "textwrap", @@ -68,9 +68,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.7" +version = "3.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" dependencies = [ "heck", "proc-macro-error", @@ -79,13 +79,21 @@ dependencies = [ "syn", ] +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] @@ -102,9 +110,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3826a6e0e2215d7a41c2bfc7c9244123969273f3476b939a226aac0ab56e9e3c" +checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c" dependencies = [ "bitflags", "libc", @@ -115,9 +123,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" @@ -136,29 +144,28 @@ dependencies = [ [[package]] name = "home" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" dependencies = [ "winapi", ] [[package]] name = "idna" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "indexmap" -version = "1.8.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown", @@ -166,30 +173,24 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" dependencies = [ "libc", ] -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - [[package]] name = "libc" -version = "0.2.121" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libgit2-sys" -version = "0.13.2+1.4.2" +version = "0.13.4+1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a42de9a51a5c12e00fc0e4ca6bc2ea43582fc6418488e8f615e905d886f258b" +checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1" dependencies = [ "cc", "libc", @@ -199,9 +200,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f35facd4a5673cb5a48822be2be1d4236c1c99cb4113cab7061ac720d5bf859" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" dependencies = [ "cc", "libc", @@ -211,42 +212,36 @@ dependencies = [ [[package]] name = "log" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", ] [[package]] name = "lua-src" -version = "544.0.0" +version = "544.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7341ba039a781c4982ca20761c55f44e07bfefd496a45b1e929763d88f5fc68b" +checksum = "708ba3c844d5e9d38def4a09dd871c17c370f519b3c4b7261fbabe4a613a814c" dependencies = [ "cc", ] [[package]] name = "luajit-src" -version = "210.3.3+resty673aaad" +version = "210.4.4+restydf15b79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3201eae65820ee1f1eddc22de04f5c834bce36db20c2672d39d47826b317768e" +checksum = "41f081de0df368f97e5d8bb60e435caa078bd5d42797a8c9f0bb8d5192dcdcc1" dependencies = [ "cc", ] -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "memchr" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "mlua" @@ -266,39 +261,36 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.10.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "os_str_bytes" -version = "6.0.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" -dependencies = [ - "memchr", -] +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "proc-macro-error" @@ -326,18 +318,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] name = "quote" -version = "1.0.17" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ "proc-macro2", ] @@ -356,13 +348,13 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.90" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704df27628939572cd88d33f171cd6f896f4eaca85252c6e0a72d8d8287ee86f" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -376,24 +368,24 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.30" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.30" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", @@ -402,9 +394,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -417,34 +409,33 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "unicode-bidi" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] From cd0cbf834b3fc1a4d97f95f02674e106fc853595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 22:53:42 +0100 Subject: [PATCH 10/29] Update mlua to 0.8.7 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 72deb0d..ab788a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -245,9 +245,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "mlua" -version = "0.7.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e2194305aa8301d5da9c1c98640047f4219f6b95c190f6860338ab9872b686" +checksum = "2ee2ad7a9aa69056b148d9d590344bc155d3ce0d2200e3b2838f7034f6ba33c1" dependencies = [ "bstr", "cc", diff --git a/Cargo.toml b/Cargo.toml index c272ea9..63d895c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,5 +17,5 @@ include = ["src/**/*", "LICENSE", "README.md", ".git-bump.lua"] clap = { version = "3.1.6", features = ["derive"] } git2 = { version = "0.14.2", default-features = false } home = "0.5.3" -mlua = { version = "0.7", features = ["lua54", "vendored"] } +mlua = { version = "0.8.7", features = ["lua54", "vendored"] } thiserror = "1.0.30" From a87448726ec325ab1877707aa9ad453d4f283fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 22:57:43 +0100 Subject: [PATCH 11/29] Update git2 to 0.15.0 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ab788a0..35c7d1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,9 +110,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.14.4" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c" +checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1" dependencies = [ "bitflags", "libc", @@ -188,9 +188,9 @@ checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libgit2-sys" -version = "0.13.4+1.4.2" +version = "0.14.0+1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1" +checksum = "47a00859c70c8a4f7218e6d1cc32875c4b55f6799445b842b0d8ed5e4c3d959b" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index 63d895c..127bd58 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ include = ["src/**/*", "LICENSE", "README.md", ".git-bump.lua"] [dependencies] clap = { version = "3.1.6", features = ["derive"] } -git2 = { version = "0.14.2", default-features = false } +git2 = { version = "0.15.0", default-features = false } home = "0.5.3" mlua = { version = "0.8.7", features = ["lua54", "vendored"] } thiserror = "1.0.30" From 8747fc890e36d464ef3d3bc80b59d6587dfefbcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 22:58:28 +0100 Subject: [PATCH 12/29] Update clap to 4.0.32 Futhermore, rename the version parameter to avoid conflict with the automatically generated "--version" flag. Also, replace hyphens with underscores in config block, since hyphens appear not to work anymore. --- Cargo.lock | 163 ++++++++++++++++++++++++++++++++++++++++------------- Cargo.toml | 2 +- README.md | 2 +- src/cli.rs | 10 ++-- 4 files changed, 131 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35c7d1b..2c7e885 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,17 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -51,26 +40,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.2.23" +version = "4.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" dependencies = [ - "atty", "bitflags", "clap_derive", "clap_lex", - "indexmap", + "is-terminal", "once_cell", "strsim", "termcolor", - "textwrap", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "4.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" dependencies = [ "heck", "proc-macro-error", @@ -81,13 +68,34 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" dependencies = [ "os_str_bytes", ] +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "form_urlencoded" version = "1.1.0" @@ -121,12 +129,6 @@ dependencies = [ "url", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "heck" version = "0.4.0" @@ -135,9 +137,9 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" dependencies = [ "libc", ] @@ -162,13 +164,25 @@ dependencies = [ ] [[package]] -name = "indexmap" -version = "1.9.2" +name = "io-lifetimes" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" dependencies = [ - "autocfg", - "hashbrown", + "libc", + "windows-sys", +] + +[[package]] +name = "is-terminal" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" +dependencies = [ + "hermit-abi", + "io-lifetimes", + "rustix", + "windows-sys", ] [[package]] @@ -210,6 +224,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + [[package]] name = "log" version = "0.4.17" @@ -340,6 +360,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustix" +version = "0.36.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys", +] + [[package]] name = "strsim" version = "0.10.0" @@ -366,12 +400,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - [[package]] name = "thiserror" version = "1.0.38" @@ -481,3 +509,60 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff --git a/Cargo.toml b/Cargo.toml index 127bd58..0f123a7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ license = "MIT" include = ["src/**/*", "LICENSE", "README.md", ".git-bump.lua"] [dependencies] -clap = { version = "3.1.6", features = ["derive"] } +clap = { version = "4.0.32", features = ["derive"] } git2 = { version = "0.15.0", default-features = false } home = "0.5.3" mlua = { version = "0.8.7", features = ["lua54", "vendored"] } diff --git a/README.md b/README.md index 3b2a187..687919e 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ cargo install git-bump ## Usage - + ```text USAGE: diff --git a/src/cli.rs b/src/cli.rs index d506837..a74bb64 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -8,14 +8,14 @@ use crate::{bump, list_files, print_sample_config, Result}; ArgGroup::new("action") .required(true) .args(&[ - "version", - "list-files", - "print-sample-config", + "new_version", + "list_files", + "print_sample_config", ]), ))] struct Cli { /// Version to set - version: Option, + new_version: Option, #[clap(long)] /// List files that would be updated @@ -29,7 +29,7 @@ struct Cli { pub(crate) fn run() -> Result<()> { let cli = Cli::parse(); - if let Some(version) = cli.version { + if let Some(version) = cli.new_version { bump(version)? } else if cli.list_files { list_files()? From 2fa0278c88c5286087db8af163a6ba12e76821bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 7 Jan 2023 23:28:49 +0100 Subject: [PATCH 13/29] [auto] Update README --- README.md | 16 ++++++++-------- src/main.rs | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 687919e..698c6b4 100644 --- a/README.md +++ b/README.md @@ -56,16 +56,16 @@ cargo install git-bump ```text -USAGE: - git-bump +Usage: git-bump -ARGS: - Version to set +Arguments: + [NEW_VERSION] Version to set -OPTIONS: - -h, --help Print help information - --list-files List files that would be updated - --print-sample-config Print sample config file +Options: + --list-files List files that would be updated + --print-sample-config Print sample config file + -h, --help Print help information + -V, --version Print version information ``` To bump your versions to `1.2.3`, it is as simple as: diff --git a/src/main.rs b/src/main.rs index 1772ff2..fcdaed2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -54,16 +54,16 @@ //! ## Usage //! //! ```text -//! USAGE: -//! git-bump +//! Usage: git-bump //! -//! ARGS: -//! Version to set +//! Arguments: +//! [NEW_VERSION] Version to set //! -//! OPTIONS: -//! -h, --help Print help information -//! --list-files List files that would be updated -//! --print-sample-config Print sample config file +//! Options: +//! --list-files List files that would be updated +//! --print-sample-config Print sample config file +//! -h, --help Print help information +//! -V, --version Print version information //! ``` //! //! To bump your versions to `1.2.3`, it is as simple as: From eea4d8ba6cfedac04a1e69a89d5ec9ff094d1412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sun, 8 Jan 2023 16:00:27 +0100 Subject: [PATCH 14/29] Suggest --locked for installing --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 698c6b4..c8ab01d 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,16 @@ global version bump functions that can be used in each repository. `git-bump` can be installed easily through Cargo via `crates.io`: ```shell script -cargo install git-bump +cargo install --locked git-bump ``` +Please note that the `--locked` flag is necessary here to have the exact same +dependencies as when the application was tagged and tested. Without it, you +might get more up-to-date versions of dependencies, but you have the risk of +undefined and unexpected behavior if the dependencies changed some +functionalities. The application might even fail to build if the public API of +a dependency changed too much. + ## Usage From c148d3b7df42f3cc86978141dbf8b7325ee17518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sun, 8 Jan 2023 16:00:54 +0100 Subject: [PATCH 15/29] Clarify that app must be in PATH --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c8ab01d..0f2253b 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,10 @@ Options: -V, --version Print version information ``` +The following examples require that `git-bump` is accessible from your current +shell, so ensure that the executable lies in a directory that is part of your +`$PATH` (Linux and MacOS) or `%PATH%` (Windows) variable. + To bump your versions to `1.2.3`, it is as simple as: ```shell script From 2b41b460cd5dad95e45d4734bff4f6a93de76e9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sun, 8 Jan 2023 16:02:49 +0100 Subject: [PATCH 16/29] [auto] Update README --- src/main.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index fcdaed2..6e6714c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -48,9 +48,16 @@ //! `git-bump` can be installed easily through Cargo via `crates.io`: //! //! ```shell script -//! cargo install git-bump +//! cargo install --locked git-bump //! ``` //! +//! Please note that the `--locked` flag is necessary here to have the exact same +//! dependencies as when the application was tagged and tested. Without it, you +//! might get more up-to-date versions of dependencies, but you have the risk of +//! undefined and unexpected behavior if the dependencies changed some +//! functionalities. The application might even fail to build if the public API of +//! a dependency changed too much. +//! //! ## Usage //! //! ```text @@ -66,6 +73,10 @@ //! -V, --version Print version information //! ``` //! +//! The following examples require that `git-bump` is accessible from your current +//! shell, so ensure that the executable lies in a directory that is part of your +//! `$PATH` (Linux and MacOS) or `%PATH%` (Windows) variable. +//! //! To bump your versions to `1.2.3`, it is as simple as: //! //! ```shell script From e6d98519cac1d1e9062a4fc8714495f564dc0cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sun, 8 Jan 2023 16:04:04 +0100 Subject: [PATCH 17/29] Mention GitHub releases for install --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 0f2253b..185fa5c 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,11 @@ undefined and unexpected behavior if the dependencies changed some functionalities. The application might even fail to build if the public API of a dependency changed too much. +Alternatively, pre-built binaries can be downloaded from the [GitHub +releases][gh-releases] page. + +[gh-releases]: https://github.com/FloGa/git-bump/releases + ## Usage From 0c1d301a37872a305e7feb12796dcc27f8395f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 21 Jan 2023 12:32:24 +0100 Subject: [PATCH 18/29] Update git2 to 0.16.1 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c7e885..80b1fe5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -118,9 +118,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.15.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1" +checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc" dependencies = [ "bitflags", "libc", @@ -202,9 +202,9 @@ checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libgit2-sys" -version = "0.14.0+1.5.0" +version = "0.14.2+1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47a00859c70c8a4f7218e6d1cc32875c4b55f6799445b842b0d8ed5e4c3d959b" +checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index 0f123a7..0c4a143 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ include = ["src/**/*", "LICENSE", "README.md", ".git-bump.lua"] [dependencies] clap = { version = "4.0.32", features = ["derive"] } -git2 = { version = "0.15.0", default-features = false } +git2 = { version = "0.16.1", default-features = false } home = "0.5.3" mlua = { version = "0.8.7", features = ["lua54", "vendored"] } thiserror = "1.0.30" From 4ddc6a11f545130c3051363d188e99dd526ec048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 21 Jan 2023 12:33:03 +0100 Subject: [PATCH 19/29] Update dependencies --- Cargo.lock | 64 +++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 80b1fe5..3716610 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,9 +40,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.0.32" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" +checksum = "4ec7a4128863c188deefe750ac1d1dfe66c236909f845af04beed823638dc1b2" dependencies = [ "bitflags", "clap_derive", @@ -55,9 +55,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.0.21" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" dependencies = [ "heck", "proc-macro-error", @@ -68,9 +68,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" dependencies = [ "os_str_bytes", ] @@ -165,9 +165,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" dependencies = [ "libc", "windows-sys", @@ -250,9 +250,9 @@ dependencies = [ [[package]] name = "luajit-src" -version = "210.4.4+restydf15b79" +version = "210.4.5+resty2cf5186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f081de0df368f97e5d8bb60e435caa078bd5d42797a8c9f0bb8d5192dcdcc1" +checksum = "27b7992a40e602786272d84c6f2beca44a588ededcfd57b48ec6f82008a7cb97" dependencies = [ "cc", ] @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" dependencies = [ "unicode-ident", ] @@ -362,9 +362,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.36.6" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" +checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" dependencies = [ "bitflags", "errno", @@ -393,9 +393,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -437,9 +437,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" @@ -527,42 +527,42 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" From 1e45f9eab9ec35639637843ba2230e3802504799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 21 Jan 2023 12:33:54 +0100 Subject: [PATCH 20/29] [auto] Update README --- README.md | 4 ++-- src/main.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0f2253b..88900a7 100644 --- a/README.md +++ b/README.md @@ -71,8 +71,8 @@ Arguments: Options: --list-files List files that would be updated --print-sample-config Print sample config file - -h, --help Print help information - -V, --version Print version information + -h, --help Print help + -V, --version Print version ``` The following examples require that `git-bump` is accessible from your current diff --git a/src/main.rs b/src/main.rs index 6e6714c..82264c0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -69,8 +69,8 @@ //! Options: //! --list-files List files that would be updated //! --print-sample-config Print sample config file -//! -h, --help Print help information -//! -V, --version Print version information +//! -h, --help Print help +//! -V, --version Print version //! ``` //! //! The following examples require that `git-bump` is accessible from your current From 526196fe2843c4faf5a9827b5265c884ec2bff4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Mon, 17 Apr 2023 22:53:05 +0200 Subject: [PATCH 21/29] Use my custom Github Actions for Rust --- .github/scripts/changelog-of-version | 20 --- .github/scripts/create-checksums | 5 - .github/scripts/strip-and-package | 50 -------- .github/targets.json | 13 ++ .github/workflows/release.yml | 134 ++------------------ .github/workflows/release_existing_tags.yml | 10 ++ .github/workflows/test.yml | 31 +---- 7 files changed, 38 insertions(+), 225 deletions(-) delete mode 100755 .github/scripts/changelog-of-version delete mode 100755 .github/scripts/create-checksums delete mode 100755 .github/scripts/strip-and-package create mode 100644 .github/targets.json create mode 100644 .github/workflows/release_existing_tags.yml diff --git a/.github/scripts/changelog-of-version b/.github/scripts/changelog-of-version deleted file mode 100755 index 0458810..0000000 --- a/.github/scripts/changelog-of-version +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -remove_top() { - local top=1 line - while IFS= read -r line; do - if [ "$top" ]; then - if [ "$line" ] && [[ "$line" != "# "* ]]; then - top= - printf '%s\n' "$line" - fi - else - printf '%s\n' "$line" - fi - done -} - -sed --silent '/^# .*'"$1"'$/,/^# /p' "$file.sha256" -done diff --git a/.github/scripts/strip-and-package b/.github/scripts/strip-and-package deleted file mode 100755 index 6374a31..0000000 --- a/.github/scripts/strip-and-package +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -pushd "target/$MATRIX_TARGET/release" || exit 1 - -bin_files=() -while read -r file; do - # Workaround for proper newline handling in windows - file=${file%#*} - - if [ "$file" ]; then - bin_files+=("$file") - fi -done < <( - cargo metadata --format-version=1 --no-deps | - jq -r '.packages[].targets | map(select(.kind[0] == "bin").name + "#")[]' -) - -if [ "$MATRIX_OS" = windows-latest ]; then - bin_files=("${bin_files[@]/%/.exe}") - name_archive="$BINARY_NAME-$MATRIX_TARGET.zip" - cmd_archive=(7z a) -else - name_archive="$BINARY_NAME-$MATRIX_TARGET.tar.gz" - cmd_archive=(tar cavpf) -fi - -case "$MATRIX_TARGET" in - aarch64-*-linux-gnu) - sudo apt-get -y update - sudo apt-get -y install gcc-aarch64-linux-gnu - strip_exe="aarch64-linux-gnu-strip" - ;; - arm-*-linux-gnueabihf) - sudo apt-get -y update - sudo apt-get -y install gcc-arm-linux-gnueabihf - strip_exe="arm-linux-gnueabihf-strip" - ;; - *) - strip_exe="strip" - ;; -esac - -echo -printf '%s\n' "Binaries:" "${bin_files[@]}" -echo - -"$strip_exe" "${bin_files[@]}" -"${cmd_archive[@]}" ../../../"$name_archive" "${bin_files[@]}" - -echo "::set-output name=name_archive::$name_archive" diff --git a/.github/targets.json b/.github/targets.json new file mode 100644 index 0000000..60d1de1 --- /dev/null +++ b/.github/targets.json @@ -0,0 +1,13 @@ +[ + { "os": "ubuntu-latest", "target": "aarch64-unknown-linux-gnu" }, + { "os": "ubuntu-latest", "target": "arm-unknown-linux-gnueabihf" }, + { "os": "ubuntu-latest", "target": "i686-unknown-linux-gnu" }, + { "os": "ubuntu-latest", "target": "i686-unknown-linux-musl" }, + { "os": "ubuntu-latest", "target": "x86_64-unknown-linux-gnu" }, + { "os": "ubuntu-latest", "target": "x86_64-unknown-linux-musl" }, + + { "os": "macos-latest", "target": "x86_64-apple-darwin" }, + + { "os": "windows-latest", "target": "i686-pc-windows-msvc" }, + { "os": "windows-latest", "target": "x86_64-pc-windows-msvc" } +] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 32d996f..79f2970 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,132 +3,22 @@ name: Release on: push: branches: - - hotfix/* - - release/* - tags: - - "*" + - 'hotfix/**' + - 'release/**' + tags-ignore: + - '_**' + + workflow_dispatch: jobs: test: uses: ./.github/workflows/test.yml - build: - name: Build release binaries + call-release-workflow: + uses: FloGa/rust-workflows/.github/workflows/release.yml@0.1.1 + with: + targets-config: ./.github/targets.json + secrets: + CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }} needs: - test - strategy: - matrix: - include: - - { os: ubuntu-latest, target: aarch64-unknown-linux-gnu } - - { os: ubuntu-latest, target: arm-unknown-linux-gnueabihf } - - { os: ubuntu-latest, target: i686-unknown-linux-gnu } - - { os: ubuntu-latest, target: i686-unknown-linux-musl } - - { os: ubuntu-latest, target: x86_64-unknown-linux-gnu } - - { os: ubuntu-latest, target: x86_64-unknown-linux-musl } - - - { os: macos-latest, target: x86_64-apple-darwin } - - - { os: windows-latest, target: i686-pc-windows-msvc } - - { os: windows-latest, target: x86_64-pc-windows-msvc } - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Set environment - shell: bash - run: | - cat ./.github/env >>"$GITHUB_ENV" - - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - profile: minimal - target: ${{ matrix.target }} - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v1 - - - name: Build release - uses: actions-rs/cargo@v1 - with: - command: build - args: --release --locked --target ${{ matrix.target }} - use-cross: ${{ matrix.os == 'ubuntu-latest' }} - - - name: Strip and package artifacts - if: ${{ startsWith(github.ref, 'refs/tags/') }} - id: package - shell: bash - env: - MATRIX_TARGET: ${{ matrix.target }} - MATRIX_OS: ${{ matrix.os }} - run: ./.github/scripts/strip-and-package - - - name: Upload artifacts - if: ${{ startsWith(github.ref, 'refs/tags/') }} - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.package.outputs.name_archive }} - path: ${{ steps.package.outputs.name_archive }} - - github_release: - name: Create GitHub release - if: ${{ startsWith(github.ref, 'refs/tags/') }} - needs: - - build - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Set environment - run: | - cat ./.github/env >>"$GITHUB_ENV" - - - name: Download artifacts - uses: actions/download-artifact@v2 - - - name: Create checksums - run: ./.github/scripts/create-checksums - - - name: Create release notes - run: | - ./.github/scripts/changelog-of-version \ - "$(git describe --tags --abbrev=0)" \ - >RELEASE.md - - - name: Create release - uses: softprops/action-gh-release@v1 - with: - files: ${{ env.BINARY_NAME }}-*/${{ env.BINARY_NAME }}-* - body_path: RELEASE.md - draft: true - - cargo_publish: - name: Publish package to creates.io - if: ${{ startsWith(github.ref, 'refs/tags/') }} - needs: - - test - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Publish package - run: cargo publish --token '${{ secrets.CRATES_IO_TOKEN }}' diff --git a/.github/workflows/release_existing_tags.yml b/.github/workflows/release_existing_tags.yml new file mode 100644 index 0000000..8f861ff --- /dev/null +++ b/.github/workflows/release_existing_tags.yml @@ -0,0 +1,10 @@ +name: Release existing tags + +on: + workflow_dispatch: + +jobs: + call-release-exisiting-workflow: + uses: FloGa/rust-workflows/.github/workflows/release_existing_tags.yml@0.1.1 + with: + targets-config: ./.github/targets.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d13fc58..ee8aee5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,35 +6,10 @@ on: push: branches: - develop - - feature/* + - 'feature/**' workflow_call: jobs: - test: - name: Run test suite - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Set environment - shell: bash - run: | - cat ./.github/env >>"$GITHUB_ENV" - - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - profile: minimal - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v1 - - - name: Run tests - uses: actions-rs/cargo@v1 - with: - command: test + call-test-workflow: + uses: FloGa/rust-workflows/.github/workflows/test.yml@0.1.1 From 7dbd3af388d40e4dac38b9b3bcc0a3f0d4ee0656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Mon, 17 Apr 2023 23:05:53 +0200 Subject: [PATCH 22/29] [auto] Update README --- src/main.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main.rs b/src/main.rs index 6e6714c..626c07f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,6 +58,11 @@ //! functionalities. The application might even fail to build if the public API of //! a dependency changed too much. //! +//! Alternatively, pre-built binaries can be downloaded from the [GitHub +//! releases][gh-releases] page. +//! +//! [gh-releases]: https://github.com/FloGa/git-bump/releases +//! //! ## Usage //! //! ```text From 59b088781fa9faaa5c4a64c8ec615057996b387e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Wed, 1 Nov 2023 14:07:26 +0100 Subject: [PATCH 23/29] Update dependencies for security fixes --- Cargo.lock | 386 ++++++++++++++++++++++++----------------------------- 1 file changed, 178 insertions(+), 208 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3716610..9c7c72d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,54 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "anstream" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +dependencies = [ + "anstyle", + "windows-sys", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -14,6 +62,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + [[package]] name = "bstr" version = "0.2.17" @@ -25,42 +79,43 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.78" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "clap" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" +dependencies = [ + "clap_builder", + "clap_derive", +] [[package]] -name = "clap" -version = "4.1.1" +name = "clap_builder" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec7a4128863c188deefe750ac1d1dfe66c236909f845af04beed823638dc1b2" +checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" dependencies = [ - "bitflags", - "clap_derive", + "anstream", + "anstyle", "clap_lex", - "is-terminal", - "once_cell", "strsim", - "termcolor", ] [[package]] name = "clap_derive" -version = "4.1.0" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck", - "proc-macro-error", "proc-macro2", "quote", "syn", @@ -68,39 +123,37 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" -dependencies = [ - "os_str_bytes", -] +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] -name = "errno" -version = "0.2.8" +name = "colorchoice" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "errno" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "cc", "libc", + "windows-sys", ] [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -122,7 +175,7 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", "libgit2-sys", "log", @@ -131,74 +184,43 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "hermit-abi" -version = "0.2.6" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "home" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ - "winapi", + "windows-sys", ] [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", ] -[[package]] -name = "io-lifetimes" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "is-terminal" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" -dependencies = [ - "hermit-abi", - "io-lifetimes", - "rustix", - "windows-sys", -] - [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "libc" -version = "0.2.139" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libgit2-sys" @@ -214,9 +236,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "libc", @@ -226,48 +248,46 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.1.4" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lua-src" -version = "544.0.1" +version = "546.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708ba3c844d5e9d38def4a09dd871c17c370f519b3c4b7261fbabe4a613a814c" +checksum = "7c26d4af78361e025a3d03a2b964cd1592aff7495f4d4f7947218c084c6fdca8" dependencies = [ "cc", ] [[package]] name = "luajit-src" -version = "210.4.5+resty2cf5186" +version = "210.4.8+resty107baaf" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b7992a40e602786272d84c6f2beca44a588ededcfd57b48ec6f82008a7cb97" +checksum = "e05167e8b2a2185758d83ed23541e5bd8bce37072e4204e0ef2c9b322bc87c4e" dependencies = [ "cc", + "which", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "mlua" -version = "0.8.7" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee2ad7a9aa69056b148d9d590344bc155d3ce0d2200e3b2838f7034f6ba33c1" +checksum = "0bb37b0ba91f017aa7ca2b98ef99496827770cd635b4a932a6047c5b4bbe678e" dependencies = [ "bstr", "cc", @@ -281,75 +301,45 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" - -[[package]] -name = "os_str_bytes" -version = "6.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" +version = "0.3.27" 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", -] +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.23" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -362,13 +352,12 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.36.7" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags", + "bitflags 2.4.1", "errno", - "io-lifetimes", "libc", "linux-raw-sys", "windows-sys", @@ -382,38 +371,29 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.107" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", @@ -431,21 +411,21 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -458,9 +438,9 @@ dependencies = [ [[package]] name = "url" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -468,53 +448,43 @@ dependencies = [ ] [[package]] -name = "vcpkg" -version = "0.2.15" +name = "utf8parse" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] -name = "version_check" -version = "0.9.4" +name = "vcpkg" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] -name = "winapi" -version = "0.3.9" +name = "which" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "either", + "home", + "once_cell", + "rustix", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "winapi", + "windows-targets", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.42.0" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -527,42 +497,42 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" From 85a4c02758b2d39e42fabeb8b80fe9910dc3c234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sun, 18 Feb 2024 10:08:16 +0100 Subject: [PATCH 24/29] Update dependencies for security fixes --- Cargo.lock | 190 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 93 insertions(+), 99 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9c7c72d..6b7b226 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" dependencies = [ "anstyle", "anstyle-parse", @@ -18,33 +18,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", "windows-sys", @@ -58,15 +58,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "bstr" @@ -89,9 +83,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.7" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -99,9 +93,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.7" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -111,9 +105,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ "heck", "proc-macro2", @@ -123,9 +117,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "colorchoice" @@ -135,15 +129,15 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "errno" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", "windows-sys", @@ -151,9 +145,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -171,11 +165,11 @@ dependencies = [ [[package]] name = "git2" -version = "0.16.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc" +checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd" dependencies = [ - "bitflags 1.3.2", + "bitflags", "libc", "libgit2-sys", "log", @@ -190,18 +184,18 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ "windows-sys", ] [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -209,24 +203,24 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" dependencies = [ "libc", ] [[package]] name = "libc" -version = "0.2.149" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libgit2-sys" -version = "0.14.2+1.5.1" +version = "0.16.2+1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" dependencies = [ "cc", "libc", @@ -236,9 +230,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", "libc", @@ -248,9 +242,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "log" @@ -260,9 +254,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lua-src" -version = "546.0.1" +version = "546.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c26d4af78361e025a3d03a2b964cd1592aff7495f4d4f7947218c084c6fdca8" +checksum = "2da0daa7eee611a4c30c8f5ee31af55266e26e573971ba9336d2993e2da129b2" dependencies = [ "cc", ] @@ -279,9 +273,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "mlua" @@ -301,45 +295,45 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -352,11 +346,11 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -365,15 +359,15 @@ dependencies = [ [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" [[package]] name = "syn" -version = "2.0.38" +version = "2.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" dependencies = [ "proc-macro2", "quote", @@ -382,18 +376,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", @@ -417,9 +411,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -438,9 +432,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -473,18 +467,18 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -497,42 +491,42 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" diff --git a/Cargo.toml b/Cargo.toml index 0c4a143..d206edc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ include = ["src/**/*", "LICENSE", "README.md", ".git-bump.lua"] [dependencies] clap = { version = "4.0.32", features = ["derive"] } -git2 = { version = "0.16.1", default-features = false } +git2 = { version = "0.18.2", default-features = false } home = "0.5.3" mlua = { version = "0.8.7", features = ["lua54", "vendored"] } thiserror = "1.0.30" From c0ff7210190e075310e96d01e3332cf1c4afc199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 11 Jan 2025 18:11:43 +0100 Subject: [PATCH 25/29] Update dependencies for security fixes --- Cargo.lock | 525 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 403 insertions(+), 122 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6b7b226..c9a24e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,50 +1,51 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", "windows-sys", @@ -52,15 +53,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" [[package]] name = "bstr" @@ -73,19 +74,20 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "ad0cf6e91fde44c773c6ee7ec6bba798504641a8bc2eb7e37a04ffbf4dfaa55a" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] name = "clap" -version = "4.5.1" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", "clap_derive", @@ -93,9 +95,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstream", "anstyle", @@ -105,9 +107,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck", "proc-macro2", @@ -117,27 +119,38 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "either" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", "windows-sys", @@ -165,9 +178,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd" +checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" dependencies = [ "bitflags", "libc", @@ -178,43 +191,178 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ "windows-sys", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", ] +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] [[package]] name = "libc" -version = "0.2.153" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libgit2-sys" @@ -230,9 +378,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" dependencies = [ "cc", "libc", @@ -242,15 +390,21 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "litemap" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "log" -version = "0.4.20" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "3d6ea2a48c204030ee31a7d7fc72c93294c92fe87ecb1789881c9543516e1a0d" [[package]] name = "lua-src" @@ -273,9 +427,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mlua" @@ -295,18 +449,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "percent-encoding" @@ -316,24 +470,24 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -346,9 +500,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ "bitflags", "errno", @@ -358,36 +512,65 @@ dependencies = [ ] [[package]] -name = "strsim" -version = "0.11.0" +name = "serde" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] [[package]] -name = "syn" -version = "2.0.49" +name = "serde_derive" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "unicode-ident", + "syn", ] [[package]] -name = "thiserror" -version = "1.0.57" +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "2.0.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ - "thiserror-impl", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "thiserror-impl" -version = "1.0.57" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", @@ -395,57 +578,69 @@ dependencies = [ ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "tinyvec_macros", + "thiserror-impl", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "unicode-bidi" -version = "0.3.15" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "vcpkg" @@ -467,22 +662,23 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", + "windows_i686_gnullvm", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", @@ -491,42 +687,127 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] From 609ba8f3cb52a0903bbfb17751af718dc9c85e00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 11 Jan 2025 18:12:06 +0100 Subject: [PATCH 26/29] Fix compiler warning regarding future errors As preparation for an upcoming Rust compiler release, the following warning was generated and needed to be fixed: warning: this function depends on never type fallback being `()` --> src/main.rs:247:1 | 247 | fn bump(version: String) -> Result<()> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #123748 = help: specify the types explicitly note: in edition 2024, the requirement `!: LuaUserData` will fail --> src/main.rs:268:22 | 268 | .call(()) | ^^^^ = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 2b5e4cc..66421a3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -265,7 +265,7 @@ fn bump(version: String) -> Result<()> { if let Some(hooks) = &hooks { if let Some(pre_func) = hooks.get("pre_func") { pre_func - .call(()) + .call::<_, ()>(()) .map_err(|source| Error::LuaPreFuncFailed { source })?; } } @@ -275,7 +275,7 @@ fn bump(version: String) -> Result<()> { if let Some(hooks) = &hooks { if let Some(post_func) = hooks.get("post_func") { post_func - .call(()) + .call::<_, ()>(()) .map_err(|source| Error::LuaPostFuncFailed { source })?; } } From 7ac11185150ea89b5474fb53a15d4e80db8843a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 11 Jan 2025 18:16:36 +0100 Subject: [PATCH 27/29] Update Changelog --- CHANGES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 29e0296..333c2db 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,10 @@ There is no actual library code that could be shared, so let's stay with the main.rs and ditch the lib.rs for now. +- Update README + +- Update dependencies + # Changes in 0.2.0 - Add two additional errors for hooks From cb2c3a8fd403f50b9595c9e89a0bbd5fdeef6c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 11 Jan 2025 18:16:47 +0100 Subject: [PATCH 28/29] Bump version to 0.3.0-RC --- CHANGES.md | 2 +- Cargo.lock | 2 +- Cargo.toml | 2 +- VERSION | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 333c2db..6d9813f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,4 @@ -# Changes since latest release +# Changes in 0.3.0-RC - Convert application into binary only diff --git a/Cargo.lock b/Cargo.lock index c9a24e0..3b3db51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,7 +167,7 @@ dependencies = [ [[package]] name = "git-bump" -version = "0.3.0-SNAPSHOT" +version = "0.3.0-RC" dependencies = [ "clap", "git2", diff --git a/Cargo.toml b/Cargo.toml index d206edc..46dbb16 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "git-bump" -version = "0.3.0-SNAPSHOT" +version = "0.3.0-RC" authors = ["Florian Gamböck "] edition = "2021" diff --git a/VERSION b/VERSION index daf2bb7..4c6b5df 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.0-SNAPSHOT +0.3.0-RC From 442aadc2e438e06e3ca916d9e3595d642e8ede7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Gamb=C3=B6ck?= Date: Sat, 11 Jan 2025 18:36:58 +0100 Subject: [PATCH 29/29] Bump version to 0.3.0 --- CHANGES.md | 2 +- Cargo.lock | 2 +- Cargo.toml | 2 +- VERSION | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 6d9813f..487e4ab 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,4 @@ -# Changes in 0.3.0-RC +# Changes in 0.3.0 - Convert application into binary only diff --git a/Cargo.lock b/Cargo.lock index 3b3db51..bd59a41 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,7 +167,7 @@ dependencies = [ [[package]] name = "git-bump" -version = "0.3.0-RC" +version = "0.3.0" dependencies = [ "clap", "git2", diff --git a/Cargo.toml b/Cargo.toml index 46dbb16..c200adc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "git-bump" -version = "0.3.0-RC" +version = "0.3.0" authors = ["Florian Gamböck "] edition = "2021" diff --git a/VERSION b/VERSION index 4c6b5df..0d91a54 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.0-RC +0.3.0