Skip to content

haskell.compiler.ghcjs: remove at 8.10.7#422342

Merged
sternenseemann merged 3 commits intoNixOS:masterfrom
sternenseemann:ghcjs-remove
Sep 6, 2025
Merged

haskell.compiler.ghcjs: remove at 8.10.7#422342
sternenseemann merged 3 commits intoNixOS:masterfrom
sternenseemann:ghcjs-remove

Conversation

@sternenseemann
Copy link
Member

@sternenseemann sternenseemann commented Jul 4, 2025

  • Add throwing alias if config.allowAliases.
  • Flesh out changelog entry
  • Remove ghcjs specific code from generic-builder.nix. I'd love to hear input on this. In theory, there is some value in keeping it, but I also don't see how we are going to correctly maintain this conditional code going forward. It also looks like it would make some things much simpler.

Closes #33768
Closes #44157
Closes #61710
Closes #167859
Closes #172802
Closes #340320

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • Nixpkgs 25.11 Release Notes (or backporting 25.05 Nixpkgs Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
  • NixOS 25.11 Release Notes (or backporting 25.05 NixOS Release notes)
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other contributing documentation in corresponding paths.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: changelog This PR adds or changes release notes 8.has: documentation This PR adds or changes documentation 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. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. labels Jul 4, 2025
@wolfgangwalther
Copy link
Contributor

Remove ghcjs specific code from generic-builder.nix. I'd love to hear input on this. In theory, there is some value in keeping it, but I also don't see how we are going to correctly maintain this conditional code going forward. It also looks like it would make some things much simpler.

+many for removal. generic-builder is already complex enough and hard enough to maintain, every simplification is a big benefit. If somebody wants to keep using this, they will need to use an older nixpkgs instance with this still available - and then add the patches they need on top. It's just unrealistic to assume we can manage to keep this working without being able to test. We already see GHC on darwin regressing lately - and I'm sure this is related to not building it regularly in the haskell-updates hydra report anymore. There is no reason to assume it would work better for ghcjs.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. and removed 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. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. labels Jul 7, 2025
@sternenseemann sternenseemann force-pushed the ghcjs-remove branch 2 times, most recently from 3cad66b to b7d1ef1 Compare July 7, 2025 21:31
@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. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. and removed 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. labels Jul 7, 2025
@sternenseemann sternenseemann requested a review from alexfmpe July 7, 2025 21:46
Comment on lines -492 to 483
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we can get rid of ghcCommand' here and just put "ghc" into ghcCommand directly.

There is one more usage of ghcCommand' further down, but I think this can eventually just be replaced with an uppercase "GHC" - makes little sense to keep this as another binding, I think.

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't really see the urgency inlining them everywhere, though.

Copy link
Contributor

Choose a reason for hiding this comment

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

No urgency for sure, but less indirection is easier to read.

@wolfgangwalther
Copy link
Contributor

Rebased to resolve merge conflicts.

@nixpkgs-ci nixpkgs-ci bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Sep 5, 2025
Copy link
Contributor

@wolfgangwalther wolfgangwalther left a comment

Choose a reason for hiding this comment

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

Diff LGTM. Also double checked any left-overs during rebase, didn't find any.

Changelog entry is there.

Do we need the alias and if so, only for haskell.compiler.ghcjs and/or haskell.packages.ghcjs or also for the versioned attributes? Seems like we have never added when dropping versions previously, so I'm inclined to not do it here either.

@nixpkgs-ci nixpkgs-ci bot added 12.approvals: 2 This PR was reviewed and approved by two persons. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Sep 5, 2025
@sternenseemann
Copy link
Member Author

May be worth it here since we're not just removing a version of GHC, but can be done separately.

Another questions is whether we want to do the removals on master (or staging if not possible) in order to get them into master faster and thus quicker feedback from downstream. We can always merge/cherry pick changes back to haskell-updates (or: into haskell-updates and cherry-pick onto quicker paths, maybe a even better option).

@maralorn
Copy link
Member

maralorn commented Sep 6, 2025

I think an alias would be nice in this case.

Merging to master seems good to me. That will reach h-u in up to 48h won't it?

@wolfgangwalther
Copy link
Contributor

Agree on merging into master; I'm open to do the same for most of the other drops (as long as they don't rebuild all of haskellPackages), to help #440271.

I have time and can work on rebasing this and the other branches + adding the alias here - but I don't want to interfere with your work @sternenseemann. Let me know where I can help.

@sternenseemann
Copy link
Member Author

Feel free to rebase, I'm not doing anything on this branch right now.

github-actions[bot]

This comment was marked as resolved.

@wolfgangwalther wolfgangwalther changed the base branch from haskell-updates to master September 6, 2025 12:42
@nixpkgs-ci nixpkgs-ci bot closed this Sep 6, 2025
@nixpkgs-ci nixpkgs-ci bot reopened this Sep 6, 2025
@github-actions github-actions bot dismissed their stale review September 6, 2025 12:43

All good now, thank you!

Copy link
Contributor

@wolfgangwalther wolfgangwalther left a comment

Choose a reason for hiding this comment

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

Added the alias. The rebase was trivial with a single simple conflict to resolve. This should be good to go.

This affects haskelPackages.mkDerivation, ghcWithPackages and
hoogleWithPackages which means that it is not possible to re-introduce
a ghcjs derivation downstream and create a ghcjs package set with an up
to date Nixpkgs.
@sternenseemann sternenseemann merged commit 62a276d into NixOS:master Sep 6, 2025
28 of 31 checks passed
@sternenseemann sternenseemann deleted the ghcjs-remove branch September 6, 2025 13:08
@trofi
Copy link
Contributor

trofi commented Sep 9, 2025

Bisect says that 60dfb9b haskell.compiler.ghcjs: remove at 8.10.7 broke the eval of haskell.packages.ghc902Binary.apply-refact in master as:

$ nix build --no-link -f. haskell.packages.ghc902Binary.apply-refact
error: attribute 'apply-refact_0_9_3_0' missing
   at pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix:175:18:
      174|
      175|   apply-refact = self.apply-refact_0_9_3_0;
         |                  ^
      176|

Proposed possible change as:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: changelog This PR adds or changes release notes 8.has: documentation This PR adds or changes documentation 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.approvals: 2 This PR was reviewed and approved by two persons. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages.

6 participants