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]

Reply via email to