Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
375c0be
feat(galileo-adk): rebrand to SPLUNK_AO_* env vars and SplunkAO* clas…
adityamehra Jun 16, 2026
788e932
fix(galileo-adk): rename package to splunk-ao-adk and reset to v0.1.0
adityamehra Jun 16, 2026
97db4ff
Merge branch 'main' into fix/splunk-ao-adk-pyproject
adityamehra Jun 17, 2026
67476e6
refactor(galileo-adk): rename dir to splunk-ao-adk and module to splu…
adityamehra Jun 17, 2026
bcdc1a5
fix(splunk-ao-adk): correct version ranges and restore galileo-core[t…
adityamehra Jun 18, 2026
9a60083
Merge branch 'main' into fix/splunk-ao-adk-pyproject
adityamehra Jun 18, 2026
5c7b5ff
ci: add GitHub Actions workflow to test splunk-ao-adk
adityamehra Jun 23, 2026
143c00b
fix(ci): use uv run pip list to avoid VIRTUAL_ENV override in show-ve…
adityamehra Jun 23, 2026
b8c1baf
fix(ci): use pip show instead of pip list grep for installed versions…
adityamehra Jun 23, 2026
3f6e4d9
fix(ci): use uv tree --depth 1 for show-versions step to avoid VIRTUA…
adityamehra Jun 23, 2026
ca6ce24
fix(dev): pin PyPI as default uv index to bypass Splunk Artifactory i…
adityamehra Jun 23, 2026
e369895
fix(dev): add uv.toml to splunk-ao-adk to replace global Artifactory …
adityamehra Jun 23, 2026
c9eda22
fix(ci): update python matrix
adityamehra Jun 23, 2026
0adcca2
fix(dev): rename missed galileo logger
adityamehra Jun 23, 2026
653bc4d
fix(ci): Add cache
adityamehra Jun 24, 2026
abf7d4e
fix(ci): cache for uv not supported
adityamehra Jun 24, 2026
18c0829
fix(ci): point uv cache-dependency-glob to action's uv.lock for prope…
adityamehra Jun 24, 2026
bd8ea35
fix(ci): point uv cache-dependency-glob to action's pyproject.toml
adityamehra Jun 24, 2026
7d50a76
fix(ci): point uv cache-dependency-glob to action's pyproject.toml
adityamehra Jun 24, 2026
15dc3cf
docs(splunk-ao-adk): fix GalileoLogger import and rebrand CONTRIBUTIN…
adityamehra Jun 25, 2026
6189795
Merge branch 'main' into fix/splunk-ao-adk-pyproject
adityamehra Jun 25, 2026
58ac9c4
fix(docs): Use galileo docs
adityamehra Jun 25, 2026
28f65b2
test(config): add unit tests for _bridge_env_vars() including SPLUNK_…
adityamehra Jun 25, 2026
84e59ad
fix(config): remove SPLUNK_AO_API_URL bridge entry and fix test isola…
adityamehra Jun 25, 2026
6841cd0
fix(docs): Update to python 3.11+
adityamehra Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/ci-tests-splunk-ao-adk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Test splunk-ao-adk

on:
push:
branches: [main]
paths:
- 'splunk-ao-adk/**'
- '.github/workflows/ci-tests-splunk-ao-adk.yaml'
pull_request:
paths:
- 'splunk-ao-adk/**'
- '.github/workflows/ci-tests-splunk-ao-adk.yaml'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
test:
name: Python ${{ matrix.python-version }}
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]

runs-on: ubuntu-latest
# Hard cap per matrix job to bail out fast on real hangs.
timeout-minutes: 30

defaults:
run:
working-directory: splunk-ao-adk

steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6
with:
enable-cache: true
cache-dependency-glob: "**/splunk-ao-adk/pyproject.toml"

# uv sources in pyproject.toml pins splunk-ao to the local monorepo root
# as an editable install, so this always tests against the latest local code.
# pytest pythonpath includes ".." (the repo root) so test_support is importable.
- name: Install dependencies
run: uv sync --dev

- name: Show installed versions
run: uv pip list | grep -E "^(galileo|google-adk|splunk-ao)"

- name: Run type check
run: uv run mypy src/

- name: Run tests
run: uv run pytest --cov=splunk_ao_adk --cov-report=xml
13 changes: 0 additions & 13 deletions galileo-adk/src/galileo_adk/__init__.py

This file was deleted.

File renamed without changes.
File renamed without changes.
60 changes: 30 additions & 30 deletions galileo-adk/CONTRIBUTING.md → splunk-ao-adk/CONTRIBUTING.md

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.

Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Contributing to galileo-adk
# Contributing to splunk-ao-adk

Thank you for your interest in contributing to galileo-adk!
Thank you for your interest in contributing to splunk-ao-adk!

## Project Structure

