Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
run: sudo apt-get install -y --no-install-recommends graphviz

- name: Install Python build deps
run: pip install flit twine
run: pip install flit twine jinja2

- name: Cache Apache RAT
id: cache-rat
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ ipython_config.py
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
uv.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
Expand Down
2 changes: 1 addition & 1 deletion examples/adaptive-crag/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ def router(state: State, query: str, attempts: int = ATTEMPTS) -> tuple[dict[str
table_names = db.table_names()
chat_history = state["chat_history"]
# using this as a `response_model` to ensure the route is valid
routes = Literal[*table_names, "web_search", "assistant"] # type: ignore
routes = Literal.__getitem__((*table_names, "web_search", "assistant")) # type: ignore
try:
route = ask_gemini.create(
messages=[
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ redis = [
"redis"
]

release = [
"jinja2",
]

tests = [
"pytest",
"pytest-asyncio",
Expand Down
42 changes: 42 additions & 0 deletions scripts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,57 @@ python scripts/apache_release.py wheel 0.41.0 0 # Wheel dist
python scripts/apache_release.py upload 0.41.0 0 your_apache_id
python scripts/apache_release.py upload 0.41.0 0 your_apache_id --dry-run # Test first

# Promote a voted RC from dist/dev to dist/release
python scripts/apache_release.py promote 0.41.0-RC0 your_apache_id
python scripts/apache_release.py promote 0.41.0-RC0 your_apache_id --dry-run
python scripts/apache_release.py promote 0.41.0-RC0 your_apache_id --release-svn-root https://dist.apache.org/repos/dist/release/burr # TLP path override

# Verify artifacts locally
python scripts/apache_release.py verify 0.41.0 0

# Skip upload step in 'all' command
python scripts/apache_release.py all 0.41.0 0 your_apache_id --no-upload

# Generate release emails from templates
python scripts/apache_release.py vote-email --version 0.41.0 --rc 0
python scripts/apache_release.py result-email --version 0.41.0 --rc 0 --binding-yes 3 --non-binding-yes 2 --binding-no 0 --non-binding-no 1
python scripts/apache_release.py announce-email --version 0.41.0
```

Output: `dist/` directory with tar.gz (archive + sdist), whl, plus .asc and .sha512 files. The wheel is validated with `twine check` to ensure metadata correctness before signing. Install from the whl file to test it out after running the `wheel` subcommand.

## Promoting a voted RC

After an RC vote passes, promote the exact voted artifacts from Apache SVN `dist/dev` into
`dist/release` with:

```bash
python scripts/apache_release.py promote 0.41.0-RC0 your_apache_id
```

What it does:
- checks out the RC directory from `dist/dev` to validate the expected source archive,
sdist, wheel, and matching `.asc` / `.sha512` files
- refuses to continue if the target release directory already exists
- copies the voted RC directory server-side into a new per-version release directory
(e.g. `dist/release/incubator/burr/0.41.0`) with a single atomic `svn cp` commit
- leaves any existing release directories and the shared `KEYS` file untouched (additive)
- prints the final PyPI upload command for the sdist and wheel

Use `--dry-run` to preview the actions without committing:

```bash
python scripts/apache_release.py promote 0.41.0-RC0 your_apache_id --dry-run
```

For post-incubation path changes, override the default SVN roots:

```bash
python scripts/apache_release.py promote 0.41.0-RC0 your_apache_id \
--dev-svn-root https://dist.apache.org/repos/dist/dev/burr \
--release-svn-root https://dist.apache.org/repos/dist/release/burr
```

## For Voters: Verifying a Release

If you're voting on a release, follow these steps to verify the release candidate:
Expand Down
Loading
Loading