Skip to content

Commit 378ba7d

Browse files
add burr-redirect package for legacy burr PyPI name (#827)
Burr's PyPI listing under the legacy name 'burr' is at 0.40.2 and was superseded by 'apache-burr' at the Apache donation. Mirror the Hamilton sf-hamilton-redirect/ playbook: ship a thin metadata-only 'burr' wheel that just pins apache-burr==<version> (plus every extra), so that users on pip install burr / pip install burr[start] / etc. keep working and get the current apache-burr release transitively. Files: - burr-redirect/pyproject.toml.template: setuptools-based, name='burr', dependencies=['apache-burr==VERSION'], all 28 extras mirrored. - burr-redirect/build.sh: stamps VERSION into the template, builds wheel + sdist, runs twine check, prints TestPyPI and PyPI upload commands. - burr-redirect/README.md: 'this package has moved' note, points users at apache-burr. - burr-redirect/.gitignore: ignores generated pyproject.toml, dist/, build/, *.egg-info/. Excludes: - .rat-excludes: adds burr-redirect/** so RAT does not scan the metadata-only redirect package. - pyproject.toml: adds burr-redirect/** to [tool.flit.sdist].exclude so the redirect package is NOT bundled into the apache-burr source tarball (the redirect is a non-ASF artifact and must not appear in any IPMC-voted release). This PR is infrastructure only -- it does not produce or upload any release artifacts. The legacy burr 0.42.0 wheel is built and uploaded manually after the apache-burr 0.42.0 wheel is live on PyPI (so the ==-pin resolves).
1 parent 3df3b51 commit 378ba7d

6 files changed

Lines changed: 183 additions & 0 deletions

File tree

.rat-excludes

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,8 @@
7777
**/*.gif
7878
**/*.ico
7979
**/*.jpg
80+
81+
# burr-redirect: non-ASF PyPI redirect package, not part of the ASF source release.
82+
# The directory carries ASF-licensed templates but is not voted on as part of
83+
# any apache-burr release artifact.
84+
burr-redirect/**

burr-redirect/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
pyproject.toml
2+
dist/
3+
build/
4+
*.egg-info/

burr-redirect/README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one
3+
or more contributor license agreements. See the NOTICE file
4+
distributed with this work for additional information
5+
regarding copyright ownership. The ASF licenses this file
6+
to you under the Apache License, Version 2.0 (the
7+
"License"); you may not use this file except in compliance
8+
with the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing,
13+
software distributed under the License is distributed on an
14+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
KIND, either express or implied. See the License for the
16+
specific language governing permissions and limitations
17+
under the License.
18+
-->
19+
20+
# burr has moved to apache-burr
21+
22+
This package is a redirect. Burr is now developed under the Apache
23+
Software Foundation as **Apache Burr (incubating)**.
24+
25+
## Migration
26+
27+
Replace `burr` with `apache-burr` in your dependencies:
28+
29+
```bash
30+
pip install apache-burr
31+
```
32+
33+
Extras carry over identically (`apache-burr[start]`, `apache-burr[tracking-server]`,
34+
etc.). The Python import path is unchanged — `from burr.core import ...`
35+
keeps working — because installing `apache-burr` installs the same `burr`
36+
Python module.
37+
38+
For documentation and getting started, see:
39+
- https://burr.apache.org/
40+
- https://github.com/apache/burr
41+
42+
This `burr` package on PyPI exists to keep `pip install burr` working for
43+
users on muscle memory or pinned dependencies. It contains no source code;
44+
it simply pins `apache-burr` of the matching version.

burr-redirect/build.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/usr/bin/env bash
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
19+
# Builds the burr redirect package for a given version.
20+
#
21+
# Usage:
22+
# ./build.sh <version>
23+
# ./build.sh 0.42.0
24+
25+
set -euo pipefail
26+
27+
if [ $# -ne 1 ]; then
28+
echo "Usage: $0 <version>"
29+
echo "Example: $0 0.42.0"
30+
exit 1
31+
fi
32+
33+
VERSION="$1"
34+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
35+
36+
echo "Building burr redirect package for version ${VERSION}..."
37+
38+
# Stamp version into pyproject.toml from template
39+
sed "s/VERSION/${VERSION}/g" "${SCRIPT_DIR}/pyproject.toml.template" > "${SCRIPT_DIR}/pyproject.toml"
40+
41+
# Clean previous build
42+
rm -rf "${SCRIPT_DIR}/dist" "${SCRIPT_DIR}/build" "${SCRIPT_DIR}"/*.egg-info
43+
44+
# Build
45+
cd "${SCRIPT_DIR}"
46+
python -m build
47+
48+
# Validate
49+
twine check dist/*
50+
51+
echo ""
52+
echo "Build complete. Artifacts:"
53+
ls -la dist/
54+
echo ""
55+
echo "To upload to TestPyPI (recommended first):"
56+
echo " twine upload --repository testpypi dist/burr-${VERSION}*"
57+
echo ""
58+
echo "To verify from TestPyPI (note --extra-index-url so apache-burr resolves from real PyPI):"
59+
echo " pip install --index-url https://test.pypi.org/simple/ \\"
60+
echo " --extra-index-url https://pypi.org/simple/ burr==${VERSION}"
61+
echo ""
62+
echo "To upload to PyPI (after TestPyPI verification):"
63+
echo " twine upload dist/burr-${VERSION}*"
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
[build-system]
19+
requires = ["setuptools>=64"]
20+
build-backend = "setuptools.build_meta"
21+
22+
[project]
23+
name = "burr"
24+
version = "VERSION"
25+
description = "This package has moved to apache-burr. Install apache-burr instead."
26+
readme = "README.md"
27+
requires-python = ">=3.9"
28+
license = "Apache-2.0"
29+
dependencies = ["apache-burr==VERSION"]
30+
31+
[project.optional-dependencies]
32+
aiosqlite = ["apache-burr[aiosqlite]==VERSION"]
33+
asyncpg = ["apache-burr[asyncpg]==VERSION"]
34+
bedrock = ["apache-burr[bedrock]==VERSION"]
35+
cli = ["apache-burr[cli]==VERSION"]
36+
developer = ["apache-burr[developer]==VERSION"]
37+
documentation = ["apache-burr[documentation]==VERSION"]
38+
examples = ["apache-burr[examples]==VERSION"]
39+
graphviz = ["apache-burr[graphviz]==VERSION"]
40+
hamilton = ["apache-burr[hamilton]==VERSION"]
41+
haystack = ["apache-burr[haystack]==VERSION"]
42+
inappexamples = ["apache-burr[inappexamples]==VERSION"]
43+
learn = ["apache-burr[learn]==VERSION"]
44+
opentelemetry = ["apache-burr[opentelemetry]==VERSION"]
45+
postgresql = ["apache-burr[postgresql]==VERSION"]
46+
psycopg2 = ["apache-burr[psycopg2]==VERSION"]
47+
pydantic = ["apache-burr[pydantic]==VERSION"]
48+
pymongo = ["apache-burr[pymongo]==VERSION"]
49+
ray = ["apache-burr[ray]==VERSION"]
50+
redis = ["apache-burr[redis]==VERSION"]
51+
release = ["apache-burr[release]==VERSION"]
52+
start = ["apache-burr[start]==VERSION"]
53+
streamlit = ["apache-burr[streamlit]==VERSION"]
54+
tests = ["apache-burr[tests]==VERSION"]
55+
tracking = ["apache-burr[tracking]==VERSION"]
56+
tracking-client = ["apache-burr[tracking-client]==VERSION"]
57+
tracking-client-s3 = ["apache-burr[tracking-client-s3]==VERSION"]
58+
tracking-server = ["apache-burr[tracking-server]==VERSION"]
59+
tracking-server-s3 = ["apache-burr[tracking-server-s3]==VERSION"]
60+
61+
[project.urls]
62+
Homepage = "https://burr.apache.org/"
63+
Documentation = "https://burr.apache.org/docs"
64+
Repository = "https://github.com/apache/burr"
65+
"Bug Tracker" = "https://github.com/apache/burr/issues"

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,8 @@ include = [
271271
"examples/hello-world-counter/**",
272272
]
273273
exclude = [
274+
# burr-redirect: non-ASF PyPI redirect package, not part of the ASF source release.
275+
"burr-redirect/**",
274276
"telemetry/ui/node_modules/**",
275277
"telemetry/ui/build/**",
276278
"telemetry/ui/dist/**",

0 commit comments

Comments
 (0)