Skip to content

Commit 978002f

Browse files
Merge pull request #27 from AgoraIO-Conversational-AI/release/v2.0.0
Release/v2.0.0
2 parents a217c8e + a5097b8 commit 978002f

86 files changed

Lines changed: 2173 additions & 1296 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.fern/replay.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.fernignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,16 @@ src/agora_agent/agentkit/
99

1010
# Documentation - managed manually, not generated by Fern
1111
docs/
12+
README.md
13+
14+
# Compatibility shim and CI/release workflows are managed manually
15+
compat/
16+
.github/workflows/
1217

1318
# Dependency manifests/lockfiles are managed manually
1419
pyproject.toml
1520
poetry.lock
1621
requirements.txt
22+
.fern/replay.lock
23+
.fern/replay.yml
24+
.gitattributes

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.fern/replay.lock linguist-generated=true

.github/workflows/ci.yml

Lines changed: 89 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,38 @@ jobs:
3535
- name: Test
3636
run: poetry run pytest -rP .
3737

38+
compat-build:
39+
runs-on: ubuntu-latest
40+
steps:
41+
- name: Checkout repo
42+
uses: actions/checkout@v4
43+
- name: Set up python
44+
uses: actions/setup-python@v4
45+
with:
46+
python-version: 3.8
47+
- name: Bootstrap poetry
48+
run: |
49+
curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1
50+
- name: Install primary package
51+
run: poetry install
52+
- name: Build and verify compatibility package
53+
run: |
54+
cd compat/agora-agent-server-sdk
55+
poetry build
56+
cd ../..
57+
poetry run pip install compat/agora-agent-server-sdk/dist/*.whl
58+
poetry run python - <<'PY'
59+
import agora_agent
60+
from agora_agent_server_sdk_compat import Agora, Area, __version__
61+
62+
assert Agora is agora_agent.Agora
63+
assert Area is agora_agent.Area
64+
assert __version__ == agora_agent.__version__
65+
print("Compat shim re-exports verified.")
66+
PY
67+
3868
publish:
39-
needs: [compile, test]
69+
needs: [compile, test, compat-build]
4070
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
4171
runs-on: ubuntu-latest
4272
steps:
@@ -51,9 +81,64 @@ jobs:
5181
curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1
5282
- name: Install dependencies
5383
run: poetry install
54-
- name: Publish to pypi
84+
85+
- name: Verify package versions match release tag
86+
run: |
87+
TAG_VERSION="${GITHUB_REF_NAME#v}"
88+
ROOT_VERSION="$(poetry version -s | sed 's/^v//')"
89+
COMPAT_VERSION="$(cd compat/agora-agent-server-sdk && poetry version -s | sed 's/^v//')"
90+
COMPAT_DEP_VERSION="$(python -c "import re, sys; from pathlib import Path; text = Path('compat/agora-agent-server-sdk/pyproject.toml').read_text(); match = re.search(r'^agora-agents\s*=\s*\"([^\"]+)\"', text, re.M); sys.exit('agora-agents dependency not found in compat pyproject.toml') if not match else None; print(match.group(1))")"
91+
92+
if [ "$ROOT_VERSION" != "$TAG_VERSION" ]; then
93+
echo "Root package version ($ROOT_VERSION) does not match tag version ($TAG_VERSION)."
94+
exit 1
95+
fi
96+
97+
if [ "$COMPAT_VERSION" != "$TAG_VERSION" ]; then
98+
echo "Compat package version ($COMPAT_VERSION) does not match tag version ($TAG_VERSION)."
99+
exit 1
100+
fi
101+
102+
if [ "$COMPAT_DEP_VERSION" != ">=${TAG_VERSION},<3.0.0" ]; then
103+
echo "Compat package dependency on agora-agents ($COMPAT_DEP_VERSION) does not match >=${TAG_VERSION},<3.0.0."
104+
exit 1
105+
fi
106+
107+
- name: Publish primary package to pypi
108+
run: |
109+
poetry config repositories.remote https://upload.pypi.org/legacy/
110+
poetry --no-interaction -v publish --build --repository remote --username "$PYPI_USERNAME" --password "$PYPI_PASSWORD"
111+
env:
112+
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
113+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
114+
115+
- name: Wait for primary package on PyPI
116+
run: |
117+
TAG_VERSION="${GITHUB_REF_NAME#v}"
118+
PACKAGE="agora-agents"
119+
for attempt in $(seq 1 12); do
120+
if pip index versions "$PACKAGE" 2>/dev/null | grep -q "$TAG_VERSION"; then
121+
echo "$PACKAGE==$TAG_VERSION is available on PyPI."
122+
exit 0
123+
fi
124+
echo "Waiting for $PACKAGE==$TAG_VERSION on PyPI (attempt $attempt/12)..."
125+
sleep 10
126+
done
127+
echo "Timed out waiting for $PACKAGE==$TAG_VERSION on PyPI."
128+
exit 1
129+
130+
- name: Publish compatibility package to pypi
55131
run: |
132+
cd compat/agora-agent-server-sdk
56133
poetry config repositories.remote https://upload.pypi.org/legacy/
57-
poetry --no-interaction -v publish --build --repository remote --username "__token__" --password "$PYPI_API_TOKEN"
134+
for attempt in $(seq 1 3); do
135+
if poetry --no-interaction -v publish --build --repository remote --username "$PYPI_USERNAME" --password "$PYPI_PASSWORD"; then
136+
exit 0
137+
fi
138+
echo "Compat publish failed (attempt $attempt/3). Retrying in 15s..."
139+
sleep 15
140+
done
141+
exit 1
58142
env:
59-
PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
143+
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
144+
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}

.github/workflows/release.yml

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)