potiuk opened a new pull request, #604:
URL: https://github.com/apache/burr/pull/604
## Changes
While verifying the release, I realised that there were a small issue with
setting up the environment - the installation instructions asked to install
burr without extras in local dev env, but that was not enoughm you need to also
install `cli` extra.
I have updated the docs appropriately, but also added an alternative
workflow for running the installation scripts with `uv` and the standard
"dependency groups". The dependency groups are already standardised and used by
`uv` and others - for example to install dev dependency group automatically
when `uv sync` is used.
This makes it as easy to run the scripts as possible without having all the
venv manual installation and syncing (uv does it for you).
## How I tested this
Prepared a rlease locally without having venv setup, uv nicely built UI
assets and wheel after just:
```bash
uv run python scripts/build_artifacts.py all --clean
```
Resulted with:
```
================================================================================
✅ Build Complete!
================================================================================
Wheel files are in the dist/ directory.
You can now upload to PyPI with:
twine upload dist/*.whl
```
## Notes
You could consider adding `developer` extra also to the `dev` dependency
group or even converting some of your extras to dependency groups. The drawback
of adding `apache-burr[developer]' to dependency group is that it will add a
lot more packages, but it will also allow you to do this:
```
uv run pytest
```
Without any prerequisites - installing python, configuring venv, etc. It
will **just** work
There are some other errors when you do it now, but you can likely solve
them easily to get it all **just** work.
In this case Instead of adding "apache-burr[cli]" and "flit" to dev
dependency group you could add inline project metadata to the script (this is a
very successful new way of specifying dependencies for scripts
https://peps.python.org/pep-0723/.
Something like that in `scripts/build_artifacts.py`:
```toml
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "click",
# "loguru",
# "click",
# "requests"
# "flit",
# "..",
# ]
# ///
```
Then you could keep "dev" only install `deveioper` extra by default but when
you run this:
```bash
uv run python scripts/build_artifacts.py all --clean
```
The `uv` or `hatch` or any other frontend that implements PEP-723 (will be
there in the next version of `pip`) - will create a separate venv with only
burr, click, requests, loguru and flit - just for the time of execution of the
script (and cache it of course for next runs).
## Checklist
- [x] PR has an informative and human-readable title (this will be pulled
into the release notes)
- [x] Changes are limited to a single goal (no scope creep)
- [x] Code passed the pre-commit check & code is left cleaner/nicer than
when first encountered.
- [x] Any _change_ in functionality is tested
- [x] Project documentation has been updated if adding/changing
functionality.
N/A:
- [ ] New functions are documented (with a description, list of inputs, and
expected output)
- [ ] Placeholder code is flagged / future TODOs are captured in comments
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]