Skip to content

Backpack infdefinite error explain#11669

Merged
mergify[bot] merged 6 commits into
haskell:masterfrom
jappeace:backpack-infdefinite-error-explain
May 25, 2026
Merged

Backpack infdefinite error explain#11669
mergify[bot] merged 6 commits into
haskell:masterfrom
jappeace:backpack-infdefinite-error-explain

Conversation

@jappeace
Copy link
Copy Markdown
Collaborator

@jappeace jappeace commented Mar 27, 2026

Changes the error message from:

Error:
    The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used.
planned package consumer-0.1.0.0 is broken due to missing package
  framework-0.1.0.0+95RTb42ZWxa9J13cUStM0q

To

Error:
    The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used.
      planned package consumer-0.1.0.0
          is broken due to missing package
            framework-0.1.0.0 (has unfilled signature: App)
              The package is installed as indefinite.
              To use it, rebuild it in the same cabal project as the consumer so cabal can fill the signatures.

Hopefully it gives more guidence on what's going on to the user. I encountered this when trying to use backpack in a nix setup (for example jappeace-sloth/prrrrrrrrr#2) It keeps on wanting to build everything locally and I couldn't understand why. I still don't fully understand why it can't have partially filled modules upstream. It claims it's because of nix but I don't understand it.

It's not nix, I'm in a deep cabal hole, but it looks like I'm finding a way out of it (slowly). This is the final backpack PR for now, I'll investigate it more another time. Frankly I want (good) mobile support more then I want to work with backpack.

@jappeace jappeace force-pushed the backpack-infdefinite-error-explain branch 2 times, most recently from 9d64a70 to 6926b83 Compare March 27, 2026 22:43
@jappeace jappeace force-pushed the backpack-infdefinite-error-explain branch from 4864b7b to 1adc564 Compare April 10, 2026 18:51
Copy link
Copy Markdown
Collaborator

@zlonast zlonast left a comment

Choose a reason for hiding this comment

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

I think we still need to fix the backup's behavior until it's fully mature. Please continue fixing it so we can write more examples of how to use it :)

@jappeace
Copy link
Copy Markdown
Collaborator Author

@zlonast for now I stopped investigating backpack, but I'll probably get back to this in the future because I think it's such a cool system, I'm swamped with client work right now 😆
(asside the exact print stuff and my fulltime day job).

@jappeace jappeace added the merge me Tell Mergify Bot to merge label May 21, 2026
@mergify mergify Bot added ready and waiting Mergify is waiting out the cooldown period merge delay passed Applied (usually by Mergify) when PR approved and received no updates for 2 days queued labels May 21, 2026
@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 23, 2026

Merge Queue Status

This pull request spent 1 hour 16 minutes 12 seconds in the queue, including 1 hour 5 minutes 31 seconds running CI.

Waiting for any of
  • check-neutral = Validate post job
  • check-skipped = Validate post job
  • check-success = Validate post job
All conditions
  • any of [🛡 GitHub branch protection]:
    • check-neutral = Validate post job
    • check-skipped = Validate post job
    • check-success = Validate post job
  • #approved-reviews-by >= 2 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = Doctest Cabal
    • check-neutral = Doctest Cabal
    • check-skipped = Doctest Cabal
  • any of [🛡 GitHub branch protection]:
    • check-success = Meta checks
    • check-neutral = Meta checks
    • check-skipped = Meta checks
  • any of [🛡 GitHub branch protection]:
    • check-success = docs/readthedocs.org:cabal
    • check-neutral = docs/readthedocs.org:cabal
    • check-skipped = docs/readthedocs.org:cabal
  • any of [🛡 GitHub branch protection]:
    • check-success = fourmolu
    • check-neutral = fourmolu
    • check-skipped = fourmolu
  • any of [🛡 GitHub branch protection]:
    • check-success = hlint
    • check-neutral = hlint
    • check-skipped = hlint
  • any of [🛡 GitHub branch protection]:
    • check-success = Bootstrap post job
    • check-neutral = Bootstrap post job
    • check-skipped = Bootstrap post job
  • any of [🛡 GitHub branch protection]:
    • check-success = whitespace
    • check-neutral = whitespace
    • check-skipped = whitespace
  • any of [🛡 GitHub branch protection]:
    • check-success = Check sdist post job
    • check-neutral = Check sdist post job
    • check-skipped = Check sdist post job
  • any of [🛡 GitHub branch protection]:
    • check-success = Changelogs
    • check-neutral = Changelogs
    • check-skipped = Changelogs

