Generates a Python project-specific Makefile by using an extensible library of configurable Makefile snippets.
Project description
mxmake [mɪks meɪk] generates a project-specific Makefile by using an extensible library of configurable Makefile snippets.
It targets the development environments for Python packages but may be used outside of this playground.
Documentation
The detailed mxmake
documentation is available mxstack.github.io/mxmake.
Copyright
- Copyright (c) 2022-2023 mxstack Contributors
- BSD 2-clause license (see below)
Contributors
- Robert Niederreiter
- Jens Klein
Changelog
1.0a1 (2023-05-05)
-
Add
zest-releaser
domain toapplications
topic. -
Support custom makefile include.
-
Support
pytest
as test runner and make it default if not configured otherwise. -
Add
RUN_TARGET
setting tobase
domain and generaterun
target inMakefile
. -
Create
twisted
domain inapplications
topic. -
Test and coverage templates consider
mxmake-test-path
,mxmake-source-path
andmxmake-omit-path
insettings
section ofmx.ini
to support inclusion of local package inrun-tests.sh
andrun-coverage.sh
scripts. -
Create
scss
domain injs
topic. -
Create
gettext
domain ini18n
topic. -
Create
lingua
domain ini18n
topic. -
Conditional add local [requirement|constraints}.txt to LOCAL_PACKAGE_FILES.
-
Generate one Makefile from snippets instead of including several files from subfolder.
-
Semantic overhaul. "Domains" become "Topics" and "Makefile" becomes "Domain".
-
Use inquirer to configure included domains and targets.
-
Generate initial
mx.ini
config file. -
Generate "Topic" and "Domain" docs.
-
Change docs format from
rst
tomd
. -
Rename
_SENTINEL
to_TARGET
in domains. -
generic
install
dirty
andclean
targets in main makefile template. -
Rename
.sentinels
folder to.mxmake-sentinels
. -
Provide a set of default targets and a mechanism to extend it's dependency targets in domain make files.
-
Rename
install
domain topackages
. -
Rename
files
domain tomxfiles
. -
Rename
venv
domain tomxenv
. -
Extend hook to generate
sources
dependency targets for package reinstall (setup.py, setup.cfg, pyproject.toml, requirements.txt, constraints.txt). -
Move
tests
andcoverage
domains toqa
topic. -
Create
black
,mypy
,isort
and domains inqa
topic. -
Move
system-dependencies
tosystem
topic. -
Rename
docs
domain tosphinx
and move todocs
topic. -
Create
zpretty
domains inqa
topic. -
Add topic related metadata containing a topic description.
-
Create
npm
domains injs
topic. -
Create
jsdoc
domain, indocs
topic. -
Create
rollup
domains injs
topic. -
Create
karma
domain, injs
topic. -
Create
zope
domain, inapplications
topic. -
Add
soft-depends
setting in domains to define conditional order of domain rendering. -
Make
sources
target an optional dependency. -
Extend makefile parser to provide multi line settings.
-
Take local package into account to "dirty" if there (pyproject.toml, setup.[cfg|py]
-
Check for the existence of pip in
*-clean
targets before uninstalling a package, to ensure the targets are working when running via the defaultclean
target, where the entire virtual env gets removed. -
Remove redundant dependencies from
zope
domain. -
sources
domain is now a soft dependency ofmxfiles
domain instead of thepackages
domain. This ensures source package checkout happens before mxmake generates files, because templates might gain information from source packages if present. -
karma
androllup
targets depend onNPM_TARGET
now.
0.1 (2022-05-19)
- Initial release.
License
Copyright (c) 2022-2023, mxstack Contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mxmake-1.0a1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df7bbbe95604ed1079243406018fb8906aebe71f297ca6d812caa62386a6c01a |
|
MD5 | 1d801186ef6da9810cdd214678b97326 |
|
BLAKE2b-256 | 8ffe553a88bfb315f4f5cb3f859d316a0f9c8f590ca47f460fc0079efd52e47f |