# mopack
**mopack** (pronounced "ammopack") is a *multiple origin* package manager, with
an emphasis on C/C++ packages. It's designed to allow users to resolve package
dependencies from multiple package managers ("origins").
## Why mopack?
### Separate abstract and concrete dependencies
Generally speaking, developers of a project are more concerned about
dependencies in the abstract: if your project requires Boost v1.50+, that's all
that really matters. However, when building a project, you work with concrete
dependencies: you naturally have to download a particular version of Boost and
build/install it in a particular way. mopack supports this by letting a
project's build system asking how to use (link to) an abstract dependency, which
mopack will resolve via a particular concrete dependency.
### No configuration necessary
If you've already downloaded and installed a project's dependencies, you usually
don't need to do anything else. mopack can find dependencies using common
methods for the relevant platform (e.g. pkg-config, searching system paths).
### Easy overrides
To simplify building their project, developers can provide a default mopack
configuration so that a standard build just works without any extra effort.
However, people who *build* the project may prefer to resolve packages from
somewhere else. mopack makes this easy: simply pass in an extra mopack file with
new definitions for any dependency, and mopack will use those instead.
## Installation
mopack uses [setuptools][setuptools], so installation is much the same as any
other Python package:
```sh
$ pip install mopack
```
From there, you can start using mopack to build your software!
## License
This project is licensed under the [BSD 3-clause license](LICENSE).
[pypi-image]: https://img.shields.io/pypi/v/mopack.svg
[pypi-link]: https://pypi.python.org/pypi/mopack
[documentation-image]: https://img.shields.io/badge/docs-mopack-blue.svg
[documentation-link]: https://jimporter.github.io/mopack/
[ci-image]: https://github.com/jimporter/mopack/workflows/build/badge.svg
[ci-link]: https://github.com/jimporter/mopack/actions?query=branch%3Amaster+workflow%3Abuild
[codecov-image]: https://codecov.io/gh/jimporter/mopack/branch/master/graph/badge.svg
[codecov-link]: https://codecov.io/gh/jimporter/mopack
[setuptools]: https://pythonhosted.org/setuptools/
Raw data
{
"_id": null,
"home_page": "https://github.com/jimporter/mopack",
"name": "mopack",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "package manager",
"author": "Jim Porter",
"author_email": "itsjimporter@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ff/0f/3f3ced4a19798c12e15ac4c7e00a85b7aa2aaa4a8d7b09fba505ac6fae0a/mopack-0.1.0.tar.gz",
"platform": null,
"description": "# mopack\n**mopack** (pronounced \"ammopack\") is a *multiple origin* package manager, with\nan emphasis on C/C++ packages. It's designed to allow users to resolve package\ndependencies from multiple package managers (\"origins\").\n\n## Why mopack?\n\n### Separate abstract and concrete dependencies\n\nGenerally speaking, developers of a project are more concerned about\ndependencies in the abstract: if your project requires Boost v1.50+, that's all\nthat really matters. However, when building a project, you work with concrete\ndependencies: you naturally have to download a particular version of Boost and\nbuild/install it in a particular way. mopack supports this by letting a\nproject's build system asking how to use (link to) an abstract dependency, which\nmopack will resolve via a particular concrete dependency.\n\n### No configuration necessary\n\nIf you've already downloaded and installed a project's dependencies, you usually\ndon't need to do anything else. mopack can find dependencies using common\nmethods for the relevant platform (e.g. pkg-config, searching system paths).\n\n### Easy overrides\n\nTo simplify building their project, developers can provide a default mopack\nconfiguration so that a standard build just works without any extra effort.\nHowever, people who *build* the project may prefer to resolve packages from\nsomewhere else. mopack makes this easy: simply pass in an extra mopack file with\nnew definitions for any dependency, and mopack will use those instead.\n\n## Installation\n\nmopack uses [setuptools][setuptools], so installation is much the same as any\nother Python package:\n\n```sh\n$ pip install mopack\n```\n\nFrom there, you can start using mopack to build your software!\n\n## License\n\nThis project is licensed under the [BSD 3-clause license](LICENSE).\n\n[pypi-image]: https://img.shields.io/pypi/v/mopack.svg\n[pypi-link]: https://pypi.python.org/pypi/mopack\n[documentation-image]: https://img.shields.io/badge/docs-mopack-blue.svg\n[documentation-link]: https://jimporter.github.io/mopack/\n[ci-image]: https://github.com/jimporter/mopack/workflows/build/badge.svg\n[ci-link]: https://github.com/jimporter/mopack/actions?query=branch%3Amaster+workflow%3Abuild\n[codecov-image]: https://codecov.io/gh/jimporter/mopack/branch/master/graph/badge.svg\n[codecov-link]: https://codecov.io/gh/jimporter/mopack\n[setuptools]: https://pythonhosted.org/setuptools/\n\n\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "A multiple-origin package manager",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/jimporter/mopack"
},
"split_keywords": [
"package",
"manager"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "903161cd1c67cf2e35d30e12f6b9486c867a4c4a9457fc71d13416004d19b322",
"md5": "c2b04e908feec8dc0eca07fa73cf5539",
"sha256": "837f20a009066502473645b4d0532460c6023f023dbee2208a2667d54da8626b"
},
"downloads": -1,
"filename": "mopack-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c2b04e908feec8dc0eca07fa73cf5539",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 67699,
"upload_time": "2023-05-16T03:14:07",
"upload_time_iso_8601": "2023-05-16T03:14:07.373337Z",
"url": "https://files.pythonhosted.org/packages/90/31/61cd1c67cf2e35d30e12f6b9486c867a4c4a9457fc71d13416004d19b322/mopack-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ff0f3f3ced4a19798c12e15ac4c7e00a85b7aa2aaa4a8d7b09fba505ac6fae0a",
"md5": "c54ea58b4b562f842a92fe6d31002cb7",
"sha256": "8d8e36a19885db92c30d9b455f2974cd58832853b234a948c526d2ab4c1236e9"
},
"downloads": -1,
"filename": "mopack-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "c54ea58b4b562f842a92fe6d31002cb7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 54594,
"upload_time": "2023-05-16T03:14:09",
"upload_time_iso_8601": "2023-05-16T03:14:09.319398Z",
"url": "https://files.pythonhosted.org/packages/ff/0f/3f3ced4a19798c12e15ac4c7e00a85b7aa2aaa4a8d7b09fba505ac6fae0a/mopack-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-16 03:14:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jimporter",
"github_project": "mopack",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mopack"
}