Skip to content

RFC: Put Arbitrary instances for Cabal types in their own package. #5682

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

Conversation

quasicomputational
Copy link
Contributor

This is with the intention of the new package,
cabal-quickcheck-instances, being the blessed location for these
orphans, as QuickCheck acquiring a Cabal dependency or vice-versa
would be unsuitable.

This reduces some duplication (some presumably deliberate, and some
apparently accidental) and then some drift between the versions of
these instances.

Due to #1575, some tests have had to move from the Cabal package to
cabal-install.


Please include the following checklist in your PR:

  • Patches conform to the coding conventions.
  • Any changes that could be relevant to users have been recorded in the changelog.
  • The documentation has been updated, if necessary.
  • If the change is docs-only, [ci skip] is used to avoid triggering the build bots.

Please also shortly describe how you tested your change. Bonus points for added tests!

haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 12, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "ca2ea6bd20d859e43dcd201d0345372b298f1873",
"tag":"linux-7.6.3"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 12, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "ca2ea6bd20d859e43dcd201d0345372b298f1873",
"tag":"linux-7.8.4"
}
@hvr
Copy link
Member

hvr commented Nov 12, 2018

So this is strictly a local/internal package NOT intended to be released to Hackage, right?

@quasicomputational
Copy link
Contributor Author

No, this is with the intention of it being on Hackage, since others (me, for one) would like to have these instances and, if there are going to be orphans, a blessed package for them is the least worst option. If we don't publish the package, this probably isn't worth the fuss of doing.

@phadej
Copy link
Collaborator

phadej commented Nov 13, 2018

There are tests in Cabal which depends on this instances. Before we have per-component solving, I see this as blocked.

The tests should be inside Cabal package. cabal-install test-suite is too "far"; and developer experience: increases feedback loop too much.

👎


Having a package which shares the sources with Cabal (a bit like aeson and attoparsec-iso8601 could work).

@23Skidoo
Copy link
Member

IMO the existence of cabal.project makes the argument for moving all test suites to a single separate package more convincing.

@phadej
Copy link
Collaborator

phadej commented Nov 13, 2018

FWIW, there is Version: 3.3 2018-10-24 of SPDX license list. Try out how not nice it is to update now, when tests are mile away from Cabal.

@quasicomputational quasicomputational force-pushed the cabal-quickcheck-instances branch from ca2ea6b to f9535d7 Compare November 16, 2018 21:12
@quasicomputational
Copy link
Contributor Author

OK, I have pushed a v2 that shares its source between the new package and Cabal's test suite. (It also has the side benefit on actually working; I thought I'd tested the previous version, but travis disagreed...)

This is with the intention of the new package,
cabal-quickcheck-instances, being the blessed location for these
orphans, as QuickCheck acquiring a Cabal dependency or vice-versa
would be unsuitable.

This reduces some duplication (some presumably deliberate, and some
apparently accidental) and then some drift between the versions of
these instances.

Due to haskell#1575, the modules for the new package are shared with Cabal's
test-suite. This is less than ideal, but it's a workable hack.
@quasicomputational quasicomputational force-pushed the cabal-quickcheck-instances branch from f9535d7 to 8ac04b7 Compare November 17, 2018 12:39
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"linux-7.10.3"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"linux-8.2.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"linux-8.0.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"linux-8.4.4"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"linux-8.6.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"linux-8.4.4-fdebug-expensive-assertions"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "552490a265d415e1086b8b90525e5ab57bee8ef9",
"tag":"osx-8.0.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"linux-7.10.3"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"linux-8.0.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"linux-8.2.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"linux-8.4.4"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"linux-8.6.2"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"linux-8.4.4-fdebug-expensive-assertions"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"osx-7.10.3"
}
haskell-pushbot pushed a commit to haskell-pushbot/cabal-binaries that referenced this pull request Nov 17, 2018
"url":"pull/5682",
"account":"haskell",
"repo":"cabal",
"commit": "85716cc87aefe0ea8eb4d5364bd94d801a0a7193",
"tag":"osx-8.0.2"
}
@phadej
Copy link
Collaborator

phadej commented Feb 24, 2020

I'm trying to resurrect this in #6557 with a small first step.

@phadej
Copy link
Collaborator

phadej commented Jul 20, 2020

The goal is achieved. There is Cabal-QuickCheck now.

@phadej phadej closed this Jul 20, 2020
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.

4 participants