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

Prepare for Dune integration #323

Closed
5 of 6 tasks
aantron opened this issue May 6, 2020 · 16 comments · Fixed by #331
Closed
5 of 6 tasks

Prepare for Dune integration #323

aantron opened this issue May 6, 2020 · 16 comments · Fixed by #331
Assignees
Labels
Milestone

Comments

@aantron
Copy link
Owner

aantron commented May 6, 2020

ocaml/dune#57 has an initial solution. Among other issues, coverage output and/or source code are likely to appear in _build/coverage rather than _build/default, so the Dune integration on the Bisect end should be slightly adjusted to search for files in directories other than _build/default.

Outstanding upstream issues:

Then:

  • Adjust default coverage search paths
  • Update Dune instructions
  • Deprecate --conditional
@aantron aantron added this to the 2.4.1 milestone May 6, 2020
@aantron aantron removed this from the 2.4.1 milestone May 10, 2020
@aantron aantron changed the title Test the current state of the Dune integration Prepare for Dune integration May 10, 2020
@hannesm
Copy link

hannesm commented Jul 8, 2020

Hey @aantron, I was interested in this (and it looks like dune 2.6.0 with that feature was released some time ago). What is the status of bisect and dune (an update to the README and instructions would be highly welcome). Thanks :)

@aantron
Copy link
Owner Author

aantron commented Jul 8, 2020

@hannesm It is currently waiting for the release of ocaml/dune#3535 :)

@hannesm
Copy link

hannesm commented Jul 8, 2020

thanks @aantron, I was not aware of that PR -- looking forward that it finally is getting there :)

@hannesm
Copy link

hannesm commented Aug 19, 2020

friendly ping; AFAICT that has been merged and is part of the dune 2.7.0 release merged recently to opam-repository. thanks :)

@undu
Copy link
Contributor

undu commented Sep 18, 2020

I've gotten the instrumentation integration working, but it requires dune 2.7. What are the opinions regarding this new requirement to enable this integration?

@aantron
Copy link
Owner Author

aantron commented Sep 20, 2020

If the change is backwards-compatible, in that the existing older integration method still works, we can ask users to require "dune" >= 2.7 in the Bisect README. As I recall, we used to do this for earlier versions of Dune for other reasons. @undu, is this what you mean?

@undu
Copy link
Contributor

undu commented Sep 20, 2020

Yes, that's what I meant.

While the previous integration still works, the new integration requires ppx_bisect to be built using at least dune 2.7.0, it doesn't matter if the new or the old integration is used.

@aantron
Copy link
Owner Author

aantron commented Sep 21, 2020

Is there a change to the code of Bisect that requires Dune 2.7.0 even if the old integration is being used? If yes, then we have to require Dune 2.7.0 in Bisect. If not, we can ask the user to require Dune at least 2.7.0 in the README if they are using the new integration. If that becomes a pain, we can still move the constraint up to Bisect later. However, in the past, it has seemed to work well, because we just put the Dune dependency into the example of how to depend on Bisect as well, i.e.

depends: [
  "bisect_ppx" {dev & >= "2.5.0"}
  "dune" {>= "2.7.0"}
]

@undu
Copy link
Contributor

undu commented Sep 21, 2020

Is there a change to the code of Bisect that requires Dune 2.7.0 even if the old integration is being used?

Yes. It's the field in the ppx's dune that marks it as instrumentation.

(instrumentation.backend (ppx bisect_ppx))

@aantron
Copy link
Owner Author

aantron commented Sep 21, 2020

Ah right, then constraint in Bisect's opam it is.

@aantron
Copy link
Owner Author

aantron commented Oct 3, 2020

@undu I've pulled your commits into a PR (#331). I'll finish it off with some testing and updating the README. Thanks for getting most of the change done!

@undu
Copy link
Contributor

undu commented Oct 3, 2020

Thanks for continuing the work! I feel bad I dropped the ball there.

@aantron
Copy link
Owner Author

aantron commented Oct 10, 2020

Ok, this is now in master. I'll finish editing the README (needed to merge without it to break dependency cycles with outside example projects), then solve some of the outstanding bugs, and then release this in Bisect_ppx 2.5.0. Thanks again, @undu.

@hannesm
Copy link

hannesm commented Oct 17, 2020

@aantron (and @undu) thanks for your work on this. it would be great to get the dune support released to opam-repository, anything I can do to help getting there? I saw the README was updated with the new instructions...

@aantron
Copy link
Owner Author

aantron commented Oct 17, 2020

@hannesm I just need to get around to fixing some of the other issues, and then do the release. It's definitely coming up :)

@aantron
Copy link
Owner Author

aantron commented Oct 21, 2020

This is now in opam (and npm) in Bisect_ppx 2.5.0. I've updated all the starter repos and the README.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants