Skip to main content

Generates a Python project-specific Makefile by using an extensible library of configurable Makefile snippets.

Project description

mxmake logo 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.

Latest PyPI version Number of PyPI downloads tests mypy Lint

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 to applications topic.

  • Support custom makefile include.

  • Support pytest as test runner and make it default if not configured otherwise.

  • Add RUN_TARGET setting to base domain and generate run target in Makefile.

  • Create twisted domain in applications topic.

  • Test and coverage templates consider mxmake-test-path, mxmake-source-path and mxmake-omit-path in settings section of mx.ini to support inclusion of local package in run-tests.sh and run-coverage.sh scripts.

  • Create scss domain in js topic.

  • Create gettext domain in i18n topic.

  • Create lingua domain in i18n 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 to md.

  • Rename _SENTINEL to _TARGET in domains.

  • generic install dirty and clean 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 to packages.

  • Rename files domain to mxfiles.

  • Rename venv domain to mxenv.

  • Extend hook to generate sources dependency targets for package reinstall (setup.py, setup.cfg, pyproject.toml, requirements.txt, constraints.txt).

  • Move tests and coverage domains to qa topic.

  • Create black, mypy, isort and domains in qa topic.

  • Move system-dependencies to system topic.

  • Rename docs domain to sphinx and move to docs topic.

  • Create zpretty domains in qa topic.

  • Add topic related metadata containing a topic description.

  • Create npm domains in js topic.

  • Create jsdoc domain, in docs topic.

  • Create rollup domains in js topic.

  • Create karma domain, in js topic.

  • Create zope domain, in applications 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 default clean target, where the entire virtual env gets removed.

  • Remove redundant dependencies from zope domain.

  • sources domain is now a soft dependency of mxfiles domain instead of the packages domain. This ensures source package checkout happens before mxmake generates files, because templates might gain information from source packages if present.

  • karma and rollup targets depend on NPM_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mxmake-1.0a1.tar.gz (36.8 kB view hashes)

Uploaded Source

Built Distribution

mxmake-1.0a1-py2.py3-none-any.whl (50.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page