This package is part of the [galileo-python](https://github.com/rungalileo/galileo-python) monorepo:
This package is part of the [splunk-ao-python](https://github.com/splunk/splunk-ao-python) monorepo:

```
galileo-python/
├── src/splunk_ao/ ← Main Galileo SDK
└── galileo-adk/
├── src/galileo_adk/
splunk-ao-python/
├── src/splunk_ao/ ← Main Splunk AO SDK
└── splunk-ao-adk/
├── src/splunk_ao_adk/
├── tests/
├── pyproject.toml
└── README.md
Expand All @@ -23,7 +23,7 @@ galileo-python/
│ Google ADK │
│ │
│ ┌─────────────────────────┐ ┌─────────────────────────┐ │
│ │ GalileoADKPlugin │ │ GalileoADKCallback │ │
│ │ SplunkAOADKPlugin │ │ SplunkAOADKCallback │ │
│ │ (Runner plugins) │ │ (Agent callbacks) │ │
│ │ │ │ │ │
│ │ on_user_msg │ │ before/after_agent │ │
Expand All @@ -40,51 +40,51 @@ galileo-python/
│ └─────────┬──────────┘ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ GalileoObserver │ ← Shared logic + metadata │
│ │ SplunkAOObserver │ ← Shared logic + metadata │
│ └─────────┬──────────┘ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ SpanManager │ ← Trace hierarchy │
│ └─────────┬──────────┘ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ GalileoBaseHandler │ ← From galileo lib
│ │ SplunkAOBaseHandler│ ← From splunk-ao lib │
│ └─────────┬──────────┘ │
└────────────────────────────┼─────────────────────────────────────────────┘
┌────────────────────────┐
Galileo Backend
Splunk AO Backend │
│ (or ingestion_hook) │
└────────────────────────┘
```

### TraceBuilder vs GalileoLogger
### TraceBuilder vs SplunkAOLogger

The plugin supports two modes of operation:

| Mode | Logger | When to Use |
|------|--------|-------------|
| **Normal** | `GalileoLogger` | Traces sent directly to Galileo backend |
| **Normal** | `SplunkAOLogger` | Traces sent directly to Splunk AO backend |
| **Hook** | `TraceBuilder` | Traces passed to custom `ingestion_hook` callback |

**TraceBuilder** is a lightweight alternative to `GalileoLogger` that:
**TraceBuilder** is a lightweight alternative to `SplunkAOLogger` that:
- Implements the same trace-building interface (spans, traces, metadata)
- Requires no Galileo credentials or backend connectivity
- Requires no Splunk AO credentials or backend connectivity
- Passes completed traces to the `ingestion_hook` consumer
- Delegates session management to the hook consumer via `session_external_id`

```
Normal mode: Hook mode:
┌─────────────────┐ ┌─────────────────┐
GalileoObserver │ │ GalileoObserver
SplunkAOObserver│ │ SplunkAOObserver
└────────┬────────┘ └────────┬────────┘
▼ ▼
┌─────────────────┐ ┌─────────────────┐
GalileoLogger │ │ TraceBuilder │
SplunkAOLogger │ │ TraceBuilder │
└────────┬────────┘ └────────┬────────┘
▼ ▼
┌─────────────────┐ ┌─────────────────┐
Galileo Backend │ │ ingestion_hook │
Splunk AO Backend│ │ ingestion_hook │
└─────────────────┘ └─────────────────┘
```

Expand All @@ -108,11 +108,11 @@ invocation [agent_name] ← Run span (workflow wrapper)
### Setup

```bash
cd galileo-adk
cd splunk-ao-adk
uv sync --dev
```

This installs `galileo` in **editable mode** from `../src/splunk_ao/`. Changes to either package are immediately available without reinstalling.
This installs `splunk-ao` in **editable mode** from `../src/splunk_ao/`. Changes to either package are immediately available without reinstalling.

### Running Tests

Expand All @@ -124,7 +124,7 @@ source .venv/bin/activate
pytest tests -v

# Run with coverage
pytest tests --cov=galileo_adk --cov-report=term-missing
pytest tests --cov=splunk_ao_adk --cov-report=term-missing

# Run linting
ruff check src/
Expand Down Expand Up @@ -152,23 +152,23 @@ The `[tool.uv].sources` configuration is **dev-only** and ignored when building

### Release Sequence

When both `galileo` and `galileo-adk` have changes:
When both `splunk-ao` and `splunk-ao-adk` have changes:

1. Merge changes to `galileo` (main SDK)
2. Wait for `galileo` to publish to PyPI
3. Update `galileo-adk/pyproject.toml` dependency constraint if needed:
1. Merge changes to `splunk-ao` (main SDK)
2. Wait for `splunk-ao` to publish to PyPI
3. Update `splunk-ao-adk/pyproject.toml` dependency constraint if needed:
```toml
dependencies = [
"galileo>=1.45.0,<2.0.0", # bump minimum version
"splunk-ao>=0.1.0,<1.0.0", # bump minimum version
]
```
4. Merge and publish `galileo-adk`
4. Merge and publish `splunk-ao-adk`

### Triggering a Release

Releases are triggered via GitHub Actions:

1. Go to **Actions** > **Release galileo-adk**
1. Go to **Actions** > **Release splunk-ao-adk**
2. Click **Run workflow**
3. Either leave version empty for automatic semantic versioning, or specify a version (e.g., `1.0.0`, `1.1.0-beta.1`)
4. Click **Run workflow**
Expand All @@ -193,5 +193,5 @@ docs(adk): update configuration examples

## Questions?

- Open an issue on [GitHub](https://github.com/rungalileo/galileo-python/issues)
- Check the [Galileo Documentation](https://docs.rungalileo.io/)
- Open an issue on [GitHub](https://github.com/splunk/splunk-ao-python/issues)
- Check the [Splunk Observability Documentation](https://docs.splunk.com/observability/)
Loading
Loading