A fast, convenient project manager for Blender extensions.
Project description
blext
NOTE: This software should be considered alpha aka. unstable. It is not ready for production use. The feature-set is incomplete. The documentation is still very sparse.
With that said, we already find it quite useful. We hope you'll consider sharing your experiences with us, good and bad - for example, in the Discussions / Issues sections!
A project manager for Blender extensions, facilitating rapid and reliable development.
Features
- All You Need is
uv: The absolute only prerequisite isuvandblender. Another opinionated Python packager? Trust me, it's great. - Intuitive and Fast:
uvx blext devruns Blender with your extension. If you only changed some code, it runs nearly instantly! - Effortless Deps: Need a Python package for your addon?
Just
uv add <pkgname>. The next time you runblext dev, your package will be available from your extension code. - Single Source of Truth: Manage your Blender extension entirely from
pyproject.toml, using the new table[tool.blext].blextis explicit about any mistakes you might make, and for your trouble, generates a correctblender_manifest.tomlwhen making the addon. - Extension Analysis: "Look inside" your extension with ease.
Need to check the generated
blender_manifest.toml? Re-run Blender's own extension validation? Or just check a platform-specific deduction? Just useblext show!
Running blext
If you have uv, just run:
uvx blext
This relies on uv tools, which is similar to pipx.
This is the recommended way of using blext.
Using blext
For now, see examples/simple in this repository for an example of a working Blender extension.
Particular attention should be paid to the [tool.blext] section of pyproject.toml.
More in-depth documentation TBD.
Installing blext
Apart from uvx, installation can be one more or less as with any Python package:
pip install --user blext: The standardpippackage manager should work fine. It is strongly suggested to use a venv.uv tool install blext: This allows runningblextwithout prependinguvx blext.uv add --dev blext: This enables runninguv run blextfrom any otheruvproject.- Install from Source: See the
Contributingsection.
Documentation
For now, run blext alone, or run blext --help explicitly.
Subcommands also have help text available.
For example, blext dev --help.
More documentation TBD
Contributing to blext
How do I...
Get Started?
# Install uv.
# Clone the Repository
git clone URL
cd blext
# Install pre-commit hooks
uvx pre-commit install
# That's it! Change some code!
Test some Local Changes?
# Run the Local 'blext'
## - Add any CLI options you want!
uv run blext
Make a Commit?
# Stage Files for the Commit
## - Generally, make sure that "one commit is one change".
git add ... ## 'git add -A' works too, due to thorough .gitignores.
# Use 'commitizen' for Semantic Commits
## - Commit messages **are** CHANGELOG messages, and can also ref/close issues.
## - So make them good! `cz c` makes that easy.
uv run cz c ## 'git commit' always works, but is less convenient.
# When pre-commit Makes Changes
## - For example, adding a license header or reformatting something.
## - Just re-stage and re-commit - `cz c` will remember the commit message.
git add ... ## 'git add -A' works too, due to thorough .gitignores.
uv run cz c
Overview of Tools
Development of blext relies on the following tools:
uv: Package and project manager. Required.pre-commit: Enforces conventions at commit-time. Strongly suggested.commitizen: Commit and release manager. Enforced bypre-commit.ruff fmt: Deterministic code formatter. Enforced bypre-commit.ruff lint: Code linter. Not enforced (planned).mypy: Static type analysis. Not enforced (planned).
Making Commits
Commits are subject to pre-commit hooks, if installed.
To set this up, simply run:
uvx pre-commit install
Then, all pre-commit hooks will run after each commit.
Sometimes it's nice to run all of the pre-commit hooks manually:
uvx pre-commit run --all-files
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blext-0.3.0.tar.gz.
File metadata
- Download URL: blext-0.3.0.tar.gz
- Upload date:
- Size: 115.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f3871e4384728816ba2297f04633d089b5dc6e43105182cd4b95a75f7a179e0
|
|
| MD5 |
1a72bd5f4134abfd5599ee158a46faf1
|
|
| BLAKE2b-256 |
a014d7217ce50873ff63087d9a5958ca53cabab2d500dea5606afc1809a6a55c
|
File details
Details for the file blext-0.3.0-py3-none-any.whl.
File metadata
- Download URL: blext-0.3.0-py3-none-any.whl
- Upload date:
- Size: 35.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b05e3c39a91d4605a470f4f363cd54cd6815e3fc14c965180d2f5deb0e6201f
|
|
| MD5 |
9631837d170b51c9b7fc390fe55ea899
|
|
| BLAKE2b-256 |
ed4cdf37762c5448a43b79c223e4b77c2e81445f5321b0990683579ca2236f64
|