Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2858,7 +2858,7 @@ with pkgs;

exiftool = perlPackages.ImageExifTool;

expect = tclPackages.expect;
expect = tcl8Packages.expect;

Fabric = with python3Packages; toPythonApplication fabric;

Expand Down Expand Up @@ -6617,10 +6617,21 @@ with pkgs;
tcl-8_6 = callPackage ../development/interpreters/tcl/8.6.nix { };
tcl-9_0 = callPackage ../development/interpreters/tcl/9.0.nix { };

# We don't need versioned package sets thanks to the tcl stubs mechanism
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Let's keep a comment like this to explain why we don't also have minor versions:

Suggested change
# We don't need versioned package sets thanks to the tcl stubs mechanism
# We don't need versioned package sets for minor versions thanks to the tcl stubs mechanism

tclPackages = recurseIntoAttrs (callPackage ./tcl-packages.nix { });
tclPackages = tcl8Packages;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

For consistency with the other sets, I think we should either expose the versioned or the unversioned set, not both

Suggested change
tclPackages = tcl8Packages;
tclPackages = dontRecurseIntoAttrs tcl8Packages;

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I agree, but how should callPackage select a set for "applications"?

How about this?

{ lib
, tclPackages ? tcl9Packages,
, tcl9Packages
}: null

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm not sure I understand your question. recurseIntoAttrs/dontRecurseIntoAttrs is just a hint for nix search / https://search.nixos.org / other tools. The package set is still available for use in nix code, it's just hidden from display in some places.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The question is how should packages outside the scope of a tclNPackages bring one into scope. Things like Tcl/Tk applications.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Sorry, I missed the notification ^_^"

As far as I can see with other ecosystems we use the unversioned set by default unless the program does not compile with the default version. We can do the same.

tcl8Packages = recurseIntoAttrs (
callPackage ./tcl-packages.nix {
tcl = tcl-8_6;
tk = tk-8_6;
}
);
tcl9Packages = recurseIntoAttrs (
callPackage ./tcl-packages.nix {
tcl = tcl-9_0;
tk = tk-9_0;
}
);

tclreadline = tclPackages.tclreadline;
tclreadline = tcl8Packages.tclreadline;

wasm = ocamlPackages.wasm;

Expand Down
Loading