Skip to content

Commit

Permalink
Merge commit '09645bee4cabb713b4055a963bf2deaf339b9f1f'
Browse files Browse the repository at this point in the history
  • Loading branch information
cprudhom committed Nov 17, 2015
2 parents 182c212 + 09645be commit 951f942
Show file tree
Hide file tree
Showing 898 changed files with 30,815 additions and 25,344 deletions.
175 changes: 163 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,168 @@
*/target/*
#### joe made this: http://goel.io/joe

#####=== Java ===#####

*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

#####=== Maven ===#####

target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties

#####=== JetBrains ===#####
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.ids
*.iws
choco.iws~
parser/src/fzn/choco.jar
parser/src/fzn/fzn_choco
*.jar
parser/src/lib/*
*.DS_Store
*/dependency-reduced-pom.xml

choco-parser/src/main/resources/mysql.properties
choco-solver/src/test/resources/logback-test
## Plugin-specific files:

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

#####=== Eclipse ===#####
*.pydevproject
.metadata
.gradle
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath

# sbteclipse plugin
.target

# TeXlipse plugin
.texlipse

#####=== NetBeans ===#####
nbproject/private/
build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml
.nb-gradle/

#####=== OSX ===#####
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear on external disk
.Spotlight-V100
.Trashes

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

#####=== Linux ===#####
*~

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

#####=== Windows ===#####
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

choco-parser/src/chocofzn/fzn_choco.sh
11 changes: 8 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
language: java
sudo: false
jdk:
- oraclejdk8
before_install:
- pip install --user codecov
after_success:
- codecov
before_script:
- export MAVEN_OPTS="-Xmx4096m -Xms128m -Xss64m -server"
env:
- GROUP=1s
- GROUP=10s
- GROUP=1m
- GROUP="correctness.*"
- GROUP="consistency.*"
# - GROUP=1m
# - GROUP="correctness.*"
# - GROUP="consistency.*"
script: travis_wait mvn clean install -DtestFailureIgnore=true -Dgroups=$GROUP
branches:
only:
Expand Down
13 changes: 13 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!-- This is the official list of the AUTHORS of Choco3
for copyright purposes.
This file is distinct from the CONTRIBUTORS files.
See the latter for an explanation.

Names should be added to this file as
Name or Organization <email address>
The email address is not required for organizations.
-->
Jean-Guillaume Fages <[email protected]>,
Xavier Lorca <[email protected]>,
Narendra Jussien <[email protected]>,
Charles Prud'homme <[email protected]>
68 changes: 68 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,74 @@ NEXT MILESTONE
-------------------


3.3.2 - 17 Nov 2015
-------------------

#### Solver:

