My personal development environment for modelling and solving constraint programming problems in python.
- A fully featured devcontainer
- Python
- MiniZinc
- Google ORTools
- A test dockerfile target (no dev dependencies)
- A prod dockerfile target (no test dependencies)
- Some example models (need more)
- A strongly typed wrapper for minizinc model results
- A strongly typed Map class (dict replacement)
- A strongly typed List class (list replacement)
- Convenience functions for defining attrs models
- CI/CD scripts using dagger-io
- Deployed to Github
- Multi layered python package dependency management using pip-tools
.
├── examples # Example problems
├── scripts # Helper scripts
├── requirements # Python requirement files
├── build # Build scripts
├── unconstrained # Source code
├── tests # Test suite
├── Dockerfile
├── pytest.ini
├── LICENSE.md
└── README.md
- MiniZinc
- MiniZinc Manual
- MiniZinc Reference
- MiniZinc Basic Modelling Course
- MiniZinc Advanced Modelling Course
- Discrete Algorithms Course
- Google OR-Tools
- Google OR-Tools GitHub
- Google OR-Tools Manual
apt-get
andapt-install
takes forever which is very annoying when playing around with Dockerfiles. Presumably theres a way to cache it but I can't quite figure it out.
- local variables (eg: {localEnv:USERNAME}) are not passed through properly from WSL2 to the container build
- Does dagger contain its own internal docker engine?
- Can we use the hosts docker engine by default to avoid repeat image builds?