Changelog ========= All notable changes to the OptiX project are documented in this file. The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_. [Unreleased] ------------ Added ~~~~~ - OR-Tools solver integration with ``OXORToolsSolverInterface`` - Comprehensive solver interface framework (``OXSolverInterface``) - Solution management system with ``OXSolverSolution`` and ``OXSolutionStatus`` - Special constraints support (``OXSpecialConstraints``) - Solver factory pattern for easy solver selection - Bus assignment problem example demonstrating real-world usage - Diet problem optimization example showcasing classic linear programming - Enhanced constraint value tracking and evaluation - Comprehensive package structure with proper ``__init__.py`` files - Extended test coverage for all major components - Comprehensive API documentation across all modules - Complete Sphinx documentation with modern themes Enhanced ~~~~~~~~ - Problem classes now support constraint satisfaction problems (CSP) - Improved variable creation from database objects - Enhanced expression handling in ``OXpression`` - Better serialization support for complex data structures - Extended utility functions for class loading and management - Documentation coverage for base, data, constraints, OXpression, serialization, utilities, variables, solvers, and test modules - Sample problem documentation with detailed API references Fixed ~~~~~ - Core framework bugs and improved test functionality - Variable and constraint management in solver interfaces - Solution retrieval and value tracking - Database integration and object relationships - Fraction calculation and import paths in constraints module [1.0.0] - 2024-12-15 -------------------- Added ~~~~~ - Initial stable release of OptiX Mathematical Optimization Framework - Complete documentation system with Sphinx - Multi-solver architecture supporting OR-Tools and Gurobi - Three problem types: CSP, LP, and GP with progressive complexity - Special constraints for non-linear operations - Database integration with OXData and OXDatabase - Comprehensive examples and tutorials - Full API documentation - Custom HTML and LaTeX themes - Interactive documentation features Changed ~~~~~~~ - Reorganized project structure for better maintainability - Improved import paths and module organization - Enhanced error handling and validation - Standardized naming conventions across all modules [0.1.0] - 2024-06-01 -------------------- Added ~~~~~ - Initial release of OptiX - Framework for defining and solving optimization problems - Support for linear programming (LP) and goal programming (GP) - Decision variables with bounds - Constraint definition with relational operators - Objective function creation (minimize/maximize) - Custom exception handling with OXception - Data management with OXData and OXDatabase - Variable management with OXVariable and OXVariableSet - Serialization utilities - Class loading utilities Requirements ~~~~~~~~~~~~ - Python 3.12 or higher - Poetry for dependency management Migration Guide --------------- Upgrading from 0.1.0 to 1.0.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Import Changes:** .. code-block:: python # Old (0.1.0) from problem.OXProblem import OXLPProblem from constraints.OXConstraint import RelationalOperators from solvers.OXSolverFactory import solve # New (1.0.0) from problem import OXLPProblem, ObjectiveType from constraints import RelationalOperators from solvers import solve **API Changes:** - Simplified import structure - Enhanced solver interface - Improved error handling - Better documentation integration **New Features:** - Gurobi solver support - Special constraints - Comprehensive documentation - Enhanced examples Deprecation Notices ------------------- **Version 1.0.0:** - None **Future Deprecations:** - Legacy import paths will be deprecated in version 2.0.0 - Direct solver instantiation will be replaced by factory pattern Breaking Changes ---------------- **Version 1.0.0:** - Import path restructuring (see migration guide) - Solver interface standardization - Enhanced type checking Security Updates ---------------- **Version 1.0.0:** - Enhanced input validation - Improved error handling - Secure serialization methods Performance Improvements ------------------------ **Version 1.0.0:** - Optimized variable and constraint management - Improved solver interface performance - Enhanced memory usage for large problems - Better algorithm complexity for search operations Bug Fixes ---------- **Version 1.0.0:** - Fixed constraint evaluation edge cases - Resolved variable bounds validation issues - Corrected serialization of complex objects - Fixed solver status reporting Known Issues ------------ **Current Issues:** - None known **Workarounds:** - For very large problems (>100k variables), consider problem decomposition - Use appropriate solver timeouts for complex problems Contributing ------------ Contributions to OptiX are welcome! Please see our contribution guidelines: 1. **Bug Reports**: Use GitHub Issues with detailed reproduction steps 2. **Feature Requests**: Discuss in GitHub Discussions before implementation 3. **Code Contributions**: Follow our development guidelines 4. **Documentation**: Help improve and expand documentation Reporting Issues ~~~~~~~~~~~~~~~ When reporting issues, please include: - OptiX version - Python version - Operating system - Minimal reproduction example - Expected vs. actual behavior - Error messages and stack traces Release Process -------------- OptiX follows semantic versioning: - **Major** (X.0.0): Breaking changes, major new features - **Minor** (0.X.0): New features, enhancements, backwards compatible - **Patch** (0.0.X): Bug fixes, documentation updates Release Schedule ~~~~~~~~~~~~~~~ - **Major releases**: Annually - **Minor releases**: Quarterly - **Patch releases**: As needed for critical fixes Acknowledgments -------------- **Core Contributors:** - Tolga BERBER - Lead Developer & Project Architect - Beyzanur SİYAH - Core Developer & Research Assistant **Special Thanks:** - OR-Tools team for the excellent optimization library - Gurobi team for solver integration support - OptiX community for feedback and contributions **Dependencies:** - OR-Tools: Google's optimization tools - Gurobi: Commercial optimization solver - Python ecosystem: NumPy, SciPy, and other supporting libraries License Information ------------------ OptiX is licensed under the Academic Free License (AFL) v. 3.0. See the `LICENSE <../license.html>`_ file for full license text. **Key Points:** - Academic and research use encouraged - Commercial use permitted with attribution - Modifications and redistribution allowed - No warranty provided Support and Resources -------------------- **Documentation:** - Complete API reference - Tutorials and examples - User guides and best practices **Community:** - GitHub Discussions for questions and ideas - GitHub Issues for bug reports - Academic publications and research papers **Professional Support:** - Consulting services available - Custom development and integration - Training and workshops Version Comparison ------------------ .. raw:: html
Feature v0.1.0 v1.0.0 Planned v2.0.0
Problem Types LP, GP CSP, LP, GP + MIP, QP
Solvers OR-Tools OR-Tools, Gurobi + CPLEX, SCIP
Special Constraints Basic Full support + Advanced nonlinear
Documentation Basic Comprehensive + Interactive tutorials
Examples Limited Extensive + Industry-specific
Download Information ------------------- **Current Stable Release:** 1.0.0 **Installation:** .. code-block:: bash # Latest stable git clone https://github.com/yourusername/optix.git cd OptiX poetry install **Development Version:** .. code-block:: bash # Development branch git clone -b develop https://github.com/yourusername/optix.git **Release Archives:** - `v1.0.0 Source `_ - `v0.1.0 Source `_ Statistics ---------- **Project Metrics (v1.0.0):** - Lines of code: ~15,000 - Test coverage: >95% - Documentation pages: 50+ - Example problems: 10+ - Supported platforms: Windows, macOS, Linux **Community Growth:** - Contributors: 2+ - GitHub stars: Growing - Academic citations: In progress - Commercial adoption: Emerging