# makex
<!-- heading -->
Makex is a new and simplified build and automation tool.
It __*makex*__ stuff happen. 🙂
<!-- heading:end -->
<!-- features -->
## What Makex is used for
- Compiling software/applications/firmware
- Building file systems/trees/images/file archives
- Building and deploying websites and web applications
- Running things repeatably
- Replacing most or all of the other build systems
## Features 🍩
- Task based
- Familiar Syntax
- File Hashing and Checksums
- Dependency Graphs
- Caching
- Workspaces
- Copy on Write
<!-- features:end -->
<!-- links -->
## Links 🔗
- [Documentation](https://meta.company/go/makex)
- [Installation Instructions](https://documents.meta.company/makex/latest/install)
- [Troubleshooting](https://documents.meta.company/makex/latest/trouble)
- Support: [Google Groups](http://groups.google.com/group/makex) or [makex@googlegroups.com](mailto://makex@googlegroups.com)
<!-- links:end -->
<!-- quick-start -->
## Requirements
- Python >= 3.9
## Quick Start
1. Install:
```shell
pip install makex
```
2. Define a Makex file and name it `Makexfile` ( or `makexfile` if you prefer):
```python
task(
name="hello-world",
steps=[
write("hello-world.txt", "Hello World!"),
# or, you can use the shell, but it is not recommended:
# shell(f"echo 'Hello World!' > {self.path}/hello-world.txt"),
# you may also execute things:
# execute("echo", "Hello World!"),
# or just print things:
# print("Hello World!"),
# more actions can go here; such as copying, mirroring or archiving...
],
outputs=[
"hello-world.txt",
],
)
```
3. Run makex, specifying the task name:
```shell
makex run :hello-world
```
4. A file at `$PWD/_output_/hello-world/hello-world.txt` shall have the following contents:
```
Hello World!
```
Read the [documentation](https://meta.company/go/makex) to learn more.
## Limitations
- Mac support is not tested.
- Windows is not tested or supported (yet).
## Pronunciation 🗣
Makex is pronounced "makes", ˈmeɪks, ˈmeɪkˈɛks (or just "make" 🙂)
## Related
- [Make](https://en.wikipedia.org/wiki/Make_(software))
## Coming Soon
- Dynamic Task/Resource Allocation
- Task Tags/Labels
- Regular Expressions
- Intellij/VSCode integration
```{note}
This is an early release of Makex. Things may change. Those changes will be noted in the HISTORY file (especially major ones).
With that, Makex is being used extensively by us. We've created many tasks and Makex files, and we don't want to create more work. 🫡
If you have any problems, feel free to contact us.
```
Raw data
{
"_id": null,
"home_page": null,
"name": "makex",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "build, make, automation",
"author": "Nate Skulic, MetaCompany",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/b1/90/8ae0616021632ab58595a8cbf9033b313d33ce817419b0387510ea66a33a/makex-20250102.tar.gz",
"platform": null,
"description": "# makex\n\n<!-- heading -->\n\nMakex is a new and simplified build and automation tool.\n\nIt __*makex*__ stuff happen. \ud83d\ude42\n\n<!-- heading:end -->\n\n<!-- features -->\n\n## What Makex is used for\n\n- Compiling software/applications/firmware\n- Building file systems/trees/images/file archives\n- Building and deploying websites and web applications\n- Running things repeatably\n- Replacing most or all of the other build systems\n\n## Features \ud83c\udf69\n\n- Task based\n- Familiar Syntax\n- File Hashing and Checksums\n- Dependency Graphs\n- Caching\n- Workspaces\n- Copy on Write\n\n<!-- features:end -->\n\n<!-- links -->\n## Links \ud83d\udd17\n\n- [Documentation](https://meta.company/go/makex)\n- [Installation Instructions](https://documents.meta.company/makex/latest/install)\n- [Troubleshooting](https://documents.meta.company/makex/latest/trouble)\n- Support: [Google Groups](http://groups.google.com/group/makex) or [makex@googlegroups.com](mailto://makex@googlegroups.com)\n\n<!-- links:end -->\n\n<!-- quick-start -->\n\n## Requirements\n\n- Python >= 3.9\n\n## Quick Start\n\n1. Install:\n\n ```shell\n pip install makex\n ```\n\n2. Define a Makex file and name it `Makexfile` ( or `makexfile` if you prefer):\n\n ```python \n task(\n name=\"hello-world\",\n steps=[\n write(\"hello-world.txt\", \"Hello World!\"),\n \n # or, you can use the shell, but it is not recommended:\n # shell(f\"echo 'Hello World!' > {self.path}/hello-world.txt\"),\n \n # you may also execute things:\n # execute(\"echo\", \"Hello World!\"),\n \n # or just print things:\n # print(\"Hello World!\"),\n \n # more actions can go here; such as copying, mirroring or archiving...\n ],\n outputs=[\n \"hello-world.txt\",\n ],\n )\n ```\n\n3. Run makex, specifying the task name:\n\n ```shell\n makex run :hello-world\n ```\n\n4. A file at `$PWD/_output_/hello-world/hello-world.txt` shall have the following contents:\n\n ```\n Hello World!\n ```\n\nRead the [documentation](https://meta.company/go/makex) to learn more.\n\n## Limitations\n\n- Mac support is not tested.\n- Windows is not tested or supported (yet).\n\n\n## Pronunciation \ud83d\udde3\n\nMakex is pronounced \"makes\", \u02c8me\u026aks, \u02c8me\u026ak\u02c8\u025bks (or just \"make\" \ud83d\ude42)\n\n## Related\n\n- [Make](https://en.wikipedia.org/wiki/Make_(software))\n\n## Coming Soon\n\n- Dynamic Task/Resource Allocation\n- Task Tags/Labels\n- Regular Expressions\n- Intellij/VSCode integration\n\n```{note}\nThis is an early release of Makex. Things may change. Those changes will be noted in the HISTORY file (especially major ones).\n\nWith that, Makex is being used extensively by us. We've created many tasks and Makex files, and we don't want to create more work. \ud83e\udee1\n\nIf you have any problems, feel free to contact us. \n```\n",
"bugtrack_url": null,
"license": "LicenseRef-MetaCompany-Source-License-2024-1",
"summary": "Build tool",
"version": "20250102",
"project_urls": {
"Documentation": "https://meta.company/go/makex",
"History": "https://hg.sr.ht/~metacompany/makex/browse/HISTORY.md?rev=tip",
"Homepage": "https://meta.company/go/makex",
"Repository": "https://hg.sr.ht/~metacompany/makex"
},
"split_keywords": [
"build",
" make",
" automation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b1908ae0616021632ab58595a8cbf9033b313d33ce817419b0387510ea66a33a",
"md5": "98129f2e7e3aad494a163cd04f137550",
"sha256": "decf7a66bf009ebe1578b9adc450b05444ff679aa3aea39e80a00d33a74f5e9f"
},
"downloads": -1,
"filename": "makex-20250102.tar.gz",
"has_sig": false,
"md5_digest": "98129f2e7e3aad494a163cd04f137550",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 138287,
"upload_time": "2025-01-20T05:40:17",
"upload_time_iso_8601": "2025-01-20T05:40:17.062238Z",
"url": "https://files.pythonhosted.org/packages/b1/90/8ae0616021632ab58595a8cbf9033b313d33ce817419b0387510ea66a33a/makex-20250102.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-20 05:40:17",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "makex"
}