From 1ba1e7ab8f9a197a6e84ad6c7d76dbd67ddc367b Mon Sep 17 00:00:00 2001 From: David Tadokoro Date: Fri, 16 May 2025 15:37:36 -0300 Subject: [PATCH 1/4] fix(release): disable CI job for release based on `cargo dist` Once again, in trying to release the new version of `patch-hub`, I stumbled upon an error in the CI, this time, with `cargo dist` [1]. As mentioned in this issue [2], `cargo dist` deprecated support to the Ubuntu 20.04 runner, which is the one used in the workflow. I have been attempting to install other versions of `cargo dist`, but it seems that there is an upstream compilation error. Besides, its own online book [3] seems offline for the last days. Due to this, disable CI job for releasing `patch-hub` using `cargo dist`. This doesn't removes the job, just makes it not run at all. The plan in-house a CI job for the release in the future. [1]: https://github.com/kworkflow/patch-hub/actions/runs/15024335425 [2]: https://github.com/actions/runner-images/issues/11101 [3]: https://opensource.axo.dev/cargo-dist/book Signed-off-by: David Tadokoro --- .github/workflows/release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a00892e2..c9c8a0ac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,11 +36,11 @@ permissions: # # If there's a prerelease-style suffix to the version, then the release(s) # will be marked as a prerelease. -on: - pull_request: - push: - tags: - - '**[0-9]+.[0-9]+.[0-9]+*' +on: [] + # pull_request: + # push: + # tags: + # - '**[0-9]+.[0-9]+.[0-9]+*' jobs: # Run 'cargo dist plan' (or host) to determine what tasks we need to do From 6e01303d4154645ddfb94aa7d77b7d611bf49262 Mon Sep 17 00:00:00 2001 From: David Tadokoro Date: Wed, 14 May 2025 11:50:06 -0300 Subject: [PATCH 2/4] RELEASES: Add release notes for version 0.1.6 Add release notes for the version 0.1.6 of `patch-hub`. Signed-off-by: David Tadokoro --- RELEASES.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/RELEASES.md b/RELEASES.md index 8fbc144f..79b567ff 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,66 @@ +# Version 0.1.6 (2025-05-14) + +After almost three months, a new release of `patch-hub` is here! We had a couple of new contributors who participated in this development cycle. Welcome @lucasoshiro and @ivinjabraham! + +Besides being a long time since the last release, what motivated me the most to make this one is that we are looking to start making some breaking refactorings to the codebase. + +### New Functionalities and Changes Highlight + +1. Fix the preview bug of showing the `--` that marks the start of patches as a deletion +2. Fix `delta` output width +3. Add new CI workflows +4. Add contributing guidelines +5. Fix invisible cursor bug when panic occurred during a loading screen +6. Redesign of the config file loading and updating +7. Lots of refactors and other fixes + +### Problems and Future Changes + +The jump to the next level of patch-hub seems closer than ever. For the last few months, I haven't been able to dedicate the time I desired to the project, and I aim to change gears and get back on top of things as before. + +### Changelog + +```git +e12cadf 2025-04-26 | docs: link test and corresponding function in `loading_screen` [Ivin Joel Abraham] +6a2adf6 2025-04-26 | docs: link tests and corresponding functions for `utils` [Ivin Joel Abraham] +5b98a5e 2025-04-26 | refactor: rename test function to be more consistent with the rest [Ivin Joel Abraham] +5c33f94 2025-04-26 | docs: link tests and corresponding functions for `patch_renderer` [Ivin Joel Abraham] +b2558bc 2025-04-26 | docs: link tests and corresponding functions for `Config` [Ivin Joel Abraham] +696346b 2025-04-25 | chore: move `test_samples/` directory out of `src/` [Ivin Joel Abraham] +adf9766 2025-04-01 | chore: bump vulnerable dependencies and adapt `ureq::Agent::user_agent()` call [Rafael Passos] +ccec50c 2025-03-23 | feat: add unit tests for serde_individual_default proc_macro [Lorenzo Bertin Salvador] +3a99675 2025-03-23 | feat: create proc_macro to simplify Config attributes deserialization [Lorenzo Bertin Salvador] +b286857 2025-03-23 | refactor: use lazy_static to store only one Config::default() object in memory [Lorenzo Bertin Salvador] +6760e79 2025-03-23 | feat: prevent existing config to be overwritten when new attribute is created [Lorenzo Bertin Salvador] +af8d1ef 2025-03-23 | refactor: improve code quality in config.rs module [Lorenzo Bertin Salvador] +65d96d4 2025-04-07 | refactor(config-tests): use untracked temporary sample config file [David Tadokoro] +66d3059 2025-03-21 | chore: delete redundant test [Ivin Joel Abraham] +7238f16 2025-03-19 | perf: resolve arguments before building `App` [Ivin Joel Abraham] +f9156f3 2025-03-19 | refactor: inject `App` with `Config` instead of building `Config` internally [Ivin Joel Abraham] +2ec6fdc 2025-03-16 | ci: add workflow for cargo install verification [Ivin Joel Abraham] +c4daa29 2025-03-15 | fix: ensure loading_screen! generated thread joins before exiting patch-hub [Lorenzo Bertin Salvador] +a00a27b 2025-03-15 | docs: add `CONTRIBUTING.md` with contribution guidelines [Ivin Joel Abraham] +548e0b5 2025-03-15 | docs: improve clarity and add more instructions to `README.md` [Ivin Joel Abraham] +ac214c0 2025-03-15 | fix: `cargo install` failing to build when using `ureq v3.0.9` [Ivin Joel Abraham] +faf2937 2025-02-26 | feat: add dependabot integration [Ivin Joel Abraham] +2957eef 2025-02-21 | fix: improve error handling in config management [Ivin Joel Abraham] +9c2c520 2025-02-20 | fix: handle missing patch IDs gracefully in feed pagination [Ivin Joel Abraham] +99337cf 2025-02-20 | fix: improve error handling for stdin in patch renderers [Ivin Joel Abraham] +a71ef6e 2025-02-20 | refactor: replace `unwrap()` with `expect()` in `toggle_action` [Ivin Joel Abraham] +8dc2a65 2025-02-20 | refactor: improve error handling in `App::new` and `Logger::init_log_file` [Ivin Joel Abraham] +b93c09a 2025-02-20 | fix: handle missing $HOME variable gracefully [Ivin Joel Abraham] +7b8cdd6 2025-02-20 | fix: properly handle `unwrap()`s in `reply_patchset_with_reviwed_by` [Ivin Joel Abraham] +b0b65ee 2025-03-15 | refactor: improve error handling and logging for config loading [Ivin Joel Abraham] +4acf6f8 2025-02-20 | refactor: improve `apply_patchset` validation and structure [Ivin Joel Abraham] +2c01ffa 2025-03-07 | chore: remove testing branch from `build_and_unit_test` CI workflow [David Tadokoro] +60e1920 2025-03-07 | feat: make CI workflows run on the exact PR branch [David Tadokoro] +31718ea 2025-03-11 | feat: disable gitconfig reading by Delta [Lucas Oshiro] +7dc9f78 2025-02-25 | feat: increase Delta output width [Lucas Oshiro] +68686e9 2025-03-05 | chore: remove leftover `foo.patch` file [David Tadokoro] +38c1c59 2025-02-25 | test: add setup function and new test cases for `utils` hooks [Ivin Joel Abraham] +1d0826a 2025-02-21 | fix: trim trailing `--` from patches before previewing [Ivin Joel Abraham] +``` + # Version 0.1.5 (2025-02-19) The time between releases grows, and the number of changes per release decreases... This is true, but it is also true that version 0.1.5 comes with long-awaited features! From 504672e194c64d601a9d90c65f8e7fc9e443ac74 Mon Sep 17 00:00:00 2001 From: David Tadokoro Date: Wed, 14 May 2025 11:51:12 -0300 Subject: [PATCH 3/4] Release of `patch-hub` version 0.1.6 Add tag `v0.1.6` that represents the release of `patch-hub` version 0.1.6. Signed-off-by: David Tadokoro --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1e194191..c11a9682 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -769,7 +769,7 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "patch-hub" -version = "0.1.5" +version = "0.1.6" dependencies = [ "ansi-to-tui", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 23f95112..79f2a239 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "patch-hub" -version = "0.1.5" +version = "0.1.6" edition = "2021" repository = "https://github.com/kworkflow/patch-hub" description = "patch-hub is a TUI that streamlines the interaction of Linux developers with patches archived on lore.kernel.org" From 763c1f732ae460a2faffe0bb46b89ded45818b48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 18:43:59 +0000 Subject: [PATCH 4/4] chore(deps): Bump the version-updates group with 8 updates Bumps the version-updates group with 8 updates: | Package | From | To | | --- | --- | --- | | [color-eyre](https://github.com/eyre-rs/eyre) | `0.6.3` | `0.6.4` | | [serde-xml-rs](https://github.com/RReverser/serde-xml-rs) | `0.6.0` | `0.8.0` | | [clap](https://github.com/clap-rs/clap) | `4.5.35` | `4.5.38` | | [chrono](https://github.com/chronotope/chrono) | `0.4.40` | `0.4.41` | | [which](https://github.com/harryfei/which-rs) | `7.0.2` | `7.0.3` | | [ureq](https://github.com/algesten/ureq) | `3.0.10` | `3.0.11` | | [syn](https://github.com/dtolnay/syn) | `2.0.100` | `2.0.101` | | [proc-macro2](https://github.com/dtolnay/proc-macro2) | `1.0.94` | `1.0.95` | Updates `color-eyre` from 0.6.3 to 0.6.4 - [Commits](https://github.com/eyre-rs/eyre/compare/color-eyre-v0.6.3...color-eyre@0.6.4) Updates `serde-xml-rs` from 0.6.0 to 0.8.0 - [Release notes](https://github.com/RReverser/serde-xml-rs/releases) - [Commits](https://github.com/RReverser/serde-xml-rs/compare/0.6.0...0.8.0) Updates `clap` from 4.5.35 to 4.5.38 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.35...clap_complete-v4.5.38) Updates `chrono` from 0.4.40 to 0.4.41 - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.40...v0.4.41) Updates `which` from 7.0.2 to 7.0.3 - [Release notes](https://github.com/harryfei/which-rs/releases) - [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/harryfei/which-rs/compare/7.0.2...7.0.3) Updates `ureq` from 3.0.10 to 3.0.11 - [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md) - [Commits](https://github.com/algesten/ureq/compare/3.0.10...3.0.11) Updates `syn` from 2.0.100 to 2.0.101 - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.100...2.0.101) Updates `proc-macro2` from 1.0.94 to 1.0.95 - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.94...1.0.95) --- updated-dependencies: - dependency-name: color-eyre dependency-version: 0.6.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates - dependency-name: serde-xml-rs dependency-version: 0.8.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: version-updates - dependency-name: clap dependency-version: 4.5.38 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates - dependency-name: chrono dependency-version: 0.4.41 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates - dependency-name: which dependency-version: 7.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates - dependency-name: ureq dependency-version: 3.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates - dependency-name: syn dependency-version: 2.0.101 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates - dependency-name: proc-macro2 dependency-version: 1.0.95 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: version-updates ... Signed-off-by: dependabot[bot] --- Cargo.lock | 75 ++++++++++++++++++++++++++++-------------- Cargo.toml | 12 +++---- proc_macros/Cargo.toml | 4 +-- 3 files changed, 58 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c11a9682..3376bc8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -193,9 +193,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", @@ -207,9 +207,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" dependencies = [ "clap_builder", "clap_derive", @@ -217,9 +217,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" dependencies = [ "anstream", "anstyle", @@ -247,16 +247,16 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "color-eyre" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +checksum = "e6e1761c0e16f8883bbbb8ce5990867f4f06bf11a0253da6495a04ce4b6ef0ec" dependencies = [ "backtrace", "color-spantrace", "eyre", "indenter", "once_cell", - "owo-colors", + "owo-colors 4.2.1", "tracing-error", ] @@ -267,7 +267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", - "owo-colors", + "owo-colors 3.5.0", "tracing-core", "tracing-error", ] @@ -317,7 +317,7 @@ dependencies = [ "crossterm_winapi", "mio", "parking_lot", - "rustix", + "rustix 0.38.44", "signal-hook", "signal-hook-mio", "winapi", @@ -605,6 +605,12 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + [[package]] name = "lock_api" version = "0.4.12" @@ -738,6 +744,12 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +[[package]] +name = "owo-colors" +version = "4.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26995317201fa17f3656c36716aed4a7c81743a9634ac4c99c0eeda495db0cec" + [[package]] name = "parking_lot" version = "0.12.3" @@ -829,9 +841,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -946,7 +958,20 @@ dependencies = [ "bitflags", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] @@ -1020,9 +1045,9 @@ dependencies = [ [[package]] name = "serde-xml-rs" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" +checksum = "176b7ff880ab6ead7a020e773e9c096467fe347615a3e22ac29300cbdef67a5d" dependencies = [ "log", "serde", @@ -1152,9 +1177,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -1301,9 +1326,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0351ca625c7b41a8e4f9bb6c5d9755f67f62c2187ebedecacd9974674b271d" +checksum = "b7a3e9af6113ecd57b8c63d3cd76a385b2e3881365f1f489e54f49801d0c83ea" dependencies = [ "base64", "flate2", @@ -1319,9 +1344,9 @@ dependencies = [ [[package]] name = "ureq-proto" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae239d0a3341aebc94259414d1dc67cfce87d41cbebc816772c91b77902fafa4" +checksum = "fadf18427d33828c311234884b7ba2afb57143e6e7e69fda7ee883b624661e36" dependencies = [ "base64", "http", @@ -1422,13 +1447,13 @@ dependencies = [ [[package]] name = "which" -version = "7.0.2" +version = "7.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283" +checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" dependencies = [ "either", "env_home", - "rustix", + "rustix 1.0.7", "winsafe", ] diff --git a/Cargo.toml b/Cargo.toml index 79f2a239..b4a22698 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ repository = "https://github.com/kworkflow/patch-hub" description = "patch-hub is a TUI that streamlines the interaction of Linux developers with patches archived on lore.kernel.org" [dependencies] -color-eyre = "0.6.3" +color-eyre = "0.6.4" mockall = "0.13.1" derive-getters = { version = "0.5.0", features = ["auto_copy_getters"] } lazy_static = "1.5.0" @@ -14,14 +14,14 @@ proc_macros = { path = "./proc_macros" } ratatui = "0.29.0" regex = "1.11.1" serde = { version = "1.0.219", features = ["derive"] } -serde-xml-rs = "0.6.0" +serde-xml-rs = "0.8.0" serde_json = "1.0.140" thiserror = "2.0.12" -clap = { version = "4.5.35", features = ["derive"] } -chrono = "0.4.40" +clap = { version = "4.5.38", features = ["derive"] } +chrono = "0.4.41" ansi-to-tui = "7.0.0" -which = "7.0.2" -ureq = { version = "3.0.10", features = ["rustls"] } +which = "7.0.3" +ureq = { version = "3.0.11", features = ["rustls"] } # The profile that 'cargo dist' will build with [profile.dist] diff --git a/proc_macros/Cargo.toml b/proc_macros/Cargo.toml index 865076ae..198c3fae 100644 --- a/proc_macros/Cargo.toml +++ b/proc_macros/Cargo.toml @@ -8,9 +8,9 @@ derive-getters = { version = "0.5.0", features = ["auto_copy_getters"] } lazy_static = "1.5.0" serde = { version = "1.0.203", features = ["derive"] } serde_json = "1.0.120" -syn = { version = "2.0.100", features = ["full"] } +syn = { version = "2.0.101", features = ["full"] } quote = "1.0.4" -proc-macro2 = "1.0.94" +proc-macro2 = "1.0.95" [lib] proc-macro = true