- `ISolutionRecorder` implementations do not restore automatically the last/best solution found on exit.
This now has to be done calling either `solver.restoreLastSolution()` or `solver.restoreSolution(Solution)`.
- remove `MasterSolver` and `SlaveSolver` (#293)
- `Solver.duplicate()`, `Propagator.duplicate(Solver solver, THashMap<Object, Object> identitymap)`
and `Variable.duplicate(Solver solver, THashMap<Object, Object> identitymap)` has been removed.
The expected way to duplicate a model is to create a method which creates a `Solver`, fills it with variables and contraints
and returns it. Doing so, the models are sure to the same and reduces the risk of errors
- add a search monitor helper for parallel resolution with Java8 lambda (#293)
- lazy creation of ZERO, ONE, TRUE and FALSE through methods of `Solver` (#293)
- refactor `Solution` (#306)
- improve propagator iteration in propagation engine
- revamp `IMeasures` to avoid declaring its concrete class as monitor
- remove deprecated classes: `GenerateAndTest`, `LastConflict_old`
- add new API to `Solver` to declare eagerly the objective variable(s) and the precision
- enable printing decisions and solutions in ANSI colors (see `Settings.outputWithANSIColors()`)
- add connection to [cp-profiler](https://github.com/cp-profiler/cp-profiler) (#341)

#### Search:

- Deeply revamp the search loop to offer more flexibility
- `SearchLoop.interrupt()`is now forbidden
- `AbstractStrategy.init()` cannot throw `ContradictionException` anymore but returns false instead
- revamp decisions to enable `IntMetaDecision`
- change Decision's API, `getDecisionVariable()` becomes `getDecisionVariables()`
- move `FastDecision` to `../IntDecision`
- revamp `IntDecision.toString()`
- set `DecisionOperator` as an interface (instead of an abstract class)
- `org.chocosolver.solver.search.limits.ICounter` and its concrete class have been revisited, a `Solver` is now needed to create them.

#### Variables:

- add `IntVar.removeValues(IntIterableSet, ICause)`, `IntVar.removeAllValuesBut(IntIterableSet, ICause)`
and `IntVar.updateBounds(int, int, ICause) (#270)`
- improve `IntVar.removeInterval(int, int, ICause)` for enumerated domain integer variables
- prevent the user from using `ISF.random_value` on bounded vars

#### Constraints:

- add `keysorting()` constraint
- add `int_value_precede_chain()` constraint
- improve "DEFAULT" option for `ICF.alldifferent()`
- revamp scalar and sum (#324)
- fix lack of filtering in `PropMin`
- simplify and improve basic element propagator (#325)
- remove `aCause` from `Propagator`, should be replaced by `this`
- simplify `Propagation.contradiction(...)`
- add new setting to Settings to allow to not clone variables array input to Propagator's constructor
- `Propagator.getPropagationConditions()` becomes public


#### Explanations:

- deal with unary decision (when once is set to true)
- add `PoolManager` for `Rules` and `Propagators`
- explain `PropCount_AC`
- fix lack of explanations in `SatSolver`
- fix `PropLessOrEqualXY_C` to add the right rule

#### Bug fixes:

\#152, #153, #164, #176, #296, #297, #298, #301, #303, #309, #311, #313, #314, #317, #320, #323, #326, #327,
\#331, #333, #334, #337, #338, #342

3.3.1 - 11 May 2015
-------------------

Expand Down
100 changes: 100 additions & 0 deletions CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Contributing to Choco3

The developments are pushed on the develop branch, so this is the most up-to-date version of the code.
As far as possible, the master branch is only updated twice or thrice a year,
based on the following [Git branching model](http://nvie.com/posts/a-successful-git-branching-model/).

## Using the issue tracker

The issue tracker is the preferred channel for [bug reports](#bug), [feature requests](#feat)
and [submitting pull requests](#pull).
If you need a personal support request, use the [forum](http://choco-solver.org/?q=Forum),
most support requests are answered very fast.


<a name="bug"></a>
## Bug reports

Choco3 is a living library which is frequently modified, sometimes deeply.
We do our best to track bugs in the [tracker](https://github.com/chocoteam/choco3/issues).
But, it happens that a modification exhibit a bug or, simply, that we did not test the code enough.
In that case:

1. Search in [tracker](https://github.com/chocoteam/choco3/issues) to see if the bug has already been reported
(do not forget to look for closed issues), and/or fixed;

2. Isolate the problem, describe it and provide a [Minimal Working Example](https://en.wikipedia.org/wiki/Minimal_Working_Example).
The [stackoverflow guidelines](http://stackoverflow.com/help/mcve) is a very good starting point.
If possible, try to reproduce the bug on the develop branch
and do not forget to indicate which version were used to reproduce the bug (release version or revision number).

Doing so, we will endeavor to reproduce the bug and fix it as soon as possible in the develop branch.
If the bug is critical, a release could be done in advance.

<a name="feat"></a>
## Feature requests

Feature requests are welcome, we always appreciate having feedback.
For your ideas to be considered, please give us as much details as possible, some practical cases are bonus.
And if you feel like doing it by yourself, what about submitting a [pull request](#pull) ?



<a name="pull"></a>
## Pull requests

Contributing to Choco3 is easy.

0. Make sure you have the right to send any changes you make. If you do changes at work you may find your employer owns the patch not you.

1. Fork Choco3 on https://github.com/chocoteam/choco3,

2. Work with the source: Choco3 is maven-based project, easy to install on any IDEs,

3. Add your features and test them,

4. Send a pull request on Github.


This is about code and documentation!

### Code modification

If you modify a class:

- add your name and email to the list of authors in the file, we will maintain the
global list of authors/contributors,

- comment your modifications,

- always test your changes (if you don't known what/how to test, contact us).


If you create a new class:

- reproduce the licence text like in any other classes already provided,

- add your name and email address, we will maintain the global list of authors/contributors,

- java-document and comment your code as much as possible,

- always test your changes (if you don't known what/how to test, contact us).


##### Tests

We use TestNG as a testing framework.
However, if you prefer JUnit, we will migrate the code in a second phase.

The rules are:

- prefer ten short tests instead of long one,

- make sure the tests you add are deterministic, if not, make sure the seed can be set easily,


### User guide improvement

We use [sphinxdoc](http://sphinx-doc.org) to maintain and generate the documentation.
Any help is appreciated: even if we are the best position to write the documentation,
we need you to stand back and make good (better) choices.
Loading

0 comments on commit 951f942

Please sign in to comment.