First 0.3.0 Alpha
Pre-releaseThe first alpha of v0.3.0 is now ready! It's not available on PyPI, but you can build it from source.
Changelog represents all commits made between then and now
Changelog
[0.3.0-alpha-1] - 2023-09-03
Added support for auto-installing
Working on my birthday... sigh
Anyway, Bpy-Build now supports automatically installing to specific
Blender versions, either through the install_versions tag or the -v
argument. Now Bpy-Build's basic functionality has been returned, yay...
Also happy birthday to me ^_^
Changed actions to be Python based
Python based actions means less code to maintain on my end, and more
flexibility on the developer's end, win-win.
Now instead of forcing developers to use a limited subset of commands
and non-portable shell commands (curse you Windows), developers can now
define actions in Python like any regular Python script. No API, no
nothing, just the assumption that the script will be ran in the
intermediate directory.
Updated test recipe in Justfile
Changes to actions syntax
To make parsing easier, actions will now have the following syntax:
!action
This is not yet final, especially as I learn more on how YAML works, but
the final version will likely be simmilar.
Added basic argument parsing and attrs dependency
Since none of the existing libraries for argument parsing have quite
what I want, I decided to write my own argument parser in Python using a
class and attrs (https://www.attrs.org).
Why attrs instead of regular dataclasses? While dataclasses are based on
attrs design wise, attrs has the following advantages:
- Better defaults (good defaults are important)
- Fine control over the class, but nothing too complicated
- Version independence
The last one is important. Bpy-Build needs to support Python 3.9 and
above. Many good dataclass features meanwhile are 3.10+ however, which
means we are unable to use them. This discrepency in version support
will also only get wider as more time passes, hence why version
independence is so important.
Attrs does not have any runtime costs, it performs changes to the actual
class itself and Python bytecode, so the only costs are in Python's
compile time, most of which aren't massive (and likely improved in
Python 3.11 anyway)
While the class makes it seem like YAML will continue to be the config
file format, I'm still deciding between YAML and TOML
Updated pre-commit hook for Mypy
We forgot pretty printing and specifying the folder, whoops