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

Setup uri-bench to build benchmarking code. #166

Merged
merged 3 commits into from
Mar 20, 2023

Conversation

tmcgilchrist
Copy link
Member

@tmcgilchrist tmcgilchrist commented Jan 25, 2023

Fix for #165

  • 5219462 adds a new package uri-bench that includes the benchmarking code and dependencies.
  • ca5f72a attaches the fuzzer tests to uri package, note they also rely on the deprecated uri-re package.
  • 370c6d4 updates the GitHub Actions tests. Note it restricts to OCaml versions 4.08 - 5.0 due to test dependencies not supporting earlier versions down to 4.04. Can versions before 4.08 be dropped from the opam files?

@torinnd
Copy link
Contributor

torinnd commented Mar 6, 2023

@tmcgilchrist was this closed intentionally? I think the CI issue is still present in master. If this was intentional, can you share more context on why this PR wasn't the right way forward?

@tmcgilchrist
Copy link
Member Author

tmcgilchrist commented Mar 6, 2023 via email

@avsm
Copy link
Member

avsm commented Mar 7, 2023

Why's a benchmarking package special (it's just an executable with extra dependencies), and why not publish it also to opam-repo? It would be useful to have benchmarking tools available quickly via opam as well, and as a separate package, it wouldn't really cause any additional friction to normal uri users.

@tmcgilchrist tmcgilchrist reopened this Mar 8, 2023
@tmcgilchrist
Copy link
Member Author

Why's a benchmarking package special .... ?

It's an artefact that is only interesting to developers of this package, so I don't see value in including it in opam-repository. My ideal setup is to have support for benchmark packages in opam similar to with-test and have that recognised in dune with a top level command. Like what cargo bench or cabal bench do for Rust and Haskell respectively. :-)

@avsm
Copy link
Member

avsm commented Mar 8, 2023

It's useful to have benchmarking executables also available via the package manager. They don't get in the way, and sometimes I just want to run quick tests across a couple of different compilers. Being able to opam search bench; opam install ... is fine for that sort of thing.

Or to put it another way -- I'd rather fix the CI in uri with a published uri-bench package, rather than block on some future changes to the semantics of dune-publish and friends :-)

@tmcgilchrist tmcgilchrist force-pushed the benchmark branch 3 times, most recently from 8de1621 to 7e01e04 Compare March 13, 2023 00:36
Use the lowest bound on crowbar (4.08) as the earliest supported OCaml
version.
@tmcgilchrist
Copy link
Member Author

@avsm updated the top comment and everything is building now. Please have a look

@tmcgilchrist tmcgilchrist requested a review from avsm March 20, 2023 22:24
@tmcgilchrist tmcgilchrist merged commit 4248b0f into mirage:master Mar 20, 2023
@tmcgilchrist tmcgilchrist deleted the benchmark branch March 20, 2023 22:25
avsm added a commit to avsm/opam-repository that referenced this pull request Apr 19, 2023
CHANGES:

* Add `Uri.Absolute_http`, an RFC9110-compliance specialization of a
  `Uri.t`. (mirage/ocaml-uri#164 mirage/ocaml-uri#162 @torinnd).
* Add a `uri-bench` package for the benchmarking dependencies in this
  repository (mirage/ocaml-uri#166 @tmcgilchrist).
kit-ty-kate pushed a commit to avsm/opam-repository that referenced this pull request Apr 26, 2023
CHANGES:

* Add `Uri.Absolute_http`, an RFC9110-compliance specialization of a
  `Uri.t`. (mirage/ocaml-uri#164 mirage/ocaml-uri#162 @torinnd).
* Add a `uri-bench` package for the benchmarking dependencies in this
  repository (mirage/ocaml-uri#166 @tmcgilchrist).
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.

3 participants