Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
395 changes: 244 additions & 151 deletions Cargo.lock

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions drcp-format/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.1](https://github.com/consol-lab/pumpkin/compare/drcp-format-v0.3.0...drcp-format-v0.3.1) - 2026-02-10

### Features

- Improve parser speed ([#293](https://github.com/consol-lab/pumpkin/pull/293))

### Other

- Update rust edition to 2024 ([#311](https://github.com/consol-lab/pumpkin/pull/311))

## [0.3.0](https://github.com/ConSol-Lab/Pumpkin/compare/drcp-format-v0.2.1...drcp-format-v0.3.0) (2025-07-10)


Expand Down
2 changes: 1 addition & 1 deletion drcp-format/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "drcp-format"
version = "0.3.0"
version = "0.3.1"
description = "Parse and write DRCP and literal definition files."
license.workspace = true
authors.workspace = true
Expand Down
13 changes: 13 additions & 0 deletions fzn-rs-derive/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.1.0](https://github.com/consol-lab/pumpkin/releases/tag/fzn-rs-derive-v0.1.0) - 2026-02-10

### Added

- Introducing `fzn-rs`, a better FlatZinc parser that is easier to re-use across projects ([#238](https://github.com/consol-lab/pumpkin/pull/238))
13 changes: 13 additions & 0 deletions fzn-rs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.1.0](https://github.com/consol-lab/pumpkin/releases/tag/fzn-rs-v0.1.0) - 2026-02-10

### Added

- Introducing `fzn-rs`, a better FlatZinc parser that is easier to re-use across projects ([#238](https://github.com/consol-lab/pumpkin/pull/238))
14 changes: 14 additions & 0 deletions pumpkin-checker/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.1.0](https://github.com/consol-lab/pumpkin/releases/tag/pumpkin-checker-v0.1.0) - 2026-02-10

### Added

- Introduce the uncertified proof checker ([#328](https://github.com/consol-lab/pumpkin/pull/328))

8 changes: 4 additions & 4 deletions pumpkin-checker/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ license.workspace = true
authors.workspace = true

[dependencies]
pumpkin-core = { version = "0.2.2", path = "../pumpkin-crates/core/" }
pumpkin-checking = { version = "0.2.2", path = "../pumpkin-crates/checking/" }
pumpkin-propagators = { version = "0.2.2", path = "../pumpkin-crates/propagators/" }
pumpkin-core = { version = "0.3.0", path = "../pumpkin-crates/core/" }
pumpkin-checking = { version = "0.3.0", path = "../pumpkin-crates/checking/" }
pumpkin-propagators = { version = "0.3.0", path = "../pumpkin-crates/propagators/" }
anyhow = "1.0.99"
clap = { version = "4.5.47", features = ["derive"] }
drcp-format = { version = "0.3.0", path = "../drcp-format" }
drcp-format = { version = "0.3.1", path = "../drcp-format" }
flate2 = "1.1.2"
fzn-rs = { version = "0.1.0", path = "../fzn-rs" }
thiserror = "2.0.16"
Expand Down
13 changes: 13 additions & 0 deletions pumpkin-crates/checking/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.3.0](https://github.com/consol-lab/pumpkin/releases/tag/pumpkin-checking-v0.3.0) - 2026-02-10

### Added

- Introduced the `pumpkin-checking` crate.
2 changes: 1 addition & 1 deletion pumpkin-crates/checking/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-checking"
version = "0.2.2"
version = "0.3.0"
repository.workspace = true
edition.workspace = true
license.workspace = true
Expand Down
13 changes: 13 additions & 0 deletions pumpkin-crates/conflict-resolvers/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.3.0](https://github.com/consol-lab/pumpkin/releases/tag/pumpkin-conflict-resolvers-v0.3.0) - 2026-02-10

### Added

- Extract conflict resolvers and nogood minimisation into a separate crate ([#341](https://github.com/consol-lab/pumpkin/pull/341))
4 changes: 2 additions & 2 deletions pumpkin-crates/conflict-resolvers/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-conflict-resolvers"
version = "0.2.2"
version = "0.3.0"
repository.workspace = true
edition.workspace = true
license.workspace = true
Expand All @@ -11,4 +11,4 @@ description = "The conflict resolvers of the Pumpkin constraint programming solv
workspace = true

[dependencies]
pumpkin-core = { version = "0.2.2", path = "../core" }
pumpkin-core = { version = "0.3.0", path = "../core" }
13 changes: 13 additions & 0 deletions pumpkin-crates/constraints/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.3.0](https://github.com/consol-lab/pumpkin/releases/tag/pumpkin-constraints-v0.3.0) - 2026-02-10

### Added

- Extract propagators into separate crate ([#337](https://github.com/consol-lab/pumpkin/pull/337))
8 changes: 4 additions & 4 deletions pumpkin-crates/constraints/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-constraints"
version = "0.2.2"
version = "0.3.0"
repository.workspace = true
edition.workspace = true
license.workspace = true
Expand All @@ -11,11 +11,11 @@ description = "The constraints of the Pumpkin constraint programming solver."
workspace = true

[dependencies]
pumpkin-core = { version = "0.2.2", path = "../core" }
pumpkin-propagators = {version = "0.2.2", path="../propagators"}
pumpkin-core = { version = "0.3.0", path = "../core" }
pumpkin-propagators = { version = "0.3.0", path="../propagators"}

[dev-dependencies]
pumpkin-conflict-resolvers = {version = "0.2.2", path = "../conflict-resolvers/"}
pumpkin-conflict-resolvers = { version = "0.3.0", path = "../conflict-resolvers/"}

[features]
clap = ["pumpkin-core/clap", "pumpkin-propagators/clap"]
32 changes: 32 additions & 0 deletions pumpkin-crates/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
# Changelog

## [0.3.0](https://github.com/consol-lab/pumpkin/compare/pumpkin-core-v0.2.2...pumpkin-core-v0.3.0) - 2026-02-10

### Added

- Propagator for the hypercube linear constraint ([#347](https://github.com/consol-lab/pumpkin/pull/347))
- If the `check-propagations` flag is enabled, the state will run inference checkers on all propagations immediately ([#340](https://github.com/consol-lab/pumpkin/pull/340))
- Crash if a propagator constructor does not register anything ([#338](https://github.com/consol-lab/pumpkin/pull/338))
- Make propagator API public ([#333](https://github.com/consol-lab/pumpkin/pull/333))
- Add interface for nogood minimiser ([#326](https://github.com/consol-lab/pumpkin/pull/326))
- Implement State API ([#319](https://github.com/consol-lab/pumpkin/pull/319))
- WebAssembly support for pumpkin-core ([#327](https://github.com/consol-lab/pumpkin/pull/327))

### Fixed

- Fix off-by-one error in initial bounds calculation ([#361](https://github.com/consol-lab/pumpkin/pull/361))
- Do not check for event registration when already panicking ([#346](https://github.com/consol-lab/pumpkin/pull/346))
- Sign error in greater_than constraint ([#334](https://github.com/consol-lab/pumpkin/pull/334))
- Generate constraint tags via State ([#335](https://github.com/consol-lab/pumpkin/pull/335))
- Allow propagators to register for predicates becoming true ([#331](https://github.com/consol-lab/pumpkin/pull/331))
- Off-by-one error when explaining empty domain conflict ([#322](https://github.com/consol-lab/pumpkin/pull/322))
- Declare solving after conflict resolution ([#317](https://github.com/consol-lab/pumpkin/pull/317))

### Other

- Stop watching predicates without any watchers in nogood propagator ([#351](https://github.com/consol-lab/pumpkin/pull/351))
- Simplify predicate notification system ([#348](https://github.com/consol-lab/pumpkin/pull/348))
- `InferenceCode` wraps constraint tag and inference label directory ([#339](https://github.com/consol-lab/pumpkin/pull/339))
- Explicitly register predicates in NogoodPropagator ([#332](https://github.com/consol-lab/pumpkin/pull/332))
- Empty domain conflict is a predicate and reason ([#314](https://github.com/consol-lab/pumpkin/pull/314))
- Separate conflict resolvers further from solver ([#310](https://github.com/consol-lab/pumpkin/pull/310))
- Update rust edition to 2024 ([#311](https://github.com/consol-lab/pumpkin/pull/311))

## [0.2.2](https://github.com/ConSol-Lab/Pumpkin/compare/pumpkin-core-v0.2.1...pumpkin-core-v0.2.2) (2025-11-10)


Expand Down
10 changes: 5 additions & 5 deletions pumpkin-crates/core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-core"
version = "0.2.2"
version = "0.3.0"
repository.workspace = true
edition.workspace = true
license.workspace = true
Expand All @@ -11,7 +11,7 @@ description = "The core of the Pumpkin constraint programming solver."
workspace = true

[dependencies]
pumpkin-checking = { version = "0.2.2", path = "../checking" }
pumpkin-checking = { version = "0.3.0", path = "../checking" }
thiserror = "2.0.12"
log = "0.4.17"
bitfield = "0.14.0"
Expand All @@ -20,7 +20,7 @@ fnv = "1.0.7" # We require features which are on the `main` branch of the reposi
rand = { version = "0.8.5", features = [ "small_rng", "alloc" ] }
once_cell = "1.19.0"
downcast-rs = "1.2.1"
drcp-format = { version = "0.3.0", path = "../../drcp-format" }
drcp-format = { version = "0.3.1", path = "../../drcp-format" }
convert_case = "0.8.0"
itertools = "0.13.0"
bitfield-struct = "0.9.2"
Expand All @@ -33,8 +33,8 @@ flate2 = { version = "1.1.2" }


[dev-dependencies]
pumpkin-constraints = { version = "0.2.2", path = "../constraints", features=["clap"] }
pumpkin-conflict-resolvers = {version = "0.2.2", path = "../conflict-resolvers/"}
pumpkin-constraints = { version = "0.3.0", path = "../constraints", features=["clap"] }
pumpkin-conflict-resolvers = { version = "0.3.0", path = "../conflict-resolvers/"}

[target.'cfg(target_arch = "wasm32")'.dependencies]
web-time = "1.1"
Expand Down
21 changes: 21 additions & 0 deletions pumpkin-crates/propagators/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.3.0](https://github.com/consol-lab/pumpkin/releases/tag/pumpkin-propagators-v0.3.0) - 2026-02-10

### Added

- Calculate minimal profile for explaining time-table conflict ([#353](https://github.com/consol-lab/pumpkin/pull/353))
- Calculate minimal explanation time-table propagation ([#356](https://github.com/consol-lab/pumpkin/pull/356))
- Extract propagators into separate crate ([#337](https://github.com/consol-lab/pumpkin/pull/337))

### Fixed

- Use saturating multiplication in integer multiplication propagator ([#350](https://github.com/consol-lab/pumpkin/pull/350))
- Explanation check for Cumulative after full explanation is created ([#349](https://github.com/consol-lab/pumpkin/pull/349))
- Calculate minimal explanation time-table propagation ([#356](https://github.com/consol-lab/pumpkin/pull/356))
12 changes: 6 additions & 6 deletions pumpkin-crates/propagators/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-propagators"
version = "0.2.2"
version = "0.3.0"
repository.workspace = true
edition.workspace = true
license.workspace = true
Expand All @@ -11,17 +11,17 @@ description = "The propagators of the Pumpkin constraint programming solver."
workspace = true

[dependencies]
pumpkin-core = { version = "0.2.2", path = "../core" }
pumpkin-checking = { version = "0.2.2", path = "../checking" }
pumpkin-core = { version = "0.3.0", path = "../core" }
pumpkin-checking = { version = "0.3.0", path = "../checking" }
enumset = "1.1.2"
bitfield-struct = "0.9.2"
convert_case = "0.8.0"
clap = { version = "4.5.40", optional = true, features=["derive"]}

[dev-dependencies]
pumpkin-constraints = { version = "0.2.2", path = "../constraints" }
pumpkin-conflict-resolvers = {version = "0.2.2", path = "../conflict-resolvers/"}
pumpkin-solver = { version = "0.2.2", path="../../pumpkin-solver"}
pumpkin-constraints = { version = "0.3.0", path = "../constraints" }
pumpkin-conflict-resolvers = { version = "0.3.0", path = "../conflict-resolvers/"}
pumpkin-solver = { version = "0.3.0", path="../../pumpkin-solver"}

[features]
clap = ["dep:clap", "pumpkin-core/clap"]
8 changes: 4 additions & 4 deletions pumpkin-solver-py/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-solver-py"
version = "0.2.2"
version = "0.3.0"
description = "The Python interface for the Pumpkin solver library."
authors.workspace = true
license.workspace = true
Expand All @@ -17,9 +17,9 @@ doc = false

[dependencies]
pyo3 = { version = "0.25.1", features= ["extension-module"] }
pumpkin-solver = { version = "0.2.2", path = "../pumpkin-solver" }
pumpkin-constraints = { version = "0.2.2", path = "../pumpkin-crates/constraints", features=["clap"] }
pumpkin-conflict-resolvers = {version = "0.2.2", path = "../pumpkin-crates/conflict-resolvers/"}
pumpkin-solver = { version = "0.3.0", path = "../pumpkin-solver" }
pumpkin-constraints = { version = "0.3.0", path = "../pumpkin-crates/constraints", features=["clap"] }
pumpkin-conflict-resolvers = { version = "0.3.0", path = "../pumpkin-crates/conflict-resolvers/"}

[build-dependencies]
pyo3-build-config = "0.25.1"
11 changes: 11 additions & 0 deletions pumpkin-solver/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.0](https://github.com/consol-lab/pumpkin/compare/pumpkin-solver-v0.2.2...pumpkin-solver-v0.3.0) - 2026-02-10

### Fixed

- Don't use binary equality when logging proof ([#320](https://github.com/consol-lab/pumpkin/pull/320))

### Other

- Update rust edition to 2024 ([#311](https://github.com/consol-lab/pumpkin/pull/311))
- Run proof checker on integration tests ([#329](https://github.com/consol-lab/pumpkin/pull/329))

## [0.2.2](https://github.com/ConSol-Lab/Pumpkin/compare/pumpkin-solver-v0.2.1...pumpkin-solver-v0.2.2) (2025-11-10)


Expand Down
10 changes: 5 additions & 5 deletions pumpkin-solver/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pumpkin-solver"
version = "0.2.2"
version = "0.3.0"
description = "The Pumpkin combinatorial optimisation solver library."
readme = "../README.md"
authors.workspace = true
Expand All @@ -13,10 +13,10 @@ clap = { version = "4.5.17", features = ["derive"] }
env_logger = "0.10.0"
flatzinc = "0.3.21"
log = "0.4.27"
pumpkin-core = { version = "0.2.2", path = "../pumpkin-crates/core/", features = ["clap"] }
pumpkin-constraints = {version = "0.2.2", path = "../pumpkin-crates/constraints/"}
pumpkin-propagators = {version = "0.2.2", path = "../pumpkin-crates/propagators/", features=["clap"]}
pumpkin-conflict-resolvers = {version = "0.2.2", path = "../pumpkin-crates/conflict-resolvers/"}
pumpkin-core = { version = "0.3.0", path = "../pumpkin-crates/core/", features = ["clap"] }
pumpkin-constraints = { version = "0.3.0", path = "../pumpkin-crates/constraints/"}
pumpkin-propagators = { version = "0.3.0", path = "../pumpkin-crates/propagators/", features=["clap"]}
pumpkin-conflict-resolvers = { version = "0.3.0", path = "../pumpkin-crates/conflict-resolvers/"}
signal-hook = "0.3.18"
thiserror = "2.0.12"

Expand Down