This is a basic release to update Python support.
- Added support for Python 3.12 and 3.13;
- Added basic
pyproject.tomlto package for some behaviors with modern Pip and Setuptools; - Fixed some tests to stabilize order of some results with different Python versions;
- Fixed some CLI tests failing because of introduction of
pyproject.tomlto package;
This is only a minor release to enhance development environment.
- Added support for Python 3.11;
- Added minimal version for all requirements;
- Updated configuration for RTD build;
- Updated Makefile for minor enhancements;
- Updated "development" documentation for a note about Graphviz requirement to build doc diagrams;
- Updated script to freeze local dependencies;
- Updated Makefile to use ANSI color on task titles;
- Fixed package setup to not install Tox with dev extra requirements;
- Limited Tox suites to minimal and maximal supported Python version to speed up quality validation;
- Moved documentation theme to "Furo";
- Added a logo for this project;
- Improved documentation and release it to Read the documentation site;
- Built some diagrams for documentation with
diagrams package, a distinct makefile
command
diagramshas been added to build them into documentation static file directory; - Added new "check" method to composer and processors to display output debugging about project composition;
- Moved all Django related stuff to contrib.django;
- Fixed RTD configuration to use Python3.8 to fix building;
- Changed
Composer.find_app_moduleso it only emitslog.debuginstead oflog.warningwhen it does not find a module;
Refactoring which bring backward incompatible changes
- Refactored composer layer to use sub processors for part kinds (classes, django, text, etc..) so an unique composer instance can process multiple parts and this is more efficient that using a new composer for each part;
- Fixed resolving issues with application order resolving, Composer inheriter and
_MODULE_PYTHONPATH(that have be renamed to_APPLICATION_MODULE_PYTHONPATH); - Composer do not execute its
resolve_collectionmethod on init, it needs to be called explicitely after, resulting in its attributeappsto be empty on init; - Added
lazyoption toComposer.resolve_collection()method to enforce lazy ordering even if the manifest attributeno_orderingis disabled;
New features and refactoring which bring backward incompatible changes
- Implemented application order scheduling with
DEPENDENCIESandPUSH_ENDvariables within application base module (__init__.py); Manifest.appshas been renamed toManifest.collection;- Added manifest field
default_store_appto set a default application name to add to applications without any dependency; - Added manifest field
default_store_appto disable ordering resolution; - Fixed tests so every ones that performed structure sample importation are running into a temporary directory, not anymore importing on structures from "data_fixtures";
- Changed default manifest filename to
pyproject.toml; - Changed commandlines so they automatically and correctly manage command arguments to override manifest arguments;
This release ensure any settings can be managed from Manifest and that commandlines can override Manifest settings.
New Manifest system bring backward incompatible changes
- Fixed Makefile install since colorlog is no longer an optional dependency;
- Update tox config to remove colorlog switch and to avoid installing documentation and release stuff;
- Added Manifest model to store manifest datas;
- Added
tomlidependency to add TOML format support for manifest; - Requirements settings are now a part of manifest;
- Composer classes no longer accept options from args or kwargs, everything is driven by Manifest. However commandlines are able to override manifest options from arguments;
- RequirementsComposer have been removed since it has no meaning anymore, the 'requirements' commandline just directly use TextContentComposer;
- Move CLI to click instead of argparse;
- Renamed option
--appsdirto--repository; - Renamed option
--baseto--template; - Splitted CLI in subcommands, no longer need of
--modeoption; - Improved some test to be safer with importation;
- Added
purgecommand to definitively remove application module directory from repository that are not enabled in manifest;
- Fixed missing syspath argument usage from CLI;
- Fixed requirements dump from CLI;
- Fixed collector for some issues to work correctly;
- Fixed importer for some packages which add a Meta path finder in the old way (like for
deprecated
imp); - Added a new test around importer;
- Removed some forgotten print usage from code;
- Moved package __init__ to importlib instead of setuptools stuff;
- Made the colorlog dependancy optional so by default the package has not any dependancy;
- Added basic commandline with 'version' and 'requirements' modes for now;
Not published to Pypi
First commit with working stuff and initial composers. Still needs a CLI.