[breaking] move BenchmarkTools.jl to a package extension#2982
Conversation
This is a breaking change because it requires the user to install and load BenchmarkTools.jl. We justify releasing it in a minor release of MathOptInterface because we assess that there are very few users of it, and because it should be used only during package development by advanced users. We reserve the right to revert this commit in a future release of MOI if it causes problems in the ecosystem.
|
Merging so I can rebase #2967 which will have some conflicts. There's no rush to tag a new version once this is merged. |
|
Why not bump the major if it is theoretically breaking? edit: To elaborate my point a little bit: developers are a bit too scared to bump the major number. From my point of view, if you are aware that something is breaking you should bump the major, that's a feature of SemVer, that's not something to be scared of. |
|
See https://www.youtube.com/watch?v=M31xoZGyj9w&t=2535s See also the discussion in #2728, and #2180. I am not going to release MathOptInterface@2.0, almost without exception. I'd rather live for 10 years with some annoying parts of MOI than release a breaking change. Changing from v1 to v2 just because of BenchmarkTools requires us to change the compat bounds of 195 direct dependencies. That's a massive ecosystem cost, and it's why my starting point is "no breaking changes". We discussed that removing BenchmarkTools is perhaps the only exception we will ever make to this because:
|
This is a breaking change because it requires the user to install and load BenchmarkTools.jl.
We justify releasing it in a minor release of MathOptInterface because we assess that there are very few users of it, and because it should be used only during package development by advanced users.
We reserve the right to revert this commit in a future release of MOI if it causes problems in the ecosystem.
Closes #2728