Skip to content

Commit deb0d53

Browse files
authored
Merge pull request #346 from chrjabs/next-major
Next major version
2 parents cc9aa30 + ad5e726 commit deb0d53

File tree

113 files changed

+14804
-5308
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+14804
-5308
lines changed

.config/abbreviations.dic

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
29
1+
34
22
AIJ
33
API
44
APIs
@@ -14,17 +14,22 @@ FFI
1414
FGT
1515
GBMO
1616
GCD
17+
IDRUP
1718
IJCAI
1819
IPASIR
1920
IPASIR's
2021
JSAT
22+
LIDRUP
23+
LRAT
2124
MCNF
2225
ModRef
2326
MOPB
2427
MSRV
2528
OPB
2629
PB
2730
PBO
31+
RUP
2832
SOICT
33+
VeriPB
2934
VMCAI
3035
WCNF

.config/lingo.dic

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
38
1+
47
22
accessor
33
al
44
AllDifferent
@@ -10,23 +10,32 @@ bitwise
1010
boolean
1111
cardinality
1212
changelog
13+
checkable
1314
children's
1415
comparator
1516
decrementing
1617
encoding/S
18+
equioptimal
19+
equisatisfiable
1720
et
1821
executable/S
22+
formatter
1923
hasher
2024
incrementing
25+
initializer/S
2126
inprocessing
2227
irredundant
2328
learnt
2429
localsearch
2530
natively
31+
nul
2632
parser/S
2733
preprocessing
2834
propagations
2935
recurse/S
36+
redundance
37+
reflexivity
38+
reification/S
3039
satisfiability
3140
satisfiable
3241
struct/S

.github/workflows/ci.yml

Lines changed: 121 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,20 @@ jobs:
2525
- rustsat-kani
2626
- batsat-tests
2727
- cadical-tests
28+
- cadical-test-all-features
2829
- capi-tests
2930
- capi-header
3031
- glucose-tests
3132
- kissat-tests
33+
- kissat-test-all-features
3234
- minisat-tests
35+
- pigeons-tests
3336
- pyapi-tests
3437
- pyapi-stubs
3538
- tools-tests
3639
- docs
3740
- formatting
41+
- code-spelling
3842
if: ${{ success() || failure() }} # Run this job even if a dependency has failed.
3943
steps:
4044
- name: Job outcomes
@@ -45,16 +49,20 @@ jobs:
4549
echo "rustsat-kani: ${{ needs.rustsat-kani.result }}"
4650
echo "batsat-tests: ${{ needs.batsat-tests.result }}"
4751
echo "cadical-tests: ${{ needs.cadical-tests.result }}"
52+
echo "cadical-test-all-features: ${{ needs.cadical-test-all-features.result }}"
4853
echo "capi-tests: ${{ needs.capi-tests.result }}"
4954
echo "capi-header: ${{ needs.capi-header.result }}"
5055
echo "glucose-tests: ${{ needs.glucose-tests.result }}"
5156
echo "kissat-tests: ${{ needs.kissat-tests.result }}"
57+
echo "kissat-test-all-features: ${{ needs.kissat-test-all-features.result }}"
5258
echo "minisat-tests: ${{ needs.minisat-tests.result }}"
59+
echo "pigeons-tests: ${{ needs.pigeons-tests.result }}"
5360
echo "pyapi-tests: ${{ needs.pyapi-tests.result }}"
5461
echo "pyapi-stubs: ${{ needs.pyapi-stubs.result }}"
5562
echo "tools-tests: ${{ needs.tools-tests.result }}"
5663
echo "docs: ${{ needs.docs.result }}"
5764
echo "formatting: ${{ needs.formatting.result }}"
65+
echo "code-spelling: ${{ needs.code-spelling.result }}"
5866
# Fail this required job if any of its dependent jobs have failed.
5967
#
6068
# Do not attempt to consolidate these steps into one step, it won't work.
@@ -71,6 +79,8 @@ jobs:
7179
run: exit 1
7280
- if: ${{ needs.cadical-tests.result != 'success' }}
7381
run: exit 1
82+
- if: ${{ needs.cadical-test-all-features.result == 'failure' }}
83+
run: exit 1
7484
- if: ${{ needs.capi-tests.result != 'success' }}
7585
run: exit 1
7686
- if: ${{ needs.capi-header.result != 'success' }}
@@ -79,8 +89,12 @@ jobs:
7989
run: exit 1
8090
- if: ${{ needs.kissat-tests.result != 'success' }}
8191
run: exit 1
92+
- if: ${{ needs.kissat-test-all-features.result == 'failure' }}
93+
run: exit 1
8294
- if: ${{ needs.minisat-tests.result != 'success' }}
8395
run: exit 1
96+
- if: ${{ needs.pigeons-tests.result != 'success' }}
97+
run: exit 1
8498
- if: ${{ needs.pyapi-tests.result != 'success' }}
8599
run: exit 1
86100
- if: ${{ needs.pyapi-stubs.result != 'success' }}
@@ -91,6 +105,8 @@ jobs:
91105
run: exit 1
92106
- if: ${{ needs.formatting.result != 'success' }}
93107
run: exit 1
108+
- if: ${{ needs.code-spelling.result != 'success' }}
109+
run: exit 1
94110

