Skip to content

python3.pkgs.beets: use fixed-point arguments#477084

Merged
doronbehar merged 4 commits intoNixOS:masterfrom
doronbehar:pkg/beets@fixed
Jan 21, 2026
Merged

python3.pkgs.beets: use fixed-point arguments#477084
doronbehar merged 4 commits intoNixOS:masterfrom
doronbehar:pkg/beets@fixed

Conversation

@doronbehar
Copy link
Contributor

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 6.topic: python Python is a high-level, general-purpose programming language. labels Jan 5, 2026
@nixpkgs-ci nixpkgs-ci bot requested a review from jwillikers January 11, 2026 09:14
@nixpkgs-ci nixpkgs-ci bot removed the 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. label Jan 11, 2026
Copy link
Contributor

@9999years 9999years left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't done a thorough review but yay for finalAttrs! Maybe the pluginOverrides attr should be removed? I'd also like to see some more tests here...

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Jan 13, 2026
@doronbehar
Copy link
Contributor Author

Maybe the pluginOverrides attr should be removed?

I don't think so. It is still way more comfortable to configure built in plugins via .override and not via .overrideAttrs or .overridePythonAttrs interface. Also that would be a hard API breakage and I'm sure people are using this API.

@doronbehar
Copy link
Contributor Author

I'd also like to see some more tests here...

I'm down, but testing what?

Previously, the attribute set:

python3.pkgs.beets-minimal.passthru.plugins.enabled

filtered out the disabled plugins from:

python3.pkgs.beets.passthru.plugins.all

, and not from:

python3.pkgs.beets-minimal.passthru.plugins.all

. This meant that before the commit titled:

python3.pkgs.beets: use fixed-point arguments

, the derivations `beets` and `beets-minimal` were the same. Now this
change has significance, were as in out of context PR NixOS#477088 it didn't.
Copy link
Contributor

@9999years 9999years left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this keeps the python3.pkgs.beets hash unchanged, which is a good sign!

I'm a bit nervous about the API for overriding plugins: with this PR, it's still impossible to use the (documented) pluginOverrides argument to override builtin plugins, as well as a whole host of attributes under passthru.plugins:

nix-repl> python3.pkgs.beets.passthru.plugins
{
  all = { ... };
  base = { ... };
  builtins = { ... };
  disabled = { };
  disabledTestPaths = [ ];
  enabled = { ... };
  overrides = { };
  wrapperBins = [ ... ];
}

To me, enabled, overrides, and all seem like reasonable places to put a new plugin, and it's not clear how base and builtins differ ... I'm not sure what a good solution for cleaning these up would be.

Perhaps we can just have a single passthru.plugins attribute and remove the rest? Not sure.

Anyways, I think this PR is a solid improvement over the status quo, but I'd like to get the plugin override API cleaned up soon.

@doronbehar
Copy link
Contributor Author

I'm a bit nervous about the API for overriding plugins: with this PR, it's still impossible to use the (documented) pluginOverrides argument to override builtin plugins,

Why not? I just added a test that proves it is possible..

as well as a whole host of attributes under passthru.plugins:

I wouldn't say we wish to make it easy to override them all.

To me, enabled, overrides, and all seem like reasonable places to put a new plugin, and it's not clear how base and builtins differ ... I'm not sure what a good solution for cleaning these up would be.

Perhaps we can just have a single passthru.plugins attribute and remove the rest? Not sure.

I agree, it is a remnant from the old implementation. I was thinking of removing them in #452540 but I wanted that PR to be easy to review. I'm open to simplify this but this would be a breaking change and I wish to not do that in this PR.

@doronbehar doronbehar dismissed Mikilio’s stale review January 21, 2026 13:10

Addressed in a comment.

@doronbehar doronbehar added this pull request to the merge queue Jan 21, 2026
Merged via the queue into NixOS:master with commit ecb80a7 Jan 21, 2026
32 of 34 checks passed
@doronbehar doronbehar deleted the pkg/beets@fixed branch January 21, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: python Python is a high-level, general-purpose programming language. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants