Changelog#
All notable changes to CVXlab will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]#
Added#
variable_domainfield for data tables: replaces the old booleanintegerfield. Accepted values:integer(integer variables, $\mathbb{Z}$) orboolean(binary variables, ${0,1}$). Omitting the field keeps the default continuous domain. The deprecatedinteger: truesyntax is still accepted with a warning and automatically migrated tovariable_domain: integer.Installation docs: new Install from Dev Branch section with
git+httpsinstall instructions for users who want the latest unreleased features.Possibility to run only a selection of scenarios from Model.run_model() method, by specifying the
scenario_idxattribute as integer or list of integers corresponding to the index of scenarios in theModel.scenariosproperty.Per-problem solver and solver-settings routing for multi-problem runs (backend:
core.py,problem.py,database.py).
Changed#
Reorganized backend solve flow; moved database comparison/cleanup into dedicated helpers (
backend/database.py,backend/core.py).Split nonlinear tutorial assets into separate
model_nonlinearandmodel_decompositionsets underdocs/source/tutorials/production_planning_nonlinear.Bumped minimum
cvxpyversion to>=1.9.1(seepyproject.toml).Adjusted numerical default:
Defaults.NumericalSettings.SPARSE_MATRIX_ZEROS_THRESHOLDchanged from0.3to0.7(defaults.py).
Fixed#
Backward-compatibility migration for
integerfield: the migration block that convertsinteger: true→variable_domain: integer.README images now use absolute raw GitHub URLs so they render correctly on PyPI.
Corrected GitHub organization URL (
cvxgrp→cvxlab) throughout installation docs.Replaced unsupported
tab-set/tab-itemdirectives (sphinx-design) with plain RST in the citation section of the resources page.Integration tests and CI: integration tests now run across tutorial models and were updated to cover solver routing and tutorial assets (
tests/integration/test_integration.py).
[1.0.1] - 11 June 2026#
Added#
Frontend CLI (
cvxlab.frontend.run()): interactive menu-driven interface for model setup and execution. Modules:interface,session,actions,display.User-defined constants and operators: template modules (
user_defined_constants.py,user_defined_operators.py) for custom symbolic extensions; auto-imported when present in the model directory (issue #109).CSV input data support: models can now use CSV files as input data sources (issue #103).
Model.update_sets_tables(): update set definitions in an existing SQLite database without full regeneration.skip_tablesargument inModel.run_model()/Core.solve_integrated_problems(): selectively exclude tables from convergence checks.
Changed#
Python ≥ 3.11 required: bumped
requires-python; removedfrom __future__ import annotationsacross the codebase.Integrated-solving convergence refactored: reworked algorithm in
Core.solve_integrated_problems().Centralized
Defaults.LiteralTypes: sharedLiteraltype aliases consolidated, replacing scattered definitions.Identity matrix constant: now accepts a single set as dimensional argument (issue #101).
descriptioncolumns in data structures are no longer processed, allowing free text (issue #105).Removed
CRITICALlog level fromLogger.Pinned
pandas==2.3.3; removed deprecatederrors='ignore'arguments (pandas 3.0 compatibility).
Fixed#
util.normalize_dataframe(): improved NaN handling and blank-fill logic.SQLManager.dataframe_to_table(): string-type conversion and batch flag reset.Database.load_data_input_files_to_database(): input directory path reference and NaN replacement before SQLite export.Database.generate_blank_data_input_files(): correctedexcel_dir_pathargument.Model.run_model(): selected solver now correctly logged.util.pivot_dataframe_to_data_structure(): handle missing primary key column in Excel setup files.Various error-catching improvements for symbolic expression validation and settings inconsistencies (issues #102, #104, #106, #107, #108).
Documentation#
Tutorials merged into
resourcespage; standalonetutorials.rstremoved.Added production planning (non-linear) tutorial.
Added Models gallery and Publications sections to resources page.
Restructured
index.rst: workflow figure promoted, navigation table updated.
[1.0.1b1] - 17 December 2025#
Fixed#
Bug fix following 1.0.0b1 (incremented beta to 1.0.1b1)
[1.0.0b1] - 14 November 2025#
Added#
Modelclass for optimization problem managementSQLite-backed data management via
DatabaseandSQLManagerCVXPY integration for convex optimization solving
Support for independent and integrated (coupled) problem solving
Excel and YAML-based model settings definition
Symbolic expression parsing and validation
Initial set of built-in operators and constants
Basic logging and error handling framework
Documentation#
Initial user guide with workflow steps
API reference documentation
Tutorial: Simple model example
Installation guide
Contributing guidelines
Known Limitations#
Documentation under active development
API subject to change before 1.0.0 stable
Limited tutorial coverage
Limited test converage