95111
build-workspace:
96112
name: Build workspace
@@ -142,6 +158,17 @@ jobs:
142158
- name: Limit cmake parallelism
143159
if: matrix.os == 'macos-latest'
144160
run: echo "CMAKE_BUILD_PARALLEL_LEVEL=4" >> "$GITHUB_ENV"
161+
- uses: actions/setup-python@v5
162+
if: matrix.os == 'ubuntu-latest'
163+
with:
164+
python-version: 3.12
165+
- name: Install VeriPB
166+
if: matrix.os == 'ubuntu-latest'
167+
run: |
168+
set -e
169+
sudo apt-get install libgmp-dev
170+
pip install https://gitlab.com/MIAOresearch/software/VeriPB/-/archive/version2/VeriPB-version2.zip
171+
echo "VERIPB_CHECKER=$(which veripb)" >> "$GITHUB_ENV"
145172
- name: Test suite
146173
run: cargo nextest run --profile ci -p rustsat --verbose --features=all
147174
- name: CaDiCaL external solver
@@ -169,8 +196,6 @@ jobs:
169196
matrix:
170197
os: [ubuntu-latest, macos-latest, windows-latest]
171198
runs-on: ${{ matrix.os }}
172-
needs:
173-
- build-workspace
174199
steps:
175200
- uses: actions/checkout@v4
176201
- name: Determine Rust version
@@ -249,6 +274,29 @@ jobs:
249274
- name: Test suite
250275
run: cargo nextest run --profile ci -p rustsat-cadical --verbose
251276

277+
cadical-test-all-features:
278+
name: CaDiCaL test all features
279+
runs-on: ubuntu-latest
280+
if: contains(github.event.pull_request.labels.*.name, 'solvers/cadical')
281+
needs:
282+
- build-workspace
283+
steps:
284+
- uses: actions/checkout@v4
285+
- name: Determine Rust version
286+
id: rust-versions
287+
shell: bash
288+
run: scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
289+
- uses: dtolnay/rust-toolchain@master
290+
with:
291+
toolchain: ${{ steps.rust-versions.outputs.toolchain }}
292+
- uses: taiki-e/install-action@nextest
293+
- uses: Swatinem/rust-cache@v2
294+
with:
295+
shared-key: "toolchain-workspace"
296+
save-if: false
297+
- name: Test all features
298+
run: scripts/check-all-features.sh -v -t -n -p rustsat-cadical
299+
252300
capi-tests:
253301
name: C-API test suite
254302
strategy:
@@ -282,8 +330,6 @@ jobs:
282330
capi-header:
283331
name: Check C-API header
284332
runs-on: ubuntu-latest
285-
needs:
286-
- build-workspace
287333
steps:
288334
- uses: actions/checkout@v4
289335
- name: Determine Rust version
@@ -356,6 +402,29 @@ jobs:
356402
- name: Test suite
357403
run: cargo nextest run --profile ci -p rustsat-kissat --verbose
358404

405+
kissat-test-all-features:
406+
name: Kissat test all features
407+
runs-on: ubuntu-latest
408+
if: contains(github.event.pull_request.labels.*.name, 'solvers/kissat')
409+
needs:
410+
- build-workspace
411+
steps:
412+
- uses: actions/checkout@v4
413+
- name: Determine Rust version
414+
id: rust-versions
415+
shell: bash
416+
run: scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
417+
- uses: dtolnay/rust-toolchain@master
418+
with:
419+
toolchain: ${{ steps.rust-versions.outputs.toolchain }}
420+
- uses: taiki-e/install-action@nextest
421+
- uses: Swatinem/rust-cache@v2
422+
with:
423+
shared-key: "toolchain-workspace"
424+
save-if: false
425+
- name: Test all features
426+
run: scripts/check-all-features.sh -v -t -n -p rustsat-kissat
427+
359428
minisat-tests:
360429
name: MiniSat test suite
361430
strategy:
@@ -381,6 +450,42 @@ jobs:
381450
- name: Test suite
382451
run: cargo nextest run --profile ci -p rustsat-minisat --verbose
383452

