nick8325 / nick8325/quickcheck
The "Hacking Agenda"
Open
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 790
- Forks
- 130
- Avg merge
- 16h 41m
- Merged PRs (30d)
- 2
Description
Involving @koengit @nick8325 @UlfNorell and @Rewbert:
Instances
- Arbitrary instances for everything in base (and other qc dependencies)
- Super clever TH magic to find all the types and generate properties
- Enumerate all modules in base and get all the data types
- Minimal: type check
arbitrary @TheType - Better: Monomorphise and generate a properties to test the arbitrary instance
- Manually exclude modules/types (to avoid writing clever rules for which
types to support)
- See CollectDataTypes.hs and RunCollectDataTypes.hs.
Parallel fork
-
Robert gives a nice presentation of what's going on
-
We should decide on some design principles:
- we care only about locally minimal counterexamples
- we want the features module
- we don't care about parallel quickcheck exploring sizes
deterministically - we do care about sizes being explored in order small to big
API for test runners
- Tasty and HSpec install their own callbacks
- Can we make PRs for them using Robert's new API?
- Robert has the code, but needs some version juggling to work with different
versions of QuickCheck.
Cleanup
- Drop ghc 7 support
- Clean up flag mess in cabal file
- Add MicroHs support
- Lennart: "needs random numbers, this is hard!"
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read CollectDataTypes.hs and RunCollectDataTypes.hs first, then review the QuickCheck API compatibility needs for Tasty and HSpec. The agenda also lists design principles, Cabal cleanup, GHC 7 removal, and MicroHs support, but it does not define a single scope or completion condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100