JuliaConstraints / JuliaConstraints/ConstraintProgrammingExtensions.jl

Use this package more generally?

Open
#7 6 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
24
Forks
2
PR merge metrics
No merged PRs in 30d

Description

This package started with https://github.com/jump-dev/JuMP.jl/issues/2227. Its goal is to be the official extension to MOI for constraint programming. It is now in a useable state, and allows to wrap most of the CPLEX CP Optimizer solver: it should be relatively stable, except for new features (unlike the first versions, which broke compatibility every now and then).

In the Julia ecosystem, there are two other packages for constraint programming, but they focus on solving problems: https://github.com/Wikunia/ConstraintSolver.jl and https://github.com/JuliaConstraints. For now, these packages have different MOI sets to represent the same constraints. The goal of the present package is to provide these MOI sets, so that users can easily switch from one solver to another (and to ease writing new solvers/wrappers for existing solvers). It may be integrated into MOI in the future.

I mapped the constraints supported in each package to those in CP: ConstraintSolver.jl and JuliaConstraints.

@Wikunia @Azzaare Is there anything missing in this package? Would you have designed things differently? Would you be ready to use this package as a dependency for your own solvers (instead of your custom sets), until it migrates into MOI?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the package documentation in docs/constraintsolver.md and docs/juliaconstraints.md, then compare the listed constraints with the corresponding packages. The issue does not name an implementation target; progress would require deciding whether anything is missing, whether the MOI sets should be redesigned, and whether the other packages would adopt them.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.