From 687cb35ac9d5ac167aa7108a771130df212a3da3 Mon Sep 17 00:00:00 2001 From: cprudhom Date: Thu, 12 Sep 2024 11:03:52 +0200 Subject: [PATCH 1/7] Fix #1101: equals method should not be overridden, in particular, when it comes to views --- .../solver/variables/impl/AbstractVariable.java | 4 ++-- .../solver/variables/view/integer/IntAffineView.java | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/solver/src/main/java/org/chocosolver/solver/variables/impl/AbstractVariable.java b/solver/src/main/java/org/chocosolver/solver/variables/impl/AbstractVariable.java index 9a79fdec2f..02292584ab 100644 --- a/solver/src/main/java/org/chocosolver/solver/variables/impl/AbstractVariable.java +++ b/solver/src/main/java/org/chocosolver/solver/variables/impl/AbstractVariable.java @@ -501,7 +501,7 @@ public ICause getCause() { } @Override - public boolean equals(Object o) { + public final boolean equals(Object o) { if (this == o) return true; if (!(o instanceof AbstractVariable)) return false; AbstractVariable that = (AbstractVariable) o; @@ -509,7 +509,7 @@ public boolean equals(Object o) { } @Override - public int hashCode() { + public final int hashCode() { return ID; } } diff --git a/solver/src/main/java/org/chocosolver/solver/variables/view/integer/IntAffineView.java b/solver/src/main/java/org/chocosolver/solver/variables/view/integer/IntAffineView.java index 432182dfde..8816f370e5 100644 --- a/solver/src/main/java/org/chocosolver/solver/variables/view/integer/IntAffineView.java +++ b/solver/src/main/java/org/chocosolver/solver/variables/view/integer/IntAffineView.java @@ -536,15 +536,6 @@ public boolean hasEnumeratedDomain() { return var.hasEnumeratedDomain() || a > 1; } - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof IntAffineView)) return false; - - IntAffineView intView = (IntAffineView) o; - if (!var.equals(intView.var)) return false; - return a == intView.a && b == intView.b && p == intView.p; - } public boolean equals(IntVar v, int a, int b) { if (!this.var.equals(v)) return false; From 5fc5af7c8a95449c36ceed6f2c61824cfa5aab46 Mon Sep 17 00:00:00 2001 From: cprudhom Date: Mon, 9 Sep 2024 16:22:14 +0200 Subject: [PATCH 2/7] Update actions --- .github/workflows/codeql-analysis.yml | 4 +- .github/workflows/draft-pdf.yml | 5 +- .github/workflows/maven-publish.yml | 171 ------------------------- .github/workflows/maven-test.yml | 6 +- .github/workflows/publish-snapshot.yml | 8 +- 5 files changed, 13 insertions(+), 181 deletions(-) delete mode 100644 .github/workflows/maven-publish.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 67d7a9e4cb..fa29626a89 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ master ] + branches: [ master, develop, develop/**, hotfix/** ] pull_request: # The branches below must be a subset of the branches above - branches: [ master ] + branches: [ master, develop, develop/**, hotfix/**] schedule: - cron: '0 0 * * 0' diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index 993bf10682..21ff1f858c 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -1,6 +1,9 @@ name: Draft JOSS Paper -on: [push] +on: + push: + tags: + - 'v*' jobs: paper: diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml deleted file mode 100644 index f06de0b9eb..0000000000 --- a/.github/workflows/maven-publish.yml +++ /dev/null @@ -1,171 +0,0 @@ -name: Maven Package -on: - release: - types: [created] - -jobs: - publish: - - runs-on: ubuntu-latest - env: - artifact_name: choco-solver - - steps: - - uses: actions/checkout@v2 - - - name: Get the release version - id: get_version - run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/} - - - name: Set up JDK 11 for deploy to OSSRH - uses: actions/setup-java@v2 - with: - distribution: 'adopt' - java-version: '11' - server-id: ossrh - server-username: MAVEN_USERNAME - server-password: MAVEN_CENTRAL_TOKEN - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - gpg-passphrase: MAVEN_GPG_PASSPHRASE - - - name: Build with Maven - run: mvn -B --file pom.xml package -Dgroups="1s,10s,checker" - - - name: Update package version - run: mvn versions:set -DnewVersion=${{ steps.get_version.outputs.VERSION }} - - - name: Publish to Apache Maven Central - run: mvn deploy -PossrhDeploy - env: - MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} - MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }} - MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - - - name: Set up JDK 11 for deploy to github packages - uses: actions/setup-java@v2 - with: - distribution: 'adopt' - java-version: '11' - server-id: github - - - name: Publish to GitHub Packages Apache Maven - run: mvn deploy -PgithubDeploy - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Get the upload URL for a release - id: get - uses: bruceadams/get-release@v1.2.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # CHOCO-SOLVER - - name: Upload Release Asset jar - id: upload-release-asset-jar - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: solver/target/choco-solver-${{ steps.get_version.outputs.VERSION }}.jar - asset_name: choco-solver-${{ steps.get_version.outputs.VERSION }}.jar - asset_content_type: application/java-archive - - - name: Upload Release Asset sources - id: upload-release-asset-src - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: solver/target/choco-solver-${{ steps.get_version.outputs.VERSION }}-sources.jar - asset_name: choco-solver-${{ steps.get_version.outputs.VERSION }}-sources.jar - asset_content_type: application/java-archive - - - name: Upload Release Asset docs - id: upload-release-asset-docs - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: solver/target/choco-solver-${{ steps.get_version.outputs.VERSION }}-javadoc.jar - asset_name: choco-solver-${{ steps.get_version.outputs.VERSION }}-javadoc.jar - asset_content_type: application/java-archive - - - name: Upload Release Asset fat jar - id: upload-release-asset-fat - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: solver/target/choco-solver-${{ steps.get_version.outputs.VERSION }}-jar-with-dependencies.jar - asset_name: choco-solver-${{ steps.get_version.outputs.VERSION }}-jar-with-dependencies.jar - asset_content_type: application/java-archive - # CHOCO-PARSERS - - name: Upload Release Asset jar - id: upload-release-asset-jar - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: parsers/target/choco-parsers-${{ steps.get_version.outputs.VERSION }}.jar - asset_name: choco-parsers-${{ steps.get_version.outputs.VERSION }}.jar - asset_content_type: application/java-archive - - - name: Upload Release Asset sources - id: upload-release-asset-src - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: parsers/target/choco-parsers-${{ steps.get_version.outputs.VERSION }}-sources.jar - asset_name: choco-parsers-${{ steps.get_version.outputs.VERSION }}-sources.jar - asset_content_type: application/java-archive - - - name: Upload Release Asset fat jar - id: upload-release-asset-fat - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: parsers/target/choco-parsers-${{ steps.get_version.outputs.VERSION }}-jar-with-dependencies.jar - asset_name: choco-parsers-${{ steps.get_version.outputs.VERSION }}-jar-with-dependencies.jar - asset_content_type: application/java-archive - # EXAMPLES - - name: Upload Release Asset Examples tar.bz2 - id: upload-release-asset-fat - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: examples/target/examples-${{ steps.get_version.outputs.VERSION }}-src.tar.bz2 - asset_name: examples-${{ steps.get_version.outputs.VERSION }}-src.tar.bz2 - asset_content_type: application/x-gtar - - - name: Upload Release Asset Examples tar.gz - id: upload-release-asset-fat - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: examples/target/examples-${{ steps.get_version.outputs.VERSION }}-src.tar.gz - asset_name: examples-${{ steps.get_version.outputs.VERSION }}-src.tar.gz - asset_content_type: application/x-gtar - - - name: Upload Release Asset Examples zip - id: upload-release-asset-fat - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.get.outputs.upload_url }} - asset_path: examples/target/examples-${{ steps.get_version.outputs.VERSION }}-src.zip - asset_name: examples-${{ steps.get_version.outputs.VERSION }}-src.zip - asset_content_type: application/zip diff --git a/.github/workflows/maven-test.yml b/.github/workflows/maven-test.yml index b1fd58389f..1cbde4c268 100644 --- a/.github/workflows/maven-test.yml +++ b/.github/workflows/maven-test.yml @@ -3,11 +3,7 @@ name: Java CI with Maven -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] +on: [push, pull_request] jobs: test-solver: diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 824c0f4493..ee12a9118b 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -6,8 +6,8 @@ on: workflows: [ "Java CI with Maven" ] types: [completed] push: - branches: - - master + branches: [ develop ] + tags: [ 'v*' ] jobs: publish: @@ -26,6 +26,10 @@ jobs: server-password: MAVEN_PASSWORD gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} gpg-passphrase: MAVEN_GPG_PASSPHRASE + + - name: Build with Maven + run: mvn -B --file pom.xml package -Dgroups="1s,10s,checker" + - name: publish packages run: mvn -P ossrhDeploy --batch-mode -DskipTests javadoc:aggregate-jar source:jar deploy env: From 4b83b92231b3466ed07c7639de5de5a8cfd6566e Mon Sep 17 00:00:00 2001 From: cprudhom Date: Mon, 9 Sep 2024 16:37:50 +0200 Subject: [PATCH 3/7] Update actions --- .github/workflows/codeql-analysis.yml | 4 ++-- .github/workflows/publish-snapshot.yml | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index fa29626a89..98559eeef5 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ master, develop, develop/**, hotfix/** ] + branches: [ master, develop ] pull_request: # The branches below must be a subset of the branches above - branches: [ master, develop, develop/**, hotfix/**] + branches: [ master, develop ] schedule: - cron: '0 0 * * 0' diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index ee12a9118b..6780a54fba 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -27,9 +27,6 @@ jobs: gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} gpg-passphrase: MAVEN_GPG_PASSPHRASE - - name: Build with Maven - run: mvn -B --file pom.xml package -Dgroups="1s,10s,checker" - - name: publish packages run: mvn -P ossrhDeploy --batch-mode -DskipTests javadoc:aggregate-jar source:jar deploy env: From 7d393bba22af9a1c38461a7c59903ffc0844a4e7 Mon Sep 17 00:00:00 2001 From: Charles Prud'homme Date: Tue, 10 Sep 2024 10:05:30 +0200 Subject: [PATCH 4/7] Update publish-snapshot.yml set the relative path to the settings --- .github/workflows/publish-snapshot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 6780a54fba..223de7ac3f 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -28,7 +28,7 @@ jobs: gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: publish packages - run: mvn -P ossrhDeploy --batch-mode -DskipTests javadoc:aggregate-jar source:jar deploy + run: mvn -s scripts/settings.xml -P ossrhDeploy --batch-mode -DskipTests javadoc:aggregate-jar source:jar deploy env: MAVEN_USERNAME: ${{ secrets.OSS_SONATYPE_USERNAME }} MAVEN_PASSWORD: ${{ secrets.OSS_SONATYPE_PASSWORD }} From fec5f3722c97889ddbfcf51f97bd7fa15e967094 Mon Sep 17 00:00:00 2001 From: cprudhom Date: Thu, 12 Sep 2024 11:16:44 +0200 Subject: [PATCH 5/7] Update CHANGES.md --- CHANGES.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 5e9ca684a4..6da35fe109 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,14 @@ Choco Solver ChangeLog This file is dedicated to sum up the new features added and bugs fixed in Choco-solver since the version, 4.0.0. **Note**: double-space is replaced by "\t" character on release process. Make sure the format is ok. +4.10.16 - 12 Sep 2024 +------------------- + +### Hotfix +- Fix bug in `IntAffineView` (#1101) + +**Full Changelog**: https://github.com/chocoteam/choco-solver/compare/v4.10.15...v4.10.16 + 4.10.15 - 09 Sep 2024 ------------------- From 1e2be6dfaf536430a05d0760bf4449f8bf605e1a Mon Sep 17 00:00:00 2001 From: cprudhom Date: Thu, 12 Sep 2024 11:17:54 +0200 Subject: [PATCH 6/7] Update set_version.sh to timestamp Flatzinc and XCSP3 --- scripts/set_version.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/set_version.sh b/scripts/set_version.sh index 5900a750c0..e0379206db 100755 --- a/scripts/set_version.sh +++ b/scripts/set_version.sh @@ -29,6 +29,7 @@ then DAT=$(LANG=en_US.utf8 date +"%Y-%m") YEAR=$(LANG=en_US.utf8 date +"%Y") d=$(LANG=en_US.utf8 date +"%d %b %Y") + DATE=$(LANG=en_US.utf8 date +'%y%m%d_%H:%M') ## The README.md # Update of the version number for maven usage @@ -42,6 +43,8 @@ then ## The configuration file sedInPlace "s%.*Constraint Programming Solver, Copyright.*% \"** Choco $VERSION \($DAT\) : Constraint Programming Solver, Copyright \(c\) 2010-$YEAR\";%" ./solver/src/main/java/org/chocosolver/solver/trace/IOutputFactory.java + sedInPlace "s| System.out.println(\"c Choco .*| System.out.println(\"c Choco $DATE\");|" parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java + sedInPlace "s| System.out.println(\"%% Choco .*| System.out.println(\"%% Choco $DATE\");|" parsers/src/main/java/org/chocosolver/parser/flatzinc/Flatzinc.java ## For MiniZinc sedInPlace "s% \"version\": .*% \"version\": \"$VERSION\",%" ./parsers/src/main/minizinc/choco.msc From f8dfe8f034dd6047a0ce6d447512b9bab67c9f44 Mon Sep 17 00:00:00 2001 From: cprudhom Date: Thu, 12 Sep 2024 11:18:04 +0200 Subject: [PATCH 7/7] Bump version --- README.md | 4 ++-- examples/pom.xml | 2 +- parsers/pom.xml | 2 +- .../main/java/org/chocosolver/parser/flatzinc/Flatzinc.java | 2 +- parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java | 2 +- parsers/src/main/minizinc/fzn-choco.py | 2 +- pom.xml | 2 +- solver/pom.xml | 2 +- .../java/org/chocosolver/solver/trace/IOutputFactory.java | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5ac3293364..cbe4b5e511 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Choco-solver is an open-source Java library for Constraint Programming. -Current stable version is 4.10.15 (09 Sep 2024). +Current stable version is 4.10.16 (12 Sep 2024). Choco-solver comes with: - various type of variables (integer, boolean, set, graph and real), @@ -125,7 +125,7 @@ So you only have to edit your `pom.xml` to declare the following library depende org.choco-solver choco-solver - 4.10.15 + 4.10.16 ``` diff --git a/examples/pom.xml b/examples/pom.xml index ba744d824c..8f00ee5545 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -17,7 +17,7 @@ org.choco-solver choco - 4.10.15 + 4.10.16 examples jar diff --git a/parsers/pom.xml b/parsers/pom.xml index 888e279f47..7da18a232a 100644 --- a/parsers/pom.xml +++ b/parsers/pom.xml @@ -17,7 +17,7 @@ org.choco-solver choco - 4.10.15 + 4.10.16 choco-parsers jar diff --git a/parsers/src/main/java/org/chocosolver/parser/flatzinc/Flatzinc.java b/parsers/src/main/java/org/chocosolver/parser/flatzinc/Flatzinc.java index 496952e825..a556cdba83 100644 --- a/parsers/src/main/java/org/chocosolver/parser/flatzinc/Flatzinc.java +++ b/parsers/src/main/java/org/chocosolver/parser/flatzinc/Flatzinc.java @@ -126,7 +126,7 @@ public Thread actionOnKill() { @Override public void createSolver() { if (level.isLoggable(Level.COMPET)) { - System.out.println("%% Choco 240909_14:08"); + System.out.println("%% Choco 240912_11:16"); } super.createSolver(); datas = new Datas[nb_cores]; diff --git a/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java b/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java index e7b75d11a6..4931528be8 100644 --- a/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java +++ b/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java @@ -70,7 +70,7 @@ public Thread actionOnKill() { public void createSolver() { super.createSolver(); if (level.isLoggable(Level.COMPET)) { - System.out.println("c Choco 240909_14:08"); + System.out.println("c Choco 240912_11:16"); } String iname = Paths.get(instance).getFileName().toString(); parsers = new XCSPParser[nb_cores]; diff --git a/parsers/src/main/minizinc/fzn-choco.py b/parsers/src/main/minizinc/fzn-choco.py index 026f6ebd29..145b42099a 100644 --- a/parsers/src/main/minizinc/fzn-choco.py +++ b/parsers/src/main/minizinc/fzn-choco.py @@ -7,7 +7,7 @@ import sys # THIS IS WHERE YOU NEED TO CHANGE THE PATH TO THE JAR FILE -JAR_FILE='~/.m2/repository/org/choco-solver/choco-parsers/4.10.15/choco-parsers-4.10.15-light.jar' +JAR_FILE='~/.m2/repository/org/choco-solver/choco-parsers/4.10.16/choco-parsers-4.10.16-light.jar' JVM_ARGS = '-server -Xss64M -Xms2G -Xmx8G -XX:NewSize=512M' LOG_LEVEL = 'COMPET' diff --git a/pom.xml b/pom.xml index 68694482c7..bc8b14e59e 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 4.0.0 org.choco-solver choco - 4.10.15 + 4.10.16 pom choco http://choco-solver.org/ diff --git a/solver/pom.xml b/solver/pom.xml index 7b4b53e3b2..d5122ad4aa 100644 --- a/solver/pom.xml +++ b/solver/pom.xml @@ -17,7 +17,7 @@ org.choco-solver choco - 4.10.15 + 4.10.16 choco-solver jar diff --git a/solver/src/main/java/org/chocosolver/solver/trace/IOutputFactory.java b/solver/src/main/java/org/chocosolver/solver/trace/IOutputFactory.java index 70d990003b..e6bca6f862 100644 --- a/solver/src/main/java/org/chocosolver/solver/trace/IOutputFactory.java +++ b/solver/src/main/java/org/chocosolver/solver/trace/IOutputFactory.java @@ -40,7 +40,7 @@ public interface IOutputFactory extends ISelf { * Default welcome message */ String WELCOME_MESSAGE = - "** Choco 4.10.15 (2024-09) : Constraint Programming Solver, Copyright (c) 2010-2024"; + "** Choco 4.10.16 (2024-09) : Constraint Programming Solver, Copyright (c) 2010-2024"; /** * Print the version message.