There is a newer version of the record available.

Published September 20, 2025 | Version v0.0.7
Software Open

PyJobShop

Description

This release introduces two big features: optional tasks and break interruptions!

Highlights

  • You can now schedule with optional tasks. This is useful when there are multiple processing plans, each of which have different constraints or requirements. Tasks can be made optional by enabling the Task.optional argument. We also introduced three new constraints: SelectAllOrNone, SelectExactlyOne, and SelectAtLeastOne. These can be used to create selection logic in your problem. Check out this notebook to get started with optional tasks.

  • Tasks can now be interrupted by breaks by enabling Task.allow_breaks. This allows scheduling long-running tasks that have to cross multiple break periods. We already released resource breaks in v0.0.5, but tasks were not allowed to be scheduled across breaks (this remains to be the default). Check out this notebook to get started with resource breaks.

  • Speed improvements: building large-scale models should be up to 10x faster due to #377, where we simplified the model construction logic.

Breaking changes

  • Task.fixed_duration is renamed to Task.allow_idle with inverted logic to align with the new Task.allow_breaks field - users must rename the field and flip all boolean values.

What's Changed

  • Minor updates example notebooks by @JoostBerkhout in https://github.com/PyJobShop/PyJobShop/pull/358
  • Rename Solver to CPModel by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/364
  • Improve interaction between mode and assignments by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/377
  • Optional tasks by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/269
  • Strip notebook output by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/378
  • ProblemData equality comparison methods by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/379
  • Non-renewable resource breaks by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/381
  • Improve examples and add mode-dependent example by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/331
  • Tasks with break interruptions by @leonlan in https://github.com/PyJobShop/PyJobShop/pull/370

Full Changelog: https://github.com/PyJobShop/PyJobShop/compare/v0.0.6...v0.0.7

Notes

If you use this software, please cite it using the following metadata.

Files

PyJobShop/PyJobShop-v0.0.7.zip

Files (404.3 kB)

Name Size Download all
md5:66a701dcc2dcffa3b10d0dfec965ca03
404.3 kB Preview Download

Additional details

Related works