mxmake


Namemxmake JSON
Version 1.0a3 PyPI version JSON
download
home_page
SummaryGenerates a Python project-specific Makefile by using an extensible library of configurable Makefile snippets.
upload_time2024-02-06 07:37:54
maintainer
docs_urlNone
author
requires_python>=3.7
licenseBSD 2-Clause License
keywords development deployment environment
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img src="docs/source/_static/mxmake-logo.svg?raw=true"
     alt="mxmake logo"
     align="right"
     style="float: right; margin-left: 10px; margin-bottom: 10px; width: 25%" /> *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](https://img.shields.io/pypi/v/mxmake.svg)](https://pypi.python.org/pypi/mxmake)
[![Number of PyPI downloads](https://img.shields.io/pypi/dm/mxmake.svg)](https://pypi.python.org/pypi/mxmake)
[![tests](https://github.com/mxstack/mxmake/actions/workflows/test.yaml/badge.svg)](https://github.com/mxstack/mxmake/actions/workflows/test.yaml)
[![mypy](https://github.com/mxstack/mxmake/actions/workflows/mypy.yml/badge.svg)](https://github.com/mxstack/mxmake/actions/workflows/mypy.yml)
[![Lint](https://github.com/mxstack/mxmake/actions/workflows/codestyle.yml/badge.svg)](https://github.com/mxstack/mxmake/actions/workflows/codestyle.yml)

# Documentation

The detailed `mxmake` documentation is available [mxstack.github.io/mxmake](https://mxstack.github.io/mxmake).


# Copyright

- Copyright (c) 2022-2023 mxstack Contributors
- BSD 2-clause license (see below)

Contributors
============

- Robert Niederreiter
- Jens Klein
# Changelog

## 1.0a3 (2024-02-06)

- Add `typecheck` target and use it for mypy instead of `check` target.

- Add basic CI config file generation for github actions.

- Add `ruff` domain to `qa` topic.

- Fix exporting path in `jsdoc` target.

## 1.0a2 (2023-07-07)

- Add support for `pip.conf` file.

- Fixes #18: VENV_CREATE is ignored.

- Fix error when new source package gets added to `mx.ini` in
  `Hook.generate_additional_sources_targets`.

- Add `PROJECT_CONFIG` as the dependency target of `SOURCES_TARGET` to make
  sure the target runs when a new source package gets added to `mx.ini`.

## 1.0a1 (2023-05-05)

- Add `zest-releaser` domain to `applications` topic.

- Support custom makefile include.

- Support `pytest` as a 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.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "mxmake",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "development,deployment,environment",
    "author": "",
    "author_email": "MX Stack Developers <dev@bluedynamics.com>",
    "download_url": "https://files.pythonhosted.org/packages/2a/20/a5b7ec7832c50ed8d84cb05a8b07803889c80993069703de2ab6ee042e42/mxmake-1.0a3.tar.gz",
    "platform": null,
    "description": "<img src=\"docs/source/_static/mxmake-logo.svg?raw=true\"\n     alt=\"mxmake logo\"\n     align=\"right\"\n     style=\"float: right; margin-left: 10px; margin-bottom: 10px; width: 25%\" /> *mxmake* [m\u026aks me\u026ak] generates a project-specific Makefile by using an extensible library of configurable Makefile snippets.\n\nIt targets the development environments for Python packages but may be used outside of this playground.\n\n[![Latest PyPI version](https://img.shields.io/pypi/v/mxmake.svg)](https://pypi.python.org/pypi/mxmake)\n[![Number of PyPI downloads](https://img.shields.io/pypi/dm/mxmake.svg)](https://pypi.python.org/pypi/mxmake)\n[![tests](https://github.com/mxstack/mxmake/actions/workflows/test.yaml/badge.svg)](https://github.com/mxstack/mxmake/actions/workflows/test.yaml)\n[![mypy](https://github.com/mxstack/mxmake/actions/workflows/mypy.yml/badge.svg)](https://github.com/mxstack/mxmake/actions/workflows/mypy.yml)\n[![Lint](https://github.com/mxstack/mxmake/actions/workflows/codestyle.yml/badge.svg)](https://github.com/mxstack/mxmake/actions/workflows/codestyle.yml)\n\n# Documentation\n\nThe detailed `mxmake` documentation is available [mxstack.github.io/mxmake](https://mxstack.github.io/mxmake).\n\n\n# Copyright\n\n- Copyright (c) 2022-2023 mxstack Contributors\n- BSD 2-clause license (see below)\n\nContributors\n============\n\n- Robert Niederreiter\n- Jens Klein\n# Changelog\n\n## 1.0a3 (2024-02-06)\n\n- Add `typecheck` target and use it for mypy instead of `check` target.\n\n- Add basic CI config file generation for github actions.\n\n- Add `ruff` domain to `qa` topic.\n\n- Fix exporting path in `jsdoc` target.\n\n## 1.0a2 (2023-07-07)\n\n- Add support for `pip.conf` file.\n\n- Fixes #18: VENV_CREATE is ignored.\n\n- Fix error when new source package gets added to `mx.ini` in\n  `Hook.generate_additional_sources_targets`.\n\n- Add `PROJECT_CONFIG` as the dependency target of `SOURCES_TARGET` to make\n  sure the target runs when a new source package gets added to `mx.ini`.\n\n## 1.0a1 (2023-05-05)\n\n- Add `zest-releaser` domain to `applications` topic.\n\n- Support custom makefile include.\n\n- Support `pytest` as a test runner and make it default if not configured\n  otherwise.\n\n- Add `RUN_TARGET` setting to `base` domain and generate `run` target in\n  `Makefile`.\n\n- Create `twisted` domain in `applications` topic.\n\n- Test and coverage templates consider `mxmake-test-path`, `mxmake-source-path`\n  and `mxmake-omit-path` in `settings` section of `mx.ini` to support inclusion\n  of local package in `run-tests.sh` and `run-coverage.sh` scripts.\n\n- Create `scss` domain in `js` topic.\n\n- Create `gettext` domain in `i18n` topic.\n\n- Create `lingua` domain in `i18n` topic.\n\n- Conditional add local [requirement|constraints}.txt to LOCAL_PACKAGE_FILES.\n\n- Generate one Makefile from snippets instead of including several files from\n  subfolder.\n\n- Semantic overhaul. \"Domains\" become \"Topics\" and \"Makefile\" becomes \"Domain\".\n\n- Use inquirer to configure included domains and targets.\n\n- Generate initial `mx.ini` config file.\n\n- Generate \"Topic\" and \"Domain\" docs.\n\n- Change docs format from `rst` to `md`.\n\n- Rename `_SENTINEL` to `_TARGET` in domains.\n\n- generic `install` `dirty` and `clean` targets in main makefile template.\n\n- Rename `.sentinels` folder to `.mxmake-sentinels`.\n\n- Provide a set of default targets and a mechanism to extend it's dependency\n  targets in domain make files.\n\n- Rename `install` domain to `packages`.\n\n- Rename `files` domain to `mxfiles`.\n\n- Rename `venv` domain to `mxenv`.\n\n- Extend hook to generate `sources` dependency targets for package reinstall\n  (setup.py, setup.cfg, pyproject.toml, requirements.txt, constraints.txt).\n\n- Move `tests` and `coverage` domains to `qa` topic.\n\n- Create `black`, `mypy`, `isort` and domains in `qa` topic.\n\n- Move `system-dependencies` to `system` topic.\n\n- Rename `docs` domain to `sphinx` and move to `docs` topic.\n\n- Create `zpretty` domains in `qa` topic.\n\n- Add topic related metadata containing a topic description.\n\n- Create `npm` domains in `js` topic.\n\n- Create `jsdoc` domain, in `docs` topic.\n\n- Create `rollup` domains in `js` topic.\n\n- Create `karma` domain, in `js` topic.\n\n- Create `zope` domain, in `applications` topic.\n\n- Add `soft-depends` setting in domains to define conditional order of domain\n  rendering.\n\n- Make `sources` target an optional dependency.\n\n- Extend makefile parser to provide multi line settings.\n\n- Take local package into account to \"dirty\" if there (pyproject.toml,\n  setup.[cfg|py]\n\n- Check for the existence of pip in `*-clean` targets before uninstalling a\n  package, to ensure the targets are working when running via the default\n  `clean` target, where the entire virtual env gets removed.\n\n- Remove redundant dependencies from `zope` domain.\n\n- `sources` domain is now a soft dependency of `mxfiles` domain instead of the\n  `packages` domain. This ensures source package checkout happens before mxmake\n  generates files, because templates might gain information from source\n  packages if present.\n\n- `karma` and `rollup` targets depend on `NPM_TARGET` now.\n\n## 0.1 (2022-05-19)\n\n- Initial release.\n\n# License\n\nCopyright (c) 2022-2023, mxstack Contributors\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice, this\n  list of conditions and the following disclaimer in the documentation and/or\n  other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n",
    "bugtrack_url": null,
    "license": "BSD 2-Clause License",
    "summary": "Generates a Python project-specific Makefile by using an extensible library of configurable Makefile snippets.",
    "version": "1.0a3",
    "project_urls": {
        "Bug Reports": "https://github.com/mxstack/mxmake/issues",
        "Documentation": "https://mxstack.github.io/mxmake",
        "Homepage": "https://github.com/mxstack/mxmake",
        "Source": "https://github.com/mxstack/mxmake"
    },
    "split_keywords": [
        "development",
        "deployment",
        "environment"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d497523eece774608fae8831859be081fbf8cadec2dc3e245bf523aea94c9ae",
                "md5": "0a058101893a5c44b56a15b5a01bee08",
                "sha256": "5bce766c7a5fc700a05f0b023c35680cd49e820cd0bdf4df380b56d0946ab466"
            },
            "downloads": -1,
            "filename": "mxmake-1.0a3-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0a058101893a5c44b56a15b5a01bee08",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.7",
            "size": 54686,
            "upload_time": "2024-02-06T07:37:52",
            "upload_time_iso_8601": "2024-02-06T07:37:52.532335Z",
            "url": "https://files.pythonhosted.org/packages/2d/49/7523eece774608fae8831859be081fbf8cadec2dc3e245bf523aea94c9ae/mxmake-1.0a3-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a20a5b7ec7832c50ed8d84cb05a8b07803889c80993069703de2ab6ee042e42",
                "md5": "edf3c3dd9502a6e78011126ed6d3c9b4",
                "sha256": "4308ee616ef94c9c68329e01ae020d2f04734b8d3e68decbfc4a752305d5fe22"
            },
            "downloads": -1,
            "filename": "mxmake-1.0a3.tar.gz",
            "has_sig": false,
            "md5_digest": "edf3c3dd9502a6e78011126ed6d3c9b4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 38877,
            "upload_time": "2024-02-06T07:37:54",
            "upload_time_iso_8601": "2024-02-06T07:37:54.535479Z",
            "url": "https://files.pythonhosted.org/packages/2a/20/a5b7ec7832c50ed8d84cb05a8b07803889c80993069703de2ab6ee042e42/mxmake-1.0a3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-06 07:37:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mxstack",
    "github_project": "mxmake",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mxmake"
}
        
Elapsed time: 0.18965s