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
diagrams
has 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_module
so it only emitslog.debug
instead oflog.warning
when 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_collection
method on init, it needs to be called explicitely after, resulting in its attributeapps
to be empty on init; - Added
lazy
option toComposer.resolve_collection()
method to enforce lazy ordering even if the manifest attributeno_ordering
is disabled;
New features and refactoring which bring backward incompatible changes
- Implemented application order scheduling with
DEPENDENCIES
andPUSH_END
variables within application base module (__init__.py
); Manifest.apps
has been renamed toManifest.collection
;- Added manifest field
default_store_app
to set a default application name to add to applications without any dependency; - Added manifest field
default_store_app
to 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
tomli
dependency 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
--appsdir
to--repository
; - Renamed option
--base
to--template
; - Splitted CLI in subcommands, no longer need of
--mode
option; - Improved some test to be safer with importation;
- Added
purge
command 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.