Conversation
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/cache](https://redirect.github.com/actions/cache) | action | major | `v4.3.0` -> `v5.0.1` | --- ### Release Notes <details> <summary>actions/cache (actions/cache)</summary> ### [`v5.0.1`](https://redirect.github.com/actions/cache/compare/v5.0.0...v5.0.1) [Compare Source](https://redirect.github.com/actions/cache/compare/v5.0.0...v5.0.1) ### [`v5.0.0`](https://redirect.github.com/actions/cache/compare/v4.3.0...v5.0.0) [Compare Source](https://redirect.github.com/actions/cache/compare/v4.3.0...v5.0.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cococonscious/koji). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…us#165) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [codecov/codecov-action](https://redirect.github.com/codecov/codecov-action) | action | patch | `v5.5.1` -> `v5.5.2` | --- ### Release Notes <details> <summary>codecov/codecov-action (codecov/codecov-action)</summary> ### [`v5.5.2`](https://redirect.github.com/codecov/codecov-action/blob/HEAD/CHANGELOG.md#v552) [Compare Source](https://redirect.github.com/codecov/codecov-action/compare/v5.5.1...v5.5.2) ##### What's Changed **Full Changelog**: <https://github.com/codecov/codecov-action/compare/v5.5.1..v5.5.2> </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cococonscious/koji). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` | --- ### Release Notes <details> <summary>actions/checkout (actions/checkout)</summary> ### [`v6.0.1`](https://redirect.github.com/actions/checkout/compare/v6.0.0...v6.0.1) [Compare Source](https://redirect.github.com/actions/checkout/compare/v6.0.0...v6.0.1) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cococonscious/koji). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMi4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Multiple macOS versions as a requirement to eventually have koji in homebrew-core
Keeping cocogitto for the commits for now but uses Gix for traversal, etc., and at some point, when Gix is ready, replace cocogitto with it.
|
Besides the conflicts, make sure to consider my comment in the previous PR: #161 (comment) and imo it should also be possible to configure to force the use of the configured scopes or not (and with that if an empty scope is allowed or not) |
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
cococonscious
left a comment
There was a problem hiding this comment.
Looks good besides the review comment, also, I have two other points to consider:
- The
force_scopeconfig key naming is a bit misleading, I think a more accurate name would beforce_config_scopes - We should show the configured scope description in the selection prompt, not only because it's otherwise obsolete but also to differentiate from the detected scopes
|
I'll address #2, but #1 I wrote because it's namespaced under Config. So Config.force_config_scopes feels redundant.
You'll see updates later today.
▰▰▰▰▰
Miles Wirth 🙃
… From: Finley Thomalla ***@***.***>
Sent: 11 March 2026 01:07
To: cococonscious/koji ***@***.***>
Cc: Miles Wirht ***@***.***>, Author ***@***.***>
Subject: Re: [cococonscious/koji] Scopes (PR #179)
@cococonscious requested changes on this pull request.
Looks good besides the review comment, also, I have two other points to consider:
- The `force_scope` config key naming is a bit misleading, I think a more accurate name would be `force_config_scopes`
- We should show the configured scope description in the selection prompt, not only because it's otherwise obsolete but also to differentiate from the detected scopes
> @@ -148,6 +163,21 @@ impl Autocomplete for ScopeAutocompleter {
}
fn prompt_scope(config: &Config) -> Result<Option<String>> {
+ if config.force_scope && !config.commit_scopes.is_empty() {
+ let scope_values: Vec<String> = config.commit_scopes.keys().cloned().collect();
+
+ let prompt = Select::new("What's the scope of this change?", scope_values)
+ .with_render_config(get_render_config());
+
+ let result = if config.allow_empty_scope {
+ prompt.prompt_skippable()?
+ } else {
+ Some(prompt.prompt()?)
Pressing \<Esc> cancels the prompt with a generic error message, please find a way to improve it (for example "Error: Scope cannot be empty"
--
Reply to this email directly or view it on GitHub:
#179 (review)
You are receiving this because you authored the thread.
Message ID: ***@***.***>
|
|
I understand your point about the scoping of the config property, and it does make sense, but it's a bit confusing because "force scope" could be misunderstood as "you must specify a scope" (which the other variable is for so it is understandable, yes, but it does require an extra thinking step). Thanks for the changes. I did find a bug though, when setting the following: Also, I find it hard to justify adding another error handling dependency, could we not either replace everything with Lastly, the descriptions of the commit scopes defined in the config are still not visible. Thanks, |
|
The error handling thing: I think if we want to move to stronger error handling, the answer is 100% thiserror!! It's meant for structured error cases. The other thing we could consider is [Ariadne](https://lib.rs/crates/ariadne) or [Miette](https://lib.rs/crates/miette), which would place us in the top 1% for these diagnostics, but would require a larger refactor.
I could start a separate PR that adds that to merge before this one so consistency stays.
I also was thinking that globbing would pair nicely with this scope configuration, as a lot of scopes are bound purely to specific sets of files from within a codebase. I have a scope for my flake.nix for example. That way users could manage LOTS of scopes without it polluting the main dialog, which would be reserved for the more universal options.
▰▰▰▰▰
Miles Wirth 🙃
… From: Finley Thomalla ***@***.***>
Sent: 13 March 2026 03:42
To: cococonscious/koji ***@***.***>
Cc: Miles Wirht ***@***.***>, Author ***@***.***>
Subject: Re: [cococonscious/koji] Scopes (PR #179)
cococonscious left a comment (cococonscious/koji#179)
I understand your point about the scoping of the config property, and it does make sense, but it's a bit confusing because "force scope" could be misunderstood as "you must specify a scope" (which the other variable is for so it is understandable, yes, but it does require an extra thinking step).
Thanks for the changes. I did find a bug though, when setting the following: `force_scope = false` and `allow_empty_scope = false`, hitting \<Esc> will just continue instead of throwing like when `force_scope = true`.
Also, I find it hard to justify adding another error handling dependency, could we not either replace everything with `thiserror` or implement your changes in `anyhow`?
Lastly, the descriptions of the commit scopes defined in the config are still not visible.
Thanks,
Finley
--
Reply to this email directly or view it on GitHub:
#179 (comment)
You are receiving this because you authored the thread.
Message ID: ***@***.***>
|
Yes, please! That would be great. While they look great, I think they're overkill for the simple errors that are common in koji, unless you disagree...
Sorry, I'm a bit lost on what exactly you mean by this, could you give me a concrete example? |
|
Okay, I'll look into the error handling sometime soon!
They are basically overkill, just thinking if the config becomes a bigger interface it would help, and we can fallback to the default case elsewhere? But definitely to think about LATER.
Yes, something like
flakes = "/flake.nix"
core = "/crates/core/**/*.rs"
build = ["/build.rs", "/justfile"]
So if changes impact a match, the scope is pre-assigned.
Which assigns these things. On second thought, a Regex or FancyRegex implementation could make more sense, as I see the deliniation getting advanced, and arrays feel like a clunky answer.
▰▰▰▰▰
Miles Wirth 🙃
… From: Finley Thomalla ***@***.***>
Sent: 17 March 2026 02:10
To: cococonscious/koji ***@***.***>
Cc: Miles Wirht ***@***.***>, Author ***@***.***>
Subject: Re: [cococonscious/koji] Scopes (PR #179)
cococonscious left a comment (cococonscious/koji#179)
> I think if we want to move to stronger error handling, the answer is 100% thiserror!! ... I could start a separate PR that adds that to merge before this one so consistency stays.
Yes, please! That would be great.
> The other thing we could consider is [Ariadne](https://lib.rs/crates/ariadne) or [Miette](https://lib.rs/crates/miette), ...
While they look great, I think they're overkill for the simple errors that are common in koji, unless you disagree...
> I also was thinking that globbing would pair nicely with this scope configuration, ...
Sorry, I'm a bit lost on what exactly you mean by this, could you give me a concrete example?
--
Reply to this email directly or view it on GitHub:
#179 (comment)
You are receiving this because you authored the thread.
Message ID: ***@***.***>
|
No description provided.