-
Notifications
You must be signed in to change notification settings - Fork 522
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
breaking change made in minor version #972
Comments
Rust libraries typically avoid this conflict between a desire to add options and breaking changes by employing the builder pattern. My suggestion is that the |
Hi @robjtede thanks for the feedback. We've been focused on the CLI Hurl binary without given a lot of attention to the public apis for our crates. As a consequence, Hurl is not well designed to be use as a library as of today. We change our public functions without thinking a lot between releases (for instance, the main function What do you advise, knowing that we're want to be able to change our code without much restriction? (maybe increment major version for each Hurl release, I see that ripgrep is at version 13 for instance) Just by curiosity, do you have any project that use Hurl as a library that you can share? |
Fair, I do believe there have been breaks before. The thing is, you'll find most Cargo users are very much used to and expect crate authors to respect semver if they are usable as libraries.
Splitting the crate up and having a
You also could just increment the major versions like ripgrep does; I don't think there's anything particularly wrong with that approach.
Sadly no, we've integrated it into an internal tool at work that can run all sorts of useful routines for our specific system during development. At a high level, it's a pretty dumb passthrough with some pre-set context values, some templating possibilities using Tera (so they tell me), glob file selection, and nicer printed output formatting for multi-test file runs. |
Hi @robjtede just for your information, we've added a check in our CI to detect major breaking changes. Actually, the next version of Hurl will be a new major one (2.0.0). I will try to look into the builder pattern as suggested to minimise change when we add options. |
In v1.8.0,
RunnerOptions
added 3 new public fields related to retries, meaning that dependents of the hurl crate using the typical stylehurl = "1"
orhurl = "1.7"
in their project started getting build failures today.other changes to
EntryResult
were also breaking:The text was updated successfully, but these errors were encountered: