Skip to content

tclPackages: define tcl8Packages and tcl9Packages#433414

Closed
ghost wants to merge 1 commit intomasterfrom
unknown repository
Closed

tclPackages: define tcl8Packages and tcl9Packages#433414
ghost wants to merge 1 commit intomasterfrom
unknown repository

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Aug 13, 2025

It should be possible to build packages against Tcl-9, regardless if stubs are present in extensions.

Ping @fgaz

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 the 12.first-time contribution This PR is the author's first one; please be gentle! label Aug 13, 2025
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Aug 13, 2025
@wolfgangwalther wolfgangwalther requested a review from fgaz August 15, 2025 17:15
@nixpkgs-ci nixpkgs-ci bot removed the 9.needs: reviewer This PR currently has no reviewers requested and needs attention. label Aug 15, 2025
Copy link
Copy Markdown
Member

@fgaz fgaz left a comment

Choose a reason for hiding this comment

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

This is going to make the tcl9 update much easier, thanks!

Please mention the package sets in doc/languages-frameworks/tcl.section.md like it's done in the python section and add an entry to the release notes

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


# We don't need versioned package sets 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.

@ghost ghost closed this by deleting the head repository Jan 26, 2026
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant