Skip to content
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

Split (or merge) the library? #69

Open
AlexeyRaga opened this issue Jul 15, 2022 · 5 comments
Open

Split (or merge) the library? #69

AlexeyRaga opened this issue Jul 15, 2022 · 5 comments

Comments

@AlexeyRaga
Copy link
Contributor

It looks like the library consists of two parts:

  1. A set of useful extensions for Hedgehog. These are all these sorted, noNull, shuffle, uri generators and operations on them
  2. The auto-generating part (heavy reflection, AutoGenConfig, GenX.auto, etc.)

These parts do not seem to depend on each other.

The questions are:

  • Should we create another library for useful Gen/Range combinators and constructors? Some of them may even go to HH itself.
  • Is the autogen part still "experimental"? I understand why we may not want to put it into HH itself. But maybe it is stable/useful enough so that something like Hedgehog.Autogen can be born as its own library?
@TysonMN
Copy link
Member

TysonMN commented Jul 15, 2022

This has been discussed over the years in hedgehogqa/fsharp-hedgehog#182. One big change since the last comment on that issue is that I am now the lead maintainer of both projects.

My preference is to merge F# Hedgehog Experimental into F# Hedgehog.

Would you like to contribute a PR for that?

@AlexeyRaga
Copy link
Contributor Author

Maybe. I will see if I can make time for it, but I cannot promise.
Let's see what I can do.

@AlexeyRaga AlexeyRaga changed the title Split the library? Split (or merge) the library? Jul 24, 2022
@moodmosaic
Copy link
Member

My preference is to merge F# Hedgehog Experimental into F# Hedgehog.

👍 I believe it's a good choice - even though my opinion is still the same as in 2019 - it'll make Hedgehog.Xunit depend only on Hedgehog, for example. And Hedgehog.Experimental users can just add/install Hedgehog.

Perhaps one thing I'd consider is making this move explicit, e.g. either keeping everything under GenX, or moving everything under Gen but under its own namespace. Of course, @TysonMN will have the final word.

@moodmosaic
Copy link
Member

moodmosaic commented Aug 8, 2022

Hmm... If the merge happens, fsharp-hedgehog will take an extra dependency, TypeShape. Just one more thing to consider.

@cmeeren
Copy link
Collaborator

cmeeren commented Dec 6, 2022

Possibly relevant: ploeh/ploeh.github.com#855 (comment)

Regarding TypeShape: It is used for the auto-generator. It is likely possible to write the generator without TypeShape. Not sure how much work that'd be, though.

In any case, since Hedgehog is used for test projects, not production projects, I'm personally not concerned about the dependency.

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

No branches or pull requests

4 participants