I think we need a more structured system for adding new tests to MOI.Test.
- Never modify an existing test
- Unless it is incorrect => bugfix
- Process for adding a new test
- The current release is
v1.1.1.
- A new test
test_new_feature is added
- Next release will be
v1.1.2
- By default,
MOI.Test.runtests does not run this test.
v1.2.0 is released.
- By default,
MOI.Test.runtests runs the test warns if it fails, but does not error
v1.3.0 is released
- By default,
MOI.Test.runtests runs the test and errors if it fails
We also need a mechanism for solver authors to always run the latest tests (opt-in):
MOI.Test.runtests(model, config; include_new_tests::Bool = false)
This would always run all tests and error on failure.
The alternative is that every new test is a minor release, and tests might break between releases.
Thoughts?
I think we need a more structured system for adding new tests to
MOI.Test.v1.1.1.test_new_featureis addedv1.1.2MOI.Test.runtestsdoes not run this test.v1.2.0is released.MOI.Test.runtestsruns the test warns if it fails, but does not errorv1.3.0is releasedMOI.Test.runtestsruns the test and errors if it failsWe also need a mechanism for solver authors to always run the latest tests (opt-in):
This would always run all tests and error on failure.
The alternative is that every new test is a minor release, and tests might break between releases.
Thoughts?