Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

haskellPackages: update stackage and hackage #307204

Merged
merged 87 commits into from
May 15, 2024
Merged

haskellPackages: update stackage and hackage #307204

merged 87 commits into from
May 15, 2024

Conversation

sternenseemann
Copy link
Member

This Merge

This PR is the regular merge of the haskell-updates branch into master.

This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at cdepillabout/nix-haskell-updates-status.

We roughly aim to merge these haskell-updates PRs at least once every two weeks. See the @NixOS/haskell team calendar for who is currently in charge of this branch.

haskellPackages Workflow Summary

Our workflow is currently described in pkgs/development/haskell-modules/HACKING.md.

The short version is this:

  • We regularly update the Stackage and Hackage pins on haskell-updates (normally at the beginning of a merge window).
  • The community fixes builds of Haskell packages on that branch.
  • We aim at at least one merge of haskell-updates into master every two weeks.
  • We only do the merge if the mergeable job is succeeding on hydra.
  • If a maintained package is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!)

More information about Haskell packages in nixpkgs can be found in the nixpkgs manual.


This is the follow-up to #304640. Come to #haskell:nixos.org if you have any questions.

We'll want to (slowly) unify the source used by the different
derivations we use to build GHC. As a first step, use the same base
source for building GHC and all hadrian related packages. This is
achieved by wrapping the fetcher result in `srcOnly` to apply GHC
patches immediately.

To modify the patches (and source) used by GHC we now have a changed
overriding interface for >= 9.6:

```
oldGhc.override {
  ghcSrc = oldGhc.src.overrideAttrs (oldAttrs: {
    src = …;
    patches = …;
  });
}
```
This makes the hadrian expressions much simpler as we no longer need to
thread through extra arguments for special workarounds.
common-hadrian.nix decides in one place which patches we need and
directly applies them to the source used to build everything.
@sternenseemann
Copy link
Member Author

sternenseemann commented Apr 28, 2024

haskell-updates build report from hydra

evaluation 1805961 of nixpkgs commit f3fdad0 as of 2024-04-28 19:52 UTC

🔴 Branch not mergeable

  • No maintained job found.
  • mergeable jobset failed.

Build summary

Platform Failed ❌ DependencyFailed ❗ TimedOut ⌛🚫 Unfinished ⏳ Success ✅
aarch64-darwin 🍏 81 62 4 3 6202
aarch64-linux 📱 19 14 2 6379
x86_64-darwin 🍎 71 40 4 3 6239
x86_64-linux 🐧 10 13 1 6427

Maintained Linux packages with build failure

Maintained Linux packages with failed dependency

Maintained Darwin packages with build failure

8 job(s)

Maintained Darwin packages with failed dependency

96 job(s)

Unmaintained packages with build failure

102 job(s)

Unmaintained packages with failed dependency

139 job(s)

Top 50 broken packages, sorted by number of reverse dependencies

50 job(s)

gogol-core ⤴️ 184
haskell98 ⤴️ 152
failure ⤴️ 72
connection ⤴️ 56
enumerator ⤴️ 56
util ⤴️ 49
derive ⤴️ 48
system-fileio ⤴️ 45
web-routes ⤴️ 43
accelerate ⤴️ 42
syb-with-class ⤴️ 42
MonadCatchIO-transformers ⤴️ 41
TypeCompose ⤴️ 41
singletons-base ⤴️ 41
crypto-random ⤴️ 37
PrimitiveArray ⤴️ 35
rank1dynamic ⤴️ 33
dual ⤴️ 32
hsp ⤴️ 32
distributed-static ⤴️ 31
language-ecmascript ⤴️ 31
distributed-process ⤴️ 30
iteratee ⤴️ 29
composite-base ⤴️ 28
polysemy-time ⤴️ 28
polysemy-resume ⤴️ 27
polysemy-conc ⤴️ 26
regexpr ⤴️ 26
crypto-numbers ⤴️ 25
either-unwrap ⤴️ 25
HList ⤴️ 24
polysemy-log ⤴️ 24
web-routes-th ⤴️ 24
Crypto ⤴️ 22
crypto-pubkey ⤴️ 22
haskelldb ⤴️ 22
wxdirect ⤴️ 22
BiobaseTypes ⤴️ 21
alg ⤴️ 21
mmsyn2 ⤴️ 21
userid ⤴️ 21
wxc ⤴️ 21
biocore ⤴️ 20
reform ⤴️ 20
wxcore ⤴️ 20
attoparsec-enumerator ⤴️ 19
bytestring-show ⤴️ 19
cprng-aes ⤴️ 19
fay ⤴️ 19
harp ⤴️ 19

