========
Features
--------
- Add git tag command to simplify git tagging
The main advantage over plain git tag is that in case it’s ran on CI, it will
use the author of the last commit as the author of the tag. This allows you
to easily create tags in CI without having a hardcodec ‘CI’ author.
- Support verbosity via env variable
This is required to use verobisty in the code that is running before the
command line arguments are parsed (such as loading scripts so they are
available for completion).
- peltak-todos can now extract from multiple paths
You can now pass multiple paths to a `peltak todos` invocation and the plugin
will parse files in both paths and combine the results.
- Inject a few helper functions into scripts
The scripts can now use 2 common functions: `cprint` and `header`. They
directly correspond to the existing jinja filters of the same name. They make
more sense as injected functions. Especially from a consistency point of
view. As a bonus, the invocations are also shoreter.
- Support script properties without nesting in peltak object
- Combine plugin and scripts CLIs
Until now, the CLI generated from the scripts would overwrite the ones
defined in plugins. This was especially annoying for groups as a single
script could remove access to a whole CLI group provided by plugins. From now
on, the plugins CLIs will take priority and the scripts commands will be
merged with it. If the script and plugin commands CLI paths clash, we will
raise an error prompting the user to change the script name.
Changes
-------
- Scripts have to explicitly specify used builtins
Having unknown funcitons in the scripts might be confusing for people
unfamiliar with peltak. Now at least they can guess the unknown functions are
injected by peltak, since the header has to explicitly say it’s using them.
Gives a clear indication of the direction to investigate in when faced with
this.
- peltak.yaml as the default poject config file
Dev tasks
---------
- Update poetry lock file
- Fix test-all script
- header script builtin should not depend on cprint
- Remove changelog dependency on attrs
Missed when attrs was removed from the project. All of that can be now
implemented using dataclasses.
- Bump dependencies
- Simplify verbose logging
There are 2 new functions in the log module to facilitate verbose logging.
Also the verbosity context should now be available everywhere.
- Update some docstrings
- Save CI cache earlier
Save the cache right after generating it so we reduce the build time even if
the checks and tests fail.
- Dirty hack to fix CI pipeline
Instead of defaulting to bash, we should probably try to implement the
builtins in a way that works on /bin/sh. Or add the ability to specify the
default shell.
- Explicitly use the calling shell for scripts
Popen defaults to /bin/sh which might not have all the features used by the
scripts.
- Move things around in the script loader module
Keep things related to each other closer.
- Move changelog docs from core to the plugin project
- Move pre-commit implementation to a peltak script