Feat release flow - #9
Conversation
amadou-6e
commented
Mar 4, 2026
- merge with updated docs and pypi publishing
Resolve README.md conflict: keep feat_release_flow content (badges, code examples, extras install) and fold in Roadmap and Testing sections from main. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the release/publishing flow and refreshes docs/examples to support a cleaner “release → publish to PyPI” pipeline and more reproducible notebook runs.
Changes:
- Adds a GitHub Actions job to publish to PyPI on GitHub Release publish events (OIDC-based).
- Updates usage notebooks to use OS temp directories instead of writing under repo
tmp/. - Updates README/docs and bumps package version to
1.0.0.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/cicd.yml |
Adds release trigger + PyPI publish job. |
pyproject.toml |
Bumps project version for release. |
README.md |
Refreshes installation/docs link and expands usage examples. |
docs/quick_start.rst |
Updates Python requirement and adds extras install examples. |
docs/introduction.rst |
Updates supported DB list and positioning text. |
.gitignore |
Adds ignores for temp/experiments artifacts. |
usage/redis_example.ipynb |
Uses tempfile.mkdtemp() and normalizes notebook JSON formatting. |
usage/postgres_example.ipynb |
Notebook JSON formatting normalization (no major flow change shown). |
usage/pgvector_rag_example.ipynb |
Uses OS temp dir and normalizes imports/cell sources. |
usage/ollama_example.ipynb |
Uses OS temp dir and normalizes cell sources/docs text. |
usage/neo4j_example.ipynb |
Uses OS temp dir and normalizes cell sources. |
usage/mysql_example.ipynb |
Uses OS temp dir and normalizes cell sources. |
usage/mssql_example.ipynb |
Uses OS temp dir and normalizes cell sources. |
usage/mongo_example.ipynb |
Uses OS temp dir and normalizes cell sources. |
usage/tmp/oldata/id_ed25519 |
Removes committed SSH private key material. |
usage/tmp/oldata/id_ed25519.pub |
Removes committed SSH public key material. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| name: pypi | ||
| url: https://pypi.org/p/py-dockerdb | ||
| permissions: | ||
| id-token: write |
There was a problem hiding this comment.
The publish job overrides workflow permissions but only grants id-token: write. actions/checkout@v4 typically requires contents: read, and because job-level permissions replace (not merge) top-level permissions, the checkout step may fail. Add contents: read under this job’s permissions (keep id-token: write).
| id-token: write | |
| id-token: write | |
| contents: read |
| "execution_count": null, | ||
| "metadata": {}, | ||
| "outputs": [], | ||
| "source": "temp_dir = Path(tempfile.mkdtemp())\n\ncontainer_name = f\"demo-redis-{uuid.uuid4().hex[:8]}\"\n\nconfig = RedisConfig(\n database=0,\n project_name=\"demo\",\n container_name=container_name,\n workdir=temp_dir,\n retries=20,\n delay=2,\n)\n\ndb_manager = RedisDB(config)" |
There was a problem hiding this comment.
This notebook now creates an OS temp directory, but it isn’t removed in the cleanup section (only the container is deleted). Consider deleting temp_dir during cleanup (e.g., via shutil.rmtree(temp_dir, ignore_errors=True)), or use tempfile.TemporaryDirectory() so repeated runs don’t leave behind many temp folders.