⤴️: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.

Report generated with maintainers/scripts/haskell/hydra-report.hs

trofi and others added 10 commits April 28, 2024 21:40
Without the change eval fails as:

    $ nix build --no-link -f. haskell.packages.ghcjs.stm
    error:
       … in the left operand of the update (//) operator
         at pkgs/development/haskell-modules/lib/compose.nix:40:7:
           39|     mkDerivation = drv: (args.mkDerivation drv).override f;
           40|   })) // {
             |       ^
           41|     overrideScope = scope: overrideCabal f (drv.overrideScope scope);

       error: attribute 'stm_2_5_3_0' missing
       at pkgs/development/haskell-modules/configuration-ghcjs.nix:29:21:
           28|   # ghcjs/ghcjs#676
           29|   stm = doJailbreak self.stm_2_5_3_0;
             |                     ^
           30|   exceptions = dontCheck self.exceptions_0_10_7;
       Did you mean stm_2_5_3_1?
haskellPackages.linux-namespaces: fix build in ghc < 9.6
haskellPackages.proto-lens-arbitrary: unmark broken
haskellPackages.cbor-tool: Unbroken
@phijor phijor mentioned this pull request May 1, 2024
13 tasks
github-actions bot and others added 3 commits May 12, 2024 00:14
This should give us back our maintained job in nixpkgs:haskell-updates.
I've chosen to limit the workaround to 9.6 since that's what we really
care about (for other versions we don't guarantee anything) and this way
users can use e.g. 9.4 if they need lambdabot on aarch64-linux. It would
theoretically be prudent to add a similar thing for 9.8 and 9.10, but
it's probably too likely to bitrot.
alexfmpe and others added 22 commits May 12, 2024 15:17
…eval

haskell.packages.ghcjs.stm: fix eval
haskellPackages.proto3-wire: unbreak
haskellPackages: fix build of SOP libraries
haskellPackages.hnix: build on 9.8
haskellPackages.nix-thunk: fix build and deps
 haskellPackages.aeson-gadt-th: fix build
This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
This commit has been generated by maintainers/scripts/haskell/mark-broken.sh based on
*evaluation [1806304](https://hydra.nixos.org/eval/1806304) of nixpkgs commit [e49079e](https://github.com/NixOS/nixpkgs/commits/e49079e5ca37db4f827dce83f8315e93dfc6371d) as of 2024-05-15 07:51 UTC*
from the haskell-updates jobset on hydra under https://hydra.nixos.org/jobset/nixpkgs/haskell-updates
Comment on lines 737 to +740
- changelog-d # failure in job https://hydra.nixos.org/build/253689337 at 2024-03-31
- changelog-d # failure in job https://hydra.nixos.org/build/255671571 at 2024-04-16
- changelog-d # failure in job https://hydra.nixos.org/build/257082502 at 2024-04-27
- changelog-d # failure in job https://hydra.nixos.org/build/259607598 at 2024-05-15
Copy link
Member

Choose a reason for hiding this comment

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

🤨

Copy link
Member

Choose a reason for hiding this comment

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

Oh, it's defined in non-hackage-packages.nix, so doesn't actually get marked broken.

@ncfavier ncfavier mentioned this pull request May 15, 2024
13 tasks
@ncfavier ncfavier merged commit c029b7f into master May 15, 2024
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.