Skip to content

Conversation

odow
Copy link
Member

@odow odow commented Oct 7, 2025

Basic

  • version field of Project.toml has been updated
    - If a breaking change, increment the MAJOR field and reset others to 0
    - If adding new features, increment the MINOR field and reset PATCH to 0
    - If adding bug fixes or documentation changes, increment the PATCH field

Documentation

  • Add a new entry to docs/src/changelog.md, following existing style

Tests

@odow
Copy link
Member Author

odow commented Oct 8, 2025

The Juniper and Pavito failures are super interesting and they are caused by #2857

  • They have z --> {f(x) in S}, z in {0, 1}
  • They have an outer solver that covers z in {0, 1}. They pass z --> {f(x) in S}, z == a to the inner solver. The inner solver says, sure, I know how to reformulate --> assuming z is binary. But z is fixed and isn't {0, 1}. The reformulation is still valid though, which is why the tests were passing before.

Maybe we should revert #2857 and add a check at the JuMP level?

Or maybe the bridge needs to say: I added a ZeroOne constraint even though I didn't just so we validate that an indicator can't be bridged by a continuous solver.

Or maybe we need to convert the error() AddConstraintNotAllowed.

@odow
Copy link
Member Author

odow commented Oct 9, 2025

@odow
Copy link
Member Author

odow commented Oct 9, 2025

@odow odow requested a review from blegat October 9, 2025 03:40
@odow
Copy link
Member Author

odow commented Oct 13, 2025

Hearing no objections?

@blegat
Copy link
Member

blegat commented Oct 14, 2025

The Juniper and Pavito failures are super interesting and they are caused by #2857

* They have `z --> {f(x) in S}, z in {0, 1}`

* They have an outer solver that covers `z in {0, 1}`. They pass `z --> {f(x) in S}, z == a` to the inner solver. The inner solver says, sure, I know how to reformulate `-->` assuming `z` is binary. But `z` is fixed and isn't `{0, 1}`. The reformulation is still valid though, which is why the tests were passing before.

Maybe we should revert #2857 and add a check at the JuMP level?

Or maybe the bridge needs to say: I added a ZeroOne constraint even though I didn't just so we validate that an indicator can't be bridged by a continuous solver.

Or maybe we need to convert the error() AddConstraintNotAllowed.

Pavito and Juniper shouldn't support Indicator constraints so that it's bridged before they pass it down. It doesn't make sense for them to pass down an indicator constraints to a non-MIP solver. It's not like there is a chance for these non-MIP solvers to support indicator constraints.

@blegat
Copy link
Member

blegat commented Oct 14, 2025

Maybe this should be fixed before we release ?

@odow
Copy link
Member Author

odow commented Oct 14, 2025

Already done in #2868

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants