fix(galileo-a2a): Rebrand to SPLUNK_AO_* env vars and SplunkAOSpanProcessor and Rename package to splunk-ao-a2a and reset to v0.1.0#33
Conversation
…ocessor (HYBIM-716) Core package: - Rename GALILEO_OBSERVE_KEY -> SPLUNK_AO_OBSERVE_KEY in _constants.py - Rename GALILEO_* context vars to SPLUNK_AO_* in _context.py and _client_patches.py - Update pyproject.toml: galileo dependency -> splunk-ao, update classifiers Examples: - examples/.env.example: replace SPLUNK_AO_CONSOLE_URL with SPLUNK_AO_API_URL (direct API host is required for self-hosted deployments) Documentation (README.md): - Replace GalileoSpanProcessor -> SplunkAOSpanProcessor in all code examples - Replace GALILEO_* env vars -> SPLUNK_AO_* in configuration table - Add SPLUNK_AO_API_URL row (required for self-hosted) - Update all Galileo brand mentions to Splunk AO Tests: - Update all GALILEO_* env var references to SPLUNK_AO_* in conftest.py and test_context.py Co-authored-by: Cursor <cursoragent@cursor.com>
- Rename PyPI package: galileo-a2a -> splunk-ao-a2a - Reset version to 0.1.0 (pyproject.toml + _version.py) - Update description, authors (Splunk Inc.), repository URL - Replace galileo dependency with splunk-ao>=2.0.0,<3.0.0 - Update tool.uv.sources key: galileo -> splunk-ao - Update pytest env vars: GALILEO_* -> SPLUNK_AO_* - Update semantic_release tags: galileo-a2a-v* -> splunk-ao-a2a-v* - Update dev deps to splunk-ao[otel] - Update ruff isort known-first-party to splunk_ao - Update README: badges, pip install -> splunk-ao-a2a Co-authored-by: Cursor <cursoragent@cursor.com>
…nk_ao_a2a - Rename top-level directory: galileo-a2a/ -> splunk-ao-a2a/ - Rename source package: src/galileo_a2a/ -> src/splunk_ao_a2a/ - Update all internal imports: galileo_a2a -> splunk_ao_a2a in all .py files - Update pyproject.toml: packages, coverage.source, semantic_release.version_variables, ruff.isort.known-first-party to reference splunk_ao_a2a - Update tests: all from/import/patch paths now use splunk_ao_a2a - Move examples/ into splunk-ao-a2a/examples/ Co-authored-by: Cursor <cursoragent@cursor.com>
|
Running an automated review agent. |
fercor-cisco
left a comment
There was a problem hiding this comment.
🤖 This review was generated by the Astra agent. It may contain mistakes.
Verdict: request_changes — Dependency constraint requires splunk-ao>=2.0.0 but the package is 0.1.0 (breaks install), and the newly-documented SPLUNK_AO_API_URL env var is not actually read by the SDK.
Follow-ups
Suggested follow-up work that could be tracked as Shortcut stories:
splunk-ao-a2a/examples/two_agent_demo.py:1-60: Leftover "Galileo" brand mentions in comments/docstring (lines 1, 6, 60) were not updated during the rebrand. Update these to "Splunk AO" for consistency. Not blocking since they are comments only and outside the changed import lines.
| "mypy>=1.16.0", | ||
| "opentelemetry-instrumentation>=0.61b0", | ||
| "galileo[otel]>=1.47.0", | ||
| "splunk-ao[otel]>=2.0.0,<3.0.0", |
There was a problem hiding this comment.
🔴 critical (bug): Same version mismatch as the runtime dependency: splunk-ao[otel]>=2.0.0,<3.0.0 cannot resolve against the local splunk-ao 0.1.0 editable source. Update the floor to match the actual package version.
| "splunk-ao[otel]>=2.0.0,<3.0.0", | |
| "splunk-ao[otel]>=0.1.0,<1.0.0", |
| @@ -0,0 +1,5 @@ | |||
| SPLUNK_AO_API_KEY=your-splunk-ao-key | |||
| SPLUNK_AO_API_URL=https://<splunk-ao-api-host> | |||
There was a problem hiding this comment.
🟠 major (bug): This replaces the previously-working GALILEO_CONSOLE_URL with SPLUNK_AO_API_URL, but SPLUNK_AO_API_URL is not read anywhere in the SDK (not in _CONFIGURATION_KEYS, not bridged in _bridge_env_vars()). SPLUNK_AO_CONSOLE_URL is bridged and would actually point the SDK at a self-hosted host. As written, a self-hosted user copying this example has no functioning way to set their endpoint. Use SPLUNK_AO_CONSOLE_URL here (or first add real support for SPLUNK_AO_API_URL).
| SPLUNK_AO_API_URL=https://<splunk-ao-api-host> | |
| SPLUNK_AO_CONSOLE_URL=https://<splunk-ao-console-host> |
…review) - Lower splunk-ao runtime dep floor: >=2.0.0 -> >=0.1.0,<1.0.0 to match actual package version (was unsatisfiable from PyPI) - Lower splunk-ao[otel] dev dep floor: >=2.0.0 -> >=0.1.0,<1.0.0 - Fix stale module docstring in _constants.py: galileo-a2a -> splunk-ao-a2a Note: SPLUNK_AO_API_URL bridge (SPLUNK_AO_API_URL -> GALILEO_API_URL) is already added in src/splunk_ao/config.py via PR #32. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressing review comments from @fercor-cisco (commit Comments 1 & 2 — version ranges (lines 18 and 41) Comments 3 & 4 — SPLUNK_AO_API_URL not bridged (README line 71, .env.example line 2) Comment 5 — stale docstring in _constants.py |
Adds test-splunk-ao-a2a.yaml to run unit tests on pull requests and pushes to main that touch the splunk-ao-a2a package. Key differences from the galileo-python reference workflow: - Removes galileo-version min/latest matrix; splunk-ao is always installed as a local editable from the monorepo root via [tool.uv] sources in pyproject.toml - Python matrix: 3.10, 3.12, 3.13, 3.14 (drops 3.11, adds 3.14) - Coverage upload pinned to Python 3.13 (replaces 3.11 + latest axis) Co-authored-by: Cursor <cursoragent@cursor.com>
…rsions step Co-authored-by: Cursor <cursoragent@cursor.com>
… step Co-authored-by: Cursor <cursoragent@cursor.com>
…L_ENV pip routing Co-authored-by: Cursor <cursoragent@cursor.com>
…n global uv config Co-authored-by: Cursor <cursoragent@cursor.com>
…index Project-level uv.toml with [[index]] replaces (not merges with) the list in ~/.config/uv/uv.toml, so the Splunk Artifactory mirror that does not carry all public PyPI packages is bypassed for this subpackage. Also fix the ci-tests workflow path trigger to reference the correct filename, and revert the ineffective [[tool.uv.index]] approach from pyproject.toml. Co-authored-by: Cursor <cursoragent@cursor.com>
fercor-cisco
left a comment
There was a problem hiding this comment.
🤖 This review was generated by the Astra agent. It may contain mistakes.
Verdict: request_changes — README and .env.example document/ship SPLUNK_AO_API_URL as required for self-hosted, but it is not wired into the SDK on this branch, so self-hosted users following the docs silently fail.
Follow-ups
Suggested follow-up work that could be tracked as Shortcut stories:
splunk-ao-a2a/src/splunk_ao_a2a/_constants.py:12-12:AGNTCY_OBSERVE_KEY = "observe"and the fallback logic are retained for AGNTCY interop. Worth confirming whether AGNTCY compatibility is still in scope under the Splunk AO branding, or whether this legacy interop path should be documented/removed in a follow-up.
| @@ -0,0 +1,5 @@ | |||
| SPLUNK_AO_API_KEY=your-splunk-ao-key | |||
| SPLUNK_AO_API_URL=https://<splunk-ao-api-host> | |||
There was a problem hiding this comment.
🟠 major (bug): SPLUNK_AO_API_URL is not read anywhere in the SDK on this branch. I verified src/splunk_ao/config.py _bridge_env_vars() bridges only SPLUNK_AO_API_KEY/CONSOLE_URL/PROJECT/... to their GALILEO_* equivalents — there is no SPLUNK_AO_API_URL -> GALILEO_API_URL entry, and _CONFIGURATION_KEYS in src/splunk_ao/configuration.py has no api_url key (only SPLUNK_AO_CONSOLE_URL). A grep for SPLUNK_AO_API_URL/GALILEO_API_URL across src/ returns no matches. This example previously shipped GALILEO_CONSOLE_URL (which mapped to a bridged var); replacing it with SPLUNK_AO_API_URL leaves a self-hosted user copying this file with no functioning way to point at their host. Use the var that is actually bridged, or first add real support for SPLUNK_AO_API_URL.
Note: the PR thread reply asserts this was already wired up in _bridge_env_vars() by PR #32 — that is not true of the code on this branch.
| SPLUNK_AO_API_URL=https://<splunk-ao-api-host> | |
| SPLUNK_AO_CONSOLE_URL=https://<splunk-ao-console-host> |
There was a problem hiding this comment.
I checked the original file and it has GALILEO_CONSOLE_URL=http://localhost:8088.
It seems to make sense to rename it to SPLUNK_AO_CONSOLE_URL.
…URL in docs and example SPLUNK_AO_API_URL is not read anywhere in the SDK - it is not in _CONFIGURATION_KEYS and not bridged in _bridge_env_vars(). The effective override for self-hosted deployments is SPLUNK_AO_CONSOLE_URL, which is bridged to GALILEO_CONSOLE_URL. Update README env var table and .env.example to use the correct variable. Co-authored-by: Cursor <cursoragent@cursor.com>
update python version revert to galileo docs link
fercor-cisco
left a comment
There was a problem hiding this comment.
🤖 This review was generated by the Astra agent. It may contain mistakes.
Verdict: approve — Rebrand is consistent across code/tests/config; prior critical/major review concerns are resolved on HEAD. Only minor stale-brand doc leftovers remain.
General Comments
- 🔵 nit (documentation): The PR description's Changes section references
.github/workflows/ci-tests-splunk-ao-adk.yaml("Add pipeline to run unit tests during ci"), but the file actually added is.github/workflows/ci-tests-splunk-ao-a2a.yaml. Update the description to avoid confusion.
| ## Resources | ||
|
|
||
| - [Galileo Documentation](https://v2docs.galileo.ai) | ||
| - [Splunk AO Documentation](https://docs.galileo.ai) |
There was a problem hiding this comment.
🟡 minor (documentation): This link was rebranded to "Splunk AO Documentation" but the URL still points at Galileo (https://docs.galileo.ai), and it was changed from the original v2docs.galileo.ai to docs.galileo.ai in the process. The label and target are now inconsistent, and the new host may not resolve. Point this at the actual Splunk AO docs (or revert the URL to the working Galileo one until a Splunk docs site exists).
| - [Splunk AO Documentation](https://docs.galileo.ai) | |
| - [Splunk AO Documentation](https://docs.splunk.com/observability) |
There was a problem hiding this comment.
@fercor-cisco this is in line with the discussion and what has been already done for examples and adk
There was a problem hiding this comment.
agreed, we're keeping the previous URL for now
There was a problem hiding this comment.
splunk-ao-a2a/examples/two_agent_demo.py:1-6 (line not in diff)
🟡 minor (documentation): Stale Galileo brand references remain in this example's module docstring (lines 1 and 6) and in the inline comment at line 60 ("# Galileo tracing setup"), even though the imports and package were rebranded to Splunk AO. Since this PR is the rebrand, update these to "Splunk AO" for consistency.
Context
Rebrand to SPLUNK_AO_* env vars and SplunkAOSpanProcessor
Rename package to splunk-ao-a2a and reset to v0.1.0
Changes
Core package:
Examples:
galileo-a2a/pyproject.tomlgalileo-a2a→splunk-ao-a2a2.0.1→0.1.0authors: Galileo Technologies Inc. → Splunk Inc.RepositoryURL:rungalileo/galileo-python→splunk/splunk-ao-pythongalileo→splunk-aotool.uv.sourceskey:galileo→splunk-aopytest.ini_options.envvars:GALILEO_*→SPLUNK_AO_*semantic_releasetag format:galileo-a2a-v*→splunk-ao-a2a-v*ruff.lint.isort.known-first-party:galileo→splunk_aogalileo-a2a/src/galileo_a2a/_version.py__version__from2.0.1→0.1.0galileo-a2a/README.mdpip installcommand tosplunk-ao-a2a.github/workflows/ci-tests-splunk-ao-a2a.yamlTest plan
uv synccompletes without errorsuv buildpip install splunk-ao-a2aresolves after publishing to PyPI