Skip to content

changes to tested-with field aren't trivial and, hence, are allowed#1506

Closed
ulysses4ever wants to merge 1 commit into
haskell:masterfrom
ulysses4ever:patch-4
Closed

changes to tested-with field aren't trivial and, hence, are allowed#1506
ulysses4ever wants to merge 1 commit into
haskell:masterfrom
ulysses4ever:patch-4

Conversation

@ulysses4ever

Copy link
Copy Markdown
Contributor

fix #1505, see explanation there

@leana8959 leana8959 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Seems reasonable to me 👍

@gbaz

gbaz commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

I believe that the issue in #583 was described too abruptly, and the fix made in #598 was the intended behavior. before, hackage rejected files that had a different tested-with as revisions, which broke a workflow that changed that.

now, hackage allows different tested-with as long as it is not the only change made.

i.e. it still prevents a revision of a file that just modifies tested-with, and I think that was by design. On the other hand, I don't think it matters that much to prevent this, except to prevent abuse, which is unlikely (and if it occurs we can revert or just yell at the person). In which case this simplifies things.

So that said @ulysses4ever what's your use case here? do you intend to frequently update cabal files whenever packages are tested with newer ghcs?

@ulysses4ever

Copy link
Copy Markdown
Contributor Author

@gbaz thank you for the context that I missed. My use case is, indeed, to be able to say that my package supports a new GHC without making a release that otherwise isn't required. I'm not sure what "frequently" could mean here but at most it will be as frequent as new GHC releases. Of course, in practice we do actually make releases once in a while, so it will be less frequent than GHC releases in practice.

@gbaz

gbaz commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Since each revision has a long-term effect on the size of the index-01 tarball, I think the intent was to not allow this. I'm not sure where I fall on this issue, but its worth thinking through.

@gbaz

gbaz commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Arguably the (eventual) right design would be to have something like "tested with" but that was not part of the cabal file and instead something that could be modified just in the hackage server store, so without the unfortunate knock-on effects...

On the other hand, I think the amount of people who will be doing this sort of revision will be negligible in the long run, and the ultimate effect on tarball size small.

@ulysses4ever

Copy link
Copy Markdown
Contributor Author

Having it as a part of hackage-server metadata sounds reasonable at first but then we get two pieces of data with the same semantics that will always be divergent. Kinda like what we have with the notion of maintainer, which has produced a lot of confusion. I'd prefer to avoid repeating this mistake.

@ulysses4ever

Copy link
Copy Markdown
Contributor Author

Since each revision has a long-term effect on the size of the index-01 tarball, I think the intent was to not allow this.

What are the alternatives? I could upload a full-fledged release changing only this field — this is probably even less desirable in terms of the above mentioned size effect. Or is this the official position of Hackage admins that, in the interest of saving the bandwidth, we should abstain from such inconsequential modifications? I personally value this field a lot, because, if maintained properly, it helps me get started with a package. It is a piece of documentation that improves quality of live. It’d be sad to see an explicit discouragement from Hackage to maintain this piece of documentation. But I can live with it. If this is the conclusion, I can close the pr and the issue.

@phadej

phadej commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Personally, so far, if I updated tested-with some other field has also changed, most obviously build-depends. If we assume if there would be a time where a new GHC is released without any (major) library version changes (i.e. base is decoupled), then I'd assume that my library would just work.

tested-with is a weird field. It's informative, not normative. haskell-ci "abuses" it, cause it exists and is handy, but still, the field is only informative. haskell-ci could made work without tested-with existing at all.

I'd actively discourage changing just tested-with even if were allowed. EDIT: in particular revisions trash build caches, the less revisions we can have, the better.

@ulysses4ever

Copy link
Copy Markdown
Contributor Author

all right, thanks for the input. I guess, we shelve it then.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow changing tested-with in revisions (redux)

5 participants