453+
pigeons-tests:
454+
name: Pigeons test suite
455+
strategy:
456+
matrix:
457+
os: [ubuntu-latest, macos-latest, windows-latest]
458+
runs-on: ${{ matrix.os }}
459+
needs:
460+
- build-workspace
461+
steps:
462+
- uses: actions/checkout@v4
463+
- name: Determine Rust version
464+
id: rust-versions
465+
shell: bash
466+
run: scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
467+
- uses: dtolnay/rust-toolchain@master
468+
with:
469+
toolchain: ${{ steps.rust-versions.outputs.toolchain }}
470+
- uses: taiki-e/install-action@nextest
471+
- uses: Swatinem/rust-cache@v2
472+
with:
473+
shared-key: "toolchain-workspace"
474+
save-if: false
475+
- name: Set up Python
476+
uses: actions/setup-python@v5
477+
with:
478+
python-version: 3.12
479+
- name: Install VeriPB
480+
if: matrix.os == 'ubuntu-latest'
481+
run: |
482+
set -e
483+
sudo apt-get install libgmp-dev
484+
pip install https://gitlab.com/MIAOresearch/software/VeriPB/-/archive/version2/VeriPB-version2.zip
485+
echo "VERIPB_CHECKER=$(which veripb)" >> "$GITHUB_ENV"
486+
- name: Test suite
487+
run: cargo nextest run --profile ci -p pigeons --verbose
488+
384489
pyapi-tests:
385490
name: PyAPI test suite
386491
strategy:
@@ -465,17 +570,17 @@ jobs:
465570
id: rust-versions
466571
shell: bash
467572
run: scripts/rust-versions.sh >> "$GITHUB_OUTPUT"
468-
- uses: dtolnay/rust-toolchain@master
469-
with:
470-
toolchain: ${{ steps.rust-versions.outputs.toolchain }}
573+
- uses: dtolnay/rust-toolchain@nightly
471574
- uses: Swatinem/rust-cache@v2
472575
with:
473576
shared-key: "toolchain-workspace"
474577
save-if: false
475578
- name: Cargo doc
476-
run: cargo doc --workspace --verbose --no-deps --features=all
579+
run: cargo +nightly doc -Zunstable-options -Zrustdoc-scrape-examples --workspace --no-deps --features=all,internals
580+
env:
581+
RUSTDOCFLAGS: "-Dwarnings --cfg docsrs"
477582
- name: Doc tests
478-
run: cargo test --doc --workspace --verbose
583+
run: cargo +nightly test --doc --workspace --verbose
479584
- uses: taiki-e/install-action@cargo-spellcheck
480585
- name: Spellcheck documentation
481586
run: cargo spellcheck --code 1
@@ -514,3 +619,10 @@ jobs:
514619
- uses: Swatinem/rust-cache@v2
515620
- name: Run cargo fmt
516621
run: cargo fmt --all -- --check
622+
623+
code-spelling:
624+
name: Spell check with typos
625+
runs-on: ubuntu-latest
626+
steps:
627+
- uses: actions/checkout@v4
628+
- uses: crate-ci/[email protected]

.github/workflows/pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Build rust docs
3131
run: |
3232
mkdir -p _site/
33-
cargo +nightly doc -Zunstable-options -Zrustdoc-scrape-examples --workspace --no-deps
33+
cargo +nightly doc -Zunstable-options -Zrustdoc-scrape-examples --workspace --no-deps --features=all,internals -- --cfg docsrs
3434
mv target/doc/ _site/main/
3535
- uses: actions/setup-python@v5
3636
with:

.github/workflows/semver-checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Semver checks
22

33
on:
44
pull_request:
5-
branches: [ "main", "next-major" ]
5+
branches: [ "main" ]
66

77
env:
88
CARGO_TERM_COLOR: always

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,12 +327,12 @@ guide](https://github.com/chrjabs/rustsat/blob/main/docs/0-5-0-migration-guide.m
327327

328328
- Alternative totalizer implementation based on a totalizer database
329329
- Dynamic polynomial watchdog encoing
330-
- Changes to public API: changed some vectores to slices
330+
- Changes to public API: changed some vectors to slices
331331
- Changed internal variable/literal representation from `usize` to `u32`
332332

333333
## [0.2.x]
334334

335-
Solver interfaces factored out into seperate crates.
335+
Solver interfaces factored out into separate crates.
336336
See detailed changes in [GitHub Releases](https://github.com/chrjabs/rustsat/releases).
337337

338338
## [0.1.2]

Cargo.lock

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)