Description
Consider this scenario: there is a problem with one of your packages' bounds requiring trustee intervention, and a trustee duly revises the package description. At a later date, you want to revise the package for some other reason, and so you edit the pristine .cabal
file on your machine, test it does what you wanted, and then paste that in to the text entry and submit... and now the trustee's revision is lost, and whatever problem they solved with it is likely to recur.
#230 would help here in making it harder to lose revisions to this type of stealthy conflict, but it's not a total solution.
If you're uploading new revisions with a tool, then there could be a total technical solution: the tool can keep track of what the expected revision number is, and ask Hackage to refuse to apply the revision if that doesn't match (i.e., the same mechanism as HTTP's conditional requests, or Git's --force-with-lease
).
For the manual upload case, I think maybe requiring the user to acknowledge a warning if they weren't the last one to revise the package would be suitable?