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

release 0.17.0 #235

Merged
merged 3 commits into from
Jun 8, 2024
Merged

release 0.17.0 #235

merged 3 commits into from
Jun 8, 2024

Conversation

YeungOnion
Copy link
Contributor

I think this is okay for getting some more users back.

Open to feedback on the changelog, I used release-plz to generate the log for this release and made edits for further format

Remaining active work that is related to CI will be updated and likely minor version releases to [crates.io], included but not limited to:

  • code coverage reports. Note that I dropped the codecov badge on the readme for this release since it's inaccurate.
  • testing NIST data

@YeungOnion
Copy link
Contributor Author

Noting that at some point (#209) @FreezyLemon mentioned the idea of introducing MSRV to this project; I planned to delay adding that policy to the release that introduces that change that motivated it since this release is focused to get the project back on its feet.

@YeungOnion
Copy link
Contributor Author

I got some advice that if we're going to introduce the msrv may as well not wait on it.

I did some testing with cargo-hack and found that cargo check fails up through 1.60 on nalgebra. Note that 1.61 will also suffice for #209's proposed changes regarding.

I'll make these changes now.

@FreezyLemon
Copy link
Contributor

Any MSRV should really be checked in CI, since it's very easy to accidentally break it while updating dependencies. It would also be nice to document it somewhere, e.g. at the bottom of the README (including when and for what reasons it will be changed, and how the crate version will reflect MSRV changes)

@YeungOnion
Copy link
Contributor Author

Seems like I only checked the lib in my local testing, our benches rely on criterion relying on rayon which has rust-version = 1.64

I'm okay excluding those benchmarks from the package, but I've not found a way to split the dependencies for benchmarking apart from testing, unsure if this is possible.
@FreezyLemon Do you know a way around this other than making a separate crate for testing?

@FreezyLemon
Copy link
Contributor

Do you know a way around this other than making a separate crate for testing?

Another way of achieving this would be a crate feature that needs to be enabled for benchmarking, but it's not great for developer ergonomics.

It's also possible to just disable the default features for criterion which should remove rayon and possibly reduces the MSRV.

@YeungOnion
Copy link
Contributor Author

I can get it down to 1.65 with changing the features criterion uses and keeping the version pinned, which aligns around the 0.16 statrs release. However, my opposition is that the MSRV is higher than what the statrs lib itself needs, so I find it a little misguiding. I would clearly mention this in the docs.

I don't like the option to gate benches with a feature, but given the below reasons, I think we could get by.

  • the features benched aren't actively being developed it may not impede any developer
  • benchmarks should be reported with version compiled with
  • an MSRV higher than what our lib needs could remove it from consideration, only a few minor versions (5 months) newer.

Thoughts?

@YeungOnion
Copy link
Contributor Author

made a post on the forums to get others' input if this would be unexpected.

@FreezyLemon
Copy link
Contributor

FreezyLemon commented Jun 7, 2024

I honestly thought that disabling the criterion default features would solve the problem. The benches feature doesn't feel great... I'd honestly just set the expectation that the MSRV is meant for crate users (cargo add statrs) and not for crate devs (git clone <statrs>) and just be done with it. dev-dependencies are not something to consider for normal crate usage, and any dev should have a recent Rust version anyways.

EDIT: The MSRV discussion has come to a point where it should probably be moved to its own thing.

@YeungOnion
Copy link
Contributor Author

I agree, and it makes me wonder if it's better to

  • hold off on an MSRV
  • disable/remove benches to make sure that CI is checking behavior that a lib user would see
  • have CI only check MSRV only for the lib target, not its tests (or benchmarks)

I'm leaning toward the last option, but it's potentially hiding a source of inconsistency in test results.

doc: remove codecov badge before release to crates.io
  badge is pending its correctness, see PR #229 for progress
@FreezyLemon
Copy link
Contributor

FreezyLemon commented Jun 7, 2024

Holding off for this release doesn't seem like too big of a problem IMO. That would allow some time to discuss this in a separate issue etc.

If you do want to include it for this release, I'd prefer option three as well. As I said above, dev-dependencies shouldn't be of concern to a crate user, and it should be fine to have a higher version prerequisite for contributors

@YeungOnion
Copy link
Contributor Author

Think I'll hold off on it. Since inclusion of it is only policy, I imagine it would only change the fix release version.

@YeungOnion YeungOnion merged commit 09939ce into master Jun 8, 2024
5 checks passed
@YeungOnion YeungOnion deleted the chores branch June 8, 2024 04:06
@YeungOnion YeungOnion mentioned this pull request Jun 8, 2024
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.

2 participants