diff --git a/.rat-excludes b/.rat-excludes index 5ef43f57f..0dfa7cb2a 100644 --- a/.rat-excludes +++ b/.rat-excludes @@ -77,3 +77,8 @@ **/*.gif **/*.ico **/*.jpg + +# burr-redirect: non-ASF PyPI redirect package, not part of the ASF source release. +# The directory carries ASF-licensed templates but is not voted on as part of +# any apache-burr release artifact. +burr-redirect/** diff --git a/burr-redirect/.gitignore b/burr-redirect/.gitignore new file mode 100644 index 000000000..c250e8f5d --- /dev/null +++ b/burr-redirect/.gitignore @@ -0,0 +1,4 @@ +pyproject.toml +dist/ +build/ +*.egg-info/ diff --git a/burr-redirect/README.md b/burr-redirect/README.md new file mode 100644 index 000000000..0720df4ac --- /dev/null +++ b/burr-redirect/README.md @@ -0,0 +1,44 @@ + + +# burr has moved to apache-burr + +This package is a redirect. Burr is now developed under the Apache +Software Foundation as **Apache Burr (incubating)**. + +## Migration + +Replace `burr` with `apache-burr` in your dependencies: + +```bash +pip install apache-burr +``` + +Extras carry over identically (`apache-burr[start]`, `apache-burr[tracking-server]`, +etc.). The Python import path is unchanged — `from burr.core import ...` +keeps working — because installing `apache-burr` installs the same `burr` +Python module. + +For documentation and getting started, see: +- https://burr.apache.org/ +- https://github.com/apache/burr + +This `burr` package on PyPI exists to keep `pip install burr` working for +users on muscle memory or pinned dependencies. It contains no source code; +it simply pins `apache-burr` of the matching version. diff --git a/burr-redirect/build.sh b/burr-redirect/build.sh new file mode 100755 index 000000000..8f078dbb5 --- /dev/null +++ b/burr-redirect/build.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Builds the burr redirect package for a given version. +# +# Usage: +# ./build.sh +# ./build.sh 0.42.0 + +set -euo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + echo "Example: $0 0.42.0" + exit 1 +fi + +VERSION="$1" +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" + +echo "Building burr redirect package for version ${VERSION}..." + +# Stamp version into pyproject.toml from template +sed "s/VERSION/${VERSION}/g" "${SCRIPT_DIR}/pyproject.toml.template" > "${SCRIPT_DIR}/pyproject.toml" + +# Clean previous build +rm -rf "${SCRIPT_DIR}/dist" "${SCRIPT_DIR}/build" "${SCRIPT_DIR}"/*.egg-info + +# Build +cd "${SCRIPT_DIR}" +python -m build + +# Validate +twine check dist/* + +echo "" +echo "Build complete. Artifacts:" +ls -la dist/ +echo "" +echo "To upload to TestPyPI (recommended first):" +echo " twine upload --repository testpypi dist/burr-${VERSION}*" +echo "" +echo "To verify from TestPyPI (note --extra-index-url so apache-burr resolves from real PyPI):" +echo " pip install --index-url https://test.pypi.org/simple/ \\" +echo " --extra-index-url https://pypi.org/simple/ burr==${VERSION}" +echo "" +echo "To upload to PyPI (after TestPyPI verification):" +echo " twine upload dist/burr-${VERSION}*" diff --git a/burr-redirect/pyproject.toml.template b/burr-redirect/pyproject.toml.template new file mode 100644 index 000000000..cb52080b0 --- /dev/null +++ b/burr-redirect/pyproject.toml.template @@ -0,0 +1,65 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +[build-system] +requires = ["setuptools>=64"] +build-backend = "setuptools.build_meta" + +[project] +name = "burr" +version = "VERSION" +description = "This package has moved to apache-burr. Install apache-burr instead." +readme = "README.md" +requires-python = ">=3.9" +license = "Apache-2.0" +dependencies = ["apache-burr==VERSION"] + +[project.optional-dependencies] +aiosqlite = ["apache-burr[aiosqlite]==VERSION"] +asyncpg = ["apache-burr[asyncpg]==VERSION"] +bedrock = ["apache-burr[bedrock]==VERSION"] +cli = ["apache-burr[cli]==VERSION"] +developer = ["apache-burr[developer]==VERSION"] +documentation = ["apache-burr[documentation]==VERSION"] +examples = ["apache-burr[examples]==VERSION"] +graphviz = ["apache-burr[graphviz]==VERSION"] +hamilton = ["apache-burr[hamilton]==VERSION"] +haystack = ["apache-burr[haystack]==VERSION"] +inappexamples = ["apache-burr[inappexamples]==VERSION"] +learn = ["apache-burr[learn]==VERSION"] +opentelemetry = ["apache-burr[opentelemetry]==VERSION"] +postgresql = ["apache-burr[postgresql]==VERSION"] +psycopg2 = ["apache-burr[psycopg2]==VERSION"] +pydantic = ["apache-burr[pydantic]==VERSION"] +pymongo = ["apache-burr[pymongo]==VERSION"] +ray = ["apache-burr[ray]==VERSION"] +redis = ["apache-burr[redis]==VERSION"] +release = ["apache-burr[release]==VERSION"] +start = ["apache-burr[start]==VERSION"] +streamlit = ["apache-burr[streamlit]==VERSION"] +tests = ["apache-burr[tests]==VERSION"] +tracking = ["apache-burr[tracking]==VERSION"] +tracking-client = ["apache-burr[tracking-client]==VERSION"] +tracking-client-s3 = ["apache-burr[tracking-client-s3]==VERSION"] +tracking-server = ["apache-burr[tracking-server]==VERSION"] +tracking-server-s3 = ["apache-burr[tracking-server-s3]==VERSION"] + +[project.urls] +Homepage = "https://burr.apache.org/" +Documentation = "https://burr.apache.org/docs" +Repository = "https://github.com/apache/burr" +"Bug Tracker" = "https://github.com/apache/burr/issues" diff --git a/pyproject.toml b/pyproject.toml index c2ab5d202..29f271e6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -271,6 +271,8 @@ include = [ "examples/hello-world-counter/**", ] exclude = [ + # burr-redirect: non-ASF PyPI redirect package, not part of the ASF source release. + "burr-redirect/**", "telemetry/ui/node_modules/**", "telemetry/ui/build/**", "telemetry/ui/dist/**",