Reason

The merge conditions cannot be satisfied due to failing checks

Failing checks:

Hint

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio queue comment.

mergify Bot added a commit that referenced this pull request May 23, 2026
@mergify mergify Bot added dequeued and removed queued labels May 23, 2026
@zlonast
Copy link
Copy Markdown
Collaborator

zlonast commented May 24, 2026

Hi @jappeace, can you squash the commits and rebase?

@ulysses4ever
Copy link
Copy Markdown
Collaborator

Squashing can be done automatically on merge, you just need to use another label: squash+merge instead of merge me.

Rebased can be done either via the bot (a bit flaky) or with GitHub UI (pretty reliable).

In sum, you shouldn't need PR author''s help with these actions @zlonast

@zlonast zlonast added squash+merge me Tell Mergify Bot to squash-merge and removed merge me Tell Mergify Bot to merge labels May 24, 2026
jappeace-sloth and others added 6 commits May 24, 2026 23:46
```
Error:
    The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used.
planned package consumer-0.1.0.0 is broken due to missing package
  framework-0.1.0.0+95RTb42ZWxa9J13cUStM0q
````

To

```
Error:
    The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used.
      planned package consumer-0.1.0.0
          is broken due to missing package
            framework-0.1.0.0 (has unfilled signature: App)
              The package is installed as indefinite.
              To use it, rebuild it in the same cabal project as the consumer so cabal can fill the signatures.
```

Hopefully it gives more guidence on what's going on to the user. I encountered this when trying to use backpack in a nix setup (for example jappeace-sloth/prrrrrrrrr#2) It keeps on wanting to build everything locally and I couldn't understand why. I still don't fully understand why it can't have partially filled modules upstream. It claims it's because of nix but I don't understand it.
Add missing expected output file for cabal variant of Backpack Fail5 test

The setupAndCabalTest function runs the test twice: once with setup and
once with cabal. The setup variant uses setup-external-fail.out, but the
cabal variant needs setup-external-fail.cabal.out which was missing,
causing the test to expect empty output and fail.
@zlonast zlonast force-pushed the backpack-infdefinite-error-explain branch from eebc462 to f2a7ebb Compare May 24, 2026 20:46
@mergify mergify Bot added queued and removed dequeued labels May 24, 2026
@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 24, 2026

Merge Queue Status

This pull request spent 1 hour 55 minutes 1 second in the queue, including 1 hour 43 minutes 11 seconds running CI.

Required conditions to merge
  • #approved-reviews-by >= 2 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = Doctest Cabal
    • check-neutral = Doctest Cabal
    • check-skipped = Doctest Cabal
  • any of [🛡 GitHub branch protection]:
    • check-success = Meta checks
    • check-neutral = Meta checks
    • check-skipped = Meta checks
  • any of [🛡 GitHub branch protection]:
    • check-success = docs/readthedocs.org:cabal
    • check-neutral = docs/readthedocs.org:cabal
    • check-skipped = docs/readthedocs.org:cabal
  • any of [🛡 GitHub branch protection]:
    • check-success = Validate post job
    • check-neutral = Validate post job
    • check-skipped = Validate post job
  • any of [🛡 GitHub branch protection]:
    • check-success = fourmolu
    • check-neutral = fourmolu
    • check-skipped = fourmolu
  • any of [🛡 GitHub branch protection]:
    • check-success = hlint
    • check-neutral = hlint
    • check-skipped = hlint
  • any of [🛡 GitHub branch protection]:
    • check-success = Bootstrap post job
    • check-neutral = Bootstrap post job
    • check-skipped = Bootstrap post job
  • any of [🛡 GitHub branch protection]:
    • check-success = whitespace
    • check-neutral = whitespace
    • check-skipped = whitespace
  • any of [🛡 GitHub branch protection]:
    • check-success = Check sdist post job
    • check-neutral = Check sdist post job
    • check-skipped = Check sdist post job
  • any of [🛡 GitHub branch protection]:
    • check-success = Changelogs
    • check-neutral = Changelogs
    • check-skipped = Changelogs

mergify Bot added a commit that referenced this pull request May 24, 2026
@mergify mergify Bot merged commit 0a8508e into haskell:master May 25, 2026
63 of 64 checks passed
@mergify mergify Bot removed the queued label May 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge delay passed Applied (usually by Mergify) when PR approved and received no updates for 2 days ready and waiting Mergify is waiting out the cooldown period squash+merge me Tell Mergify Bot to squash-merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants