Skip to content

fix(galileo-adk): Rebrand to SPLUNK_AO_* env vars and SplunkAO* classes and rename package to splunk-ao-adk and reset to v0.1.0#32

Merged
adityamehra merged 25 commits into
mainfrom
fix/splunk-ao-adk-pyproject
Jun 25, 2026
Merged

fix(galileo-adk): Rebrand to SPLUNK_AO_* env vars and SplunkAO* classes and rename package to splunk-ao-adk and reset to v0.1.0#32
adityamehra merged 25 commits into
mainfrom
fix/splunk-ao-adk-pyproject

Conversation

@adityamehra

@adityamehra adityamehra commented Jun 16, 2026

Copy link
Copy Markdown
Member

Context

Rebrand to SPLUNK_AO_* env vars and SplunkAO* classes
Rename package to splunk-ao-adk and reset to v0.1.0

Changes

galileo-adk/src/galileo_adk/

  • Rename GalileoADKCallback -> SplunkAOADKCallback
  • Rename GalileoADKObserver -> SplunkAOADKObserver
  • Rename GalileoADKPlugin -> SplunkAOADKPlugin
  • Rename GALILEO_* env vars -> SPLUNK_AO_* throughout callback.py, decorator.py, observer.py, plugin.py
  • Update init.py exports to SplunkAO* names
  • Update pyproject.toml: galileo dependency -> splunk-ao

src/splunk_ao/config.py

  • Add ("SPLUNK_AO_API_URL", "GALILEO_API_URL") to _bridge_env_vars() so SPLUNK_AO_API_URL is correctly passed to galileo-core for self-hosted deployments

galileo-adk/pyproject.toml

  • Rename package: galileo-adksplunk-ao-adk
  • Reset version: 2.0.10.1.0
  • Update authors: Galileo Technologies Inc. → Splunk Inc.
  • Update Repository URL: rungalileo/galileo-pythonsplunk/splunk-ao-python
  • Replace runtime dependency: galileosplunk-ao
  • Update tool.uv.sources key: galileosplunk-ao
  • Replace dev dependency: galileo-core[testing]splunk-ao[otel]
  • Update semantic_release tag format: galileo-adk-v*splunk-ao-adk-v*
  • Update ruff.lint.isort.known-first-party: galileosplunk_ao

galileo-adk/src/galileo_adk/__init__.py

  • Reset __version__ from 2.0.10.1.0

galileo-adk/README.md

  • Update package name heading, PyPI badges, license link, and pip install command to splunk-ao-adk
  • Replace GalileoADK* class names with SplunkAOADK* in all code examples
  • Replace GALILEO_* env vars -> SPLUNK_AO_* in configuration tables
  • Update brand mentions (Galileo -> Splunk AO)

.github/workflows/ci-tests-splunk-ao-adk.yaml

  • Add pipeline to run unit tests during ci

Test plan

  • uv sync completes without errors
  • Package builds cleanly: uv build
  • pip install splunk-ao-adk resolves after publishing to PyPI

adityamehra and others added 2 commits June 16, 2026 15:51
…ses (HYBIM-716)

Core package (galileo-adk/src/galileo_adk/):
- Rename GalileoADKCallback -> SplunkAOADKCallback
- Rename GalileoADKObserver -> SplunkAOADKObserver
- Rename GalileoADKPlugin -> SplunkAOADKPlugin
- Rename GALILEO_* env vars -> SPLUNK_AO_* throughout callback.py, decorator.py,
  observer.py, plugin.py
- Update __init__.py exports to SplunkAO* names
- Update pyproject.toml: galileo dependency -> splunk-ao

Core SDK (src/splunk_ao/config.py):
- Add ("SPLUNK_AO_API_URL", "GALILEO_API_URL") to _bridge_env_vars()
  so SPLUNK_AO_API_URL is correctly passed to galileo-core for self-hosted deployments

Documentation (galileo-adk/README.md):
- Replace GalileoADK* class names with SplunkAOADK* in all code examples
- Replace GALILEO_* env vars -> SPLUNK_AO_* in configuration tables
- Update brand mentions (Galileo -> Splunk AO)

Tests:
- Update all class names and env var references in test_callback.py, test_observer.py,
  test_plugin.py, test_retriever.py

Co-authored-by: Cursor <cursoragent@cursor.com>
- Rename PyPI package: galileo-adk -> splunk-ao-adk
- Reset version to 0.1.0 (__init__.py + pyproject.toml)
- 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 semantic_release tags: galileo-adk-v* -> splunk-ao-adk-v*
- Replace galileo-core[testing] with splunk-ao[otel] in dev deps
- Update ruff isort known-first-party to splunk_ao
- Update README: badges and pip install -> splunk-ao-adk

Co-authored-by: Cursor <cursoragent@cursor.com>
@adityamehra adityamehra changed the title fix(galileo-adk): rename package to splunk-ao-adk and reset to v0.1.0 fix(galileo-adk): rebrand to SPLUNK_AO_* env vars and SplunkAO* classes and rename package to splunk-ao-adk and reset to v0.1.0 Jun 17, 2026
@adityamehra adityamehra changed the title fix(galileo-adk): rebrand to SPLUNK_AO_* env vars and SplunkAO* classes and rename package to splunk-ao-adk and reset to v0.1.0 fix(galileo-adk): Rebrand to SPLUNK_AO_* env vars and SplunkAO* classes and rename package to splunk-ao-adk and reset to v0.1.0 Jun 17, 2026
…nk_ao_adk

- Rename top-level directory: galileo-adk/ -> splunk-ao-adk/
- Rename source package: src/galileo_adk/ -> src/splunk_ao_adk/
- Update all internal imports: galileo_adk -> splunk_ao_adk in all .py files
- Update pyproject.toml: packages, coverage.source, semantic_release.version_variables,
  ruff.isort.known-first-party to reference splunk_ao_adk
- Update tests: all from/import/patch paths now use splunk_ao_adk

Co-authored-by: Cursor <cursoragent@cursor.com>
@fercor-cisco

Copy link
Copy Markdown
Collaborator

Running an automated review agent.

@fercor-cisco fercor-cisco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 This review was generated by the Astra agent. It may contain mistakes.

Verdict: request_changes — The rebrand renames are consistent, but the adk now pins splunk-ao>=2.0.0,<3.0.0 while the root splunk-ao package was reset to 0.1.0, making the published package unresolvable; the dev-dep swap also drops the galileo-core[testing] fixtures the tests depend on.

Follow-ups

Suggested follow-up work that could be tracked as Shortcut stories:

  • src/splunk_ao/config.py:47-47: The new SPLUNK_AO_API_URL -> GALILEO_API_URL bridge entry is correct and consistent with the rest of _BRIDGE, but there is no unit test covering it (test_config.py only asserts the default api_url). Consider adding a small test that sets SPLUNK_AO_API_URL and asserts GALILEO_API_URL is populated (and that an explicit GALILEO_API_URL is not overridden), to guard the bridge against regressions.

Comment thread splunk-ao-adk/pyproject.toml Outdated
Comment thread splunk-ao-adk/pyproject.toml Outdated
…esting] (PR #32 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
- Re-add galileo-core[testing]>=3.82.0 dev dep: provides the mock_request
  fixture (autouse in conftest.py and mocks.py) that the test suite requires;
  splunk-ao[otel] alone does not include the testing extras

Co-authored-by: Cursor <cursoragent@cursor.com>
adityamehra added a commit that referenced this pull request Jun 18, 2026
…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>
@adityamehra

Copy link
Copy Markdown
Member Author

Addressing review comments from @fercor-cisco (commit bcdc1a5):

Comment 1 — runtime dep version range (line 18)
Fixed: splunk-ao>=2.0.0,<3.0.0splunk-ao>=0.1.0,<1.0.0 to align with the actual package version.

Comment 2 — dev dep version + galileo-core[testing] (line 140)
Fixed: lowered splunk-ao[otel] to >=0.1.0,<1.0.0 and restored galileo-core[testing]>=3.82.0 alongside it so the mock_request autouse fixture (used in conftest.py and mocks.py) remains available.

adityamehra and others added 14 commits June 18, 2026 16:09
Adds test-splunk-ao-adk.yaml to run unit tests on pull requests and pushes
to main that touch the splunk-ao-adk 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)
- pytest pythonpath ".." (repo root) makes test_support importable without extra steps
- 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 new filename,
and revert the ineffective [[tool.uv.index]] approach from pyproject.toml.

Co-authored-by: Cursor <cursoragent@cursor.com>
list dependencies

@fercor-cisco fercor-cisco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 This review was generated by the Astra agent. It may contain mistakes.

Verdict: request_changes — The rebrand left a broken import in a README code example and un-rebranded content in CONTRIBUTING.md — both squarely within this PR's stated scope.

Follow-ups

Suggested follow-up work that could be tracked as Shortcut stories:

  • src/splunk_ao/config.py:47-47: The new SPLUNK_AO_API_URL -> GALILEO_API_URL bridge entry (and the other bridge mappings) has no unit test covering that the value is propagated into the environment. Consider adding a test for _bridge_env_vars() that asserts SPLUNK_AO_* values are copied to GALILEO_* keys and that existing GALILEO_* values are not overwritten.
  • .github/workflows/ci-tests-splunk-ao-adk.yaml:24-24: pyproject.toml declares requires-python = ">=3.10,<3.15", but the CI matrix tests 3.11–3.14 and omits 3.10. Consider adding "3.10" to the matrix so the lowest supported version is exercised.

Comment thread splunk-ao-adk/README.md Outdated
Comment on lines 189 to 195
from splunk_ao import GalileoLogger
from galileo_adk import GalileoADKPlugin
from splunk_ao_adk import SplunkAOADKPlugin
from google.adk.runners import Runner
from google.adk.agents import LlmAgent
from google.genai import types

logger = GalileoLogger(

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 minor (bug): Broken import in the ingestion-hook example. The splunk_ao package no longer exports GalileoLogger — it exports SplunkAOLogger (see src/splunk_ao/__init__.py and src/splunk_ao/logger/__init__.py, whose __all__ is ["SplunkAOLogger"]). A user copy-pasting this snippet will hit ImportError. The rename that this PR performed for the ADK classes was missed here. Update both the import and the constructor call.

Suggested change
from splunk_ao import GalileoLogger
from galileo_adk import GalileoADKPlugin
from splunk_ao_adk import SplunkAOADKPlugin
from google.adk.runners import Runner
from google.adk.agents import LlmAgent
from google.genai import types
logger = GalileoLogger(
from splunk_ao import SplunkAOLogger
from splunk_ao_adk import SplunkAOADKPlugin
from google.adk.runners import Runner
from google.adk.agents import LlmAgent
from google.genai import types
logger = SplunkAOLogger(

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably because of another renaming that landed recently, but it looks like it would be good to fix before merging.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 minor (documentation): This file was only partially rebranded — the diff changed just two lines (src/galileo_adk/ path and the --cov flag). The rest still reads as the old package: the heading # Contributing to galileo-adk, links to rungalileo/galileo-python, the architecture diagram class names (GalileoADKPlugin, GalileoADKCallback, GalileoObserver, GalileoLogger, GalileoBaseHandler), cd galileo-adk, the galileo>=1.45.0 dependency example, the Release galileo-adk workflow reference, and docs.rungalileo.io. Since rebranding the docs is an explicit goal of this PR, this file should be updated for consistency with README.md and the renamed source.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change what is reasonable, but it is OK to leave some of this documentation to be updated at a later time.

…G.md (PR #32 review)

README.md:
- Fix broken import: GalileoLogger -> SplunkAOLogger (splunk_ao no longer
  exports GalileoLogger; it exports SplunkAOLogger)

CONTRIBUTING.md:
- Heading and intro: galileo-adk -> splunk-ao-adk
- Monorepo name/link: galileo-python/rungalileo -> splunk-ao-python/splunk
- Directory tree: galileo-python/ -> splunk-ao-python/, galileo-adk/ -> splunk-ao-adk/
- Architecture diagram: GalileoADKPlugin -> SplunkAOADKPlugin,
  GalileoADKCallback -> SplunkAOADKCallback, GalileoObserver -> SplunkAOObserver,
  GalileoLogger -> SplunkAOLogger, GalileoBaseHandler -> SplunkAOBaseHandler,
  Galileo Backend -> Splunk AO Backend
- TraceBuilder section: GalileoLogger -> SplunkAOLogger throughout
- Setup: cd galileo-adk -> cd splunk-ao-adk, galileo editable -> splunk-ao
- Release sequence: galileo/galileo-adk -> splunk-ao/splunk-ao-adk, dep example updated
- Workflow name: Release galileo-adk -> Release splunk-ao-adk
- Links: rungalileo/galileo-python -> splunk/splunk-ao-python,
  docs.rungalileo.io -> docs.splunk.com/observability

Co-authored-by: Cursor <cursoragent@cursor.com>
@adityamehra

Copy link
Copy Markdown
Member Author

Addressing new review comments from @fercor-cisco (commit 15dc3cf):

README.md — broken GalileoLogger import (line 195)
Fixed: updated the ingestion-hook example to use SplunkAOLogger for both the import and the constructor call.

CONTRIBUTING.md — partial rebrand
Fully rebranded:

  • Heading/intro: galileo-adksplunk-ao-adk
  • Monorepo link: rungalileo/galileo-pythonsplunk/splunk-ao-python
  • Directory tree entries updated
  • Architecture diagram: all class names updated (GalileoADKPluginSplunkAOADKPlugin, GalileoADKCallbackSplunkAOADKCallback, GalileoObserverSplunkAOObserver, GalileoLoggerSplunkAOLogger, GalileoBaseHandlerSplunkAOBaseHandler, Galileo BackendSplunk AO Backend)
  • TraceBuilder section, setup commands, release sequence, workflow name, and issue/docs links all updated

adityamehra and others added 3 commits June 25, 2026 11:53
…AO_API_URL

Covers the three key behaviours of SplunkAOConfig._bridge_env_vars():

1. Propagation  — every SPLUNK_AO_* key is copied to its GALILEO_* counterpart
   when that counterpart is absent (parametrized over all 13 bridge pairs).
2. Non-overwrite — an explicit GALILEO_* value already present in the
   environment is never overwritten by the bridge (parametrized over all pairs).
3. Absence      — when a SPLUNK_AO_* source key is absent, no spurious
   GALILEO_* entry is introduced.
4. Regression   — dedicated test for the SPLUNK_AO_API_URL -> GALILEO_API_URL
   entry added as a fix for self-hosted deployments.

Co-authored-by: Cursor <cursoragent@cursor.com>
@adityamehra

Copy link
Copy Markdown
Member Author

Added tests/test_config.py unit tests for _bridge_env_vars() in commit 28f65b2:

  1. Propagation (test_bridge_env_vars_propagates_splunk_ao_to_galileo) — parametrized over all 13 bridge pairs; asserts each SPLUNK_AO_* value is copied to its GALILEO_* counterpart when that counterpart is absent.
  2. Non-overwrite (test_bridge_env_vars_does_not_overwrite_existing_galileo_value) — parametrized over all 13 pairs; asserts an explicit GALILEO_* already in the environment is never clobbered.
  3. Absence (test_bridge_env_vars_skips_absent_splunk_ao_keys) — asserts no spurious GALILEO_* entries are introduced when all SPLUNK_AO_* sources are absent.
  4. SPLUNK_AO_API_URL regression (test_bridge_env_vars_api_url_specifically) — dedicated test for the self-hosted deployment bridge entry.

…tion

SPLUNK_AO_API_URL -> GALILEO_API_URL bridge removed:
- api_url is an internal galileo-core field derived automatically from
  console_url (replaces "console" with "api" in the hostname); there is no
  user-facing GALILEO_API_URL env var in the upstream rungalileo/galileo-python
  SDK and it is not in our own _CONFIGURATION_KEYS
- Adding SPLUNK_AO_API_URL to the bridge was a mistake introduced during
  rebranding; self-hosted users should set SPLUNK_AO_CONSOLE_URL which is
  correctly bridged and from which api_url is derived

Test isolation fix in test_bridge_env_vars_*:
- Replace monkeypatch with patch.dict(os.environ) so that GALILEO_* keys
  written directly to os.environ by _bridge_env_vars() (bypassing monkeypatch
  tracking) are fully restored on block exit, preventing URL-validation errors
  from leaking into subsequent tests
- Remove SPLUNK_AO_API_URL from _ALL_BRIDGE_PAIRS parametrization
- Remove test_bridge_env_vars_api_url_specifically
- Use valid URL strings for URL-type keys (CONSOLE_URL) to avoid Pydantic
  validation errors if a value does leak
- Introduce _val() helper for per-key test values

Co-authored-by: Cursor <cursoragent@cursor.com>
@adityamehra

Copy link
Copy Markdown
Member Author

Follow-up fix in commit 84e59ad:

SPLUNK_AO_API_URL bridge removedapi_url is an internal galileo-core field derived automatically from console_url (it just swaps consoleapi in the hostname). There is no user-facing GALILEO_API_URL env var in the upstream rungalileo/galileo-python SDK, and it is absent from our own _CONFIGURATION_KEYS. The bridge entry SPLUNK_AO_API_URL → GALILEO_API_URL was introduced by mistake during rebranding. Self-hosted users should set SPLUNK_AO_CONSOLE_URL (which is correctly bridged and from which api_url is derived).

Test isolation fixed — replaced monkeypatch with patch.dict(os.environ) in all test_bridge_env_vars_* tests. _bridge_env_vars() writes directly to os.environ, bypassing monkeypatch tracking; this caused GALILEO_API_URL = "test-value-for-SPLUNK_AO_API_URL" (an invalid URL) to leak into subsequent tests and break Pydantic validation in their autouse fixture setup. patch.dict snapshots and fully restores os.environ on block exit, eliminating the leakage. Also removed the SPLUNK_AO_API_URL parametrization case and use valid URL strings for URL-type keys.

@adityamehra adityamehra requested a review from fercor-cisco June 25, 2026 20:17

@fercor-cisco fercor-cisco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 This review was generated by the Astra agent. It may contain mistakes.

Verdict: approve — Rebrand renames are consistent and correct; handler param renames match the library. Prior major issues are resolved. Only minor doc leftovers remain.

General Comments

  • 🔵 nit (documentation): The PR's stated goal is a full rebrand, but several source docstrings and a test class still say "Galileo": data_converters.py (lines 1, 22, 45, 157), types.py (line 1), span_manager.py (lines 1, 19), plugin.py (line 233), observer.py (lines 258, 260), trace_builder.py (lines 4, 50), and tests/test_retriever.py (class TestGalileoRetrieverDecorator). These are non-functional, but worth a sweep for consistency since rebranding is the explicit intent. A prior reviewer already noted it is acceptable to defer some doc cleanup, so this is non-blocking.

Comment thread splunk-ao-adk/README.md
## Resources

- [Galileo Documentation](https://docs.rungalileo.io/)
- [Splunk AO Documentation](https://docs.rungalileo.io/)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 minor (documentation): The link text was rebranded to "Splunk AO Documentation" but the URL still points to Galileo's docs domain (docs.rungalileo.io). This sends users to the wrong (third-party) site. Update to the correct Splunk AO docs URL, or drop the link until one exists.

Suggested change
- [Splunk AO Documentation](https://docs.rungalileo.io/)
- [Splunk AO Documentation](https://docs.splunk.com/)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, we can defer this change.

@adityamehra adityamehra merged commit 4114f3c into main Jun 25, 2026
17 checks passed
@adityamehra adityamehra deleted the fix/splunk-ao-adk-pyproject branch June 25, 2026 20:56
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants