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]#
[1.1.0] - 5 August 2026#
Added#
Introduced a redesigned guided terminal interface, available through
cvxlab.gui(), for configuring and managing the complete modeling workflow.Refactoring Model.run_model() method, adding three different solution modes: ‘parallel’ (default), ‘sequential’ (for linked sub-problems: results from one problem can be passed automatically to the next following a user-defined chain) and ‘integrated’ (working as the previous version).
Added selective scenario execution, easier inspection of available scenarios, and a model summary.
Added continuous, integer, and boolean variable domains through the new
domainsetting. The formerintegersetting is still migrated automatically.Added per-problem solver selection and solver settings for multi-problem models, together with optional IPOPT support for non-linear problems.
Changed#
Unified multi-problem execution around parallel, sequential, and integrated solution modes.
Replaced the early
cvxlab.run()interface with the redesignedcvxlab.gui()interface. Existing calls tocvxlab.run()must be updated.Improved validation of model settings, run configuration, variable filters, input files, and workbook contents, providing earlier and clearer feedback.
Improved selective data-table updates and overwrite handling for generated and imported data files.
Increased the minimum supported CVXPY version to 1.9.1 to allow explicit solution for nonlinear problems.
Fixed#
Improved sparse-variable handling: now sparse matrices are defined only for a given minimum matrix size.
Improved normalization of boolean values imported from Excel.
Made database cleanup and restoration more reliable, particularly on Windows.
Added clearer warnings for input data files that contain no values.
Preserved compatibility with the former
integrated_problemsargument through automatic migration to the new solution-mode configuration.
Documentation#
Added a complete guide for the redesigned interface and expanded the user guide for parallel, sequential, and integrated solution modes.
Added tutorials covering sequential workflows, nonlinear models, and decomposition into coupled convex sub-problems.
Added package-architecture and solution-mode diagrams, refreshed installation instructions, and added software citation metadata.
[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