Skip to content

HYBIM-717 | Rename main module from galileo to splunk_ao#17

Merged
keith-decker merged 8 commits into
mainfrom
hybim-717
Jun 16, 2026
Merged

HYBIM-717 | Rename main module from galileo to splunk_ao#17
keith-decker merged 8 commits into
mainfrom
hybim-717

Conversation

@keith-decker

Copy link
Copy Markdown
Contributor

Summary

Renames the main Python SDK import namespace from galileo to splunk_ao for HYBIM-717.

This moves the active non-generated SDK package to src/splunk_ao/, updates first-party imports, tests, docs, examples, and local tooling targets, while keeping protected generated resources under src/galileo/resources/.

What Changed

  • Moved active SDK source from src/galileo/ to src/splunk_ao/.
  • Added a temporary top-level galileo compatibility shim that emits DeprecationWarning.
  • Added targeted generated-resource shims for:
    • galileo.exceptions
    • galileo.utils.headers_data
  • Updated tests and patch targets to use splunk_ao.*.
  • Updated docs/examples and A2A/ADK direct imports to use splunk_ao.*.
  • Updated package discovery, coverage, mypy, ruff, semantic-release, and docs-generation paths.
  • Preserved src/galileo/resources/** as generated output and did not run generated-client workflows.

Out Of Scope / Preserved

  • Distribution name remains galileo.
  • GALILEO_* environment variables remain unchanged.
  • Backend URLs, product names, public class names, galileo-core, SDK header strings, and adjacent package names remain unchanged.
  • This does not add a full galileo.* submodule compatibility layer beyond the top-level shim and generated-resource dependency shims.

Validation

Passed local validation that does not require dependency sync:

  • pyproject.toml parses successfully.
  • AST parse passed for 249 non-generated Python files.
  • import galileo succeeds and emits the expected DeprecationWarning.
  • Namespace scans show old non-resource galileo imports only in explicit compatibility tests.
  • src/galileo/resources/** has no diff.
  • Generated-client scripts were not run.

Blocked locally:

  • uv run pytest
  • uv run invoke type-check
  • uv run pre-commit run ruff --all-files

These are blocked because Artifactory returns HTTP 404 for the pinned chromadb-1.1.1 wheel before tests or tooling start. I'll work on getting this working.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Renames the primary Python SDK import namespace from galileo to splunk_ao, updates first-party imports/tests/docs/tooling to the new namespace, and introduces a temporary galileo compatibility shim (plus targeted shims for protected generated resources under galileo.resources).

Changes:

  • Moved/duplicated active SDK modules under src/splunk_ao/ and updated internal imports accordingly.
  • Updated tests, examples, and ancillary packages (galileo-adk, galileo-a2a) to import from splunk_ao.
  • Added/updated compatibility shims so import galileo (and select submodules) continue to work with DeprecationWarning.

Reviewed changes

Copilot reviewed 223 out of 248 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/utils/test_validations.py Update imports to splunk_ao.utils.validations.
tests/utils/test_telemetry_toggle.py Update imports to splunk_ao.utils.decorators.
tests/utils/test_serialization.py Update imports/patch targets to splunk_ao.utils.serialization.
tests/utils/test_metrics.py Switch metrics imports to splunk_ao.*.
tests/utils/test_exception_handling.py Switch decorators import to splunk_ao.utils.decorators.
tests/utils/test_datasets.py Switch schema/utils and patch targets to splunk_ao.*.
tests/testutils/setup.py Switch domain-object imports to splunk_ao.*.
tests/test_uuid_utils.py Switch uuid utils import to splunk_ao.utils.uuid_utils.
tests/test_traces_client_headers.py Switch Traces + patch targets to splunk_ao.*.
tests/test_thread_pool_task_handler.py Update src.* import path to src.splunk_ao.*.
tests/test_sort.py Switch sort helpers import to splunk_ao.shared.sort.
tests/test_search.py Switch search helpers + patch targets to splunk_ao.search.*.
tests/test_scorers.py Switch scorers client import + patch targets to splunk_ao.scorers.*.
tests/test_runs.py Switch runs helper + patch targets to splunk_ao.runs.*.
tests/test_query_result.py Switch query result helpers import to splunk_ao.shared.query_result.
tests/test_public_imports.py Validate public API exports on splunk_ao instead of galileo.
tests/test_protect_parser.py Switch ProtectParser imports and logger name to splunk_ao.*.
tests/test_prompts_global.py Switch prompt imports to splunk_ao.*.
tests/test_openai_extractors.py Switch OpenAI extractor import to splunk_ao.openai.*.
tests/test_openai_agents.py Switch OpenAI agents handler/logger/utils imports + patch targets to splunk_ao.*.
tests/test_openai_agents_utils.py Switch OpenAI agents utils import to splunk_ao.*.
tests/test_namespace_compatibility.py Add smoke tests for splunk_ao + galileo shim behavior.
tests/test_middleware_tracing.py Switch middleware imports + patch targets to splunk_ao.*.
tests/test_metric_types.py Switch metric + exceptions imports to splunk_ao.*.
tests/test_logger_timestamps.py Switch logger imports + patch targets to splunk_ao.*.
tests/test_langchain.py Switch langchain handler/logger/schema/utils imports + patch targets to splunk_ao.*.
tests/test_langchain_middleware.py Switch middleware imports + patch targets to splunk_ao.*.
tests/test_langchain_async.py Switch async handler imports + patch targets to splunk_ao.*.
tests/test_jobs.py Switch jobs client + patch targets to splunk_ao.jobs.*.
tests/test_galileo_context.py Switch context/decorator imports + patch targets to splunk_ao.*.
tests/test_filter.py Switch filter helpers import to splunk_ao.shared.filter.
tests/test_export.py Switch export client + patch targets to splunk_ao.export.*.
tests/test_experiment_tags.py Switch experiment tags import to splunk_ao.experiment_tags.
tests/test_deprecations.py Switch deprecation tests to splunk_ao.schema.metrics / top-level.
tests/test_crewai_handler.py Switch crewai handler imports + patch targets to splunk_ao.*.
tests/test_configuration.py Switch configuration imports + patch targets to splunk_ao.*.
tests/test_config.py Switch config imports to splunk_ao.*.
tests/test_column.py Switch column + exceptions imports to splunk_ao.shared.*.
tests/test_base_handler.py Switch base handler imports + patch targets to splunk_ao.*.
tests/test_async_base_handler.py Switch async base handler imports + patch targets to splunk_ao.*.
tests/test_api_headers.py Switch project/projects + headers import to splunk_ao.*.
tests/test_api_client_integration.py Switch exception imports to splunk_ao.exceptions.
tests/test_agent_control.py Switch agent control imports to splunk_ao.*.
tests/shared/test_project_resolver.py Switch shared resolver imports + patch targets to splunk_ao.*.
tests/schemas/test_metrics.py Switch schema metrics import to splunk_ao.schema.metrics.
tests/schemas/test_message.py Switch schema message import to splunk_ao top-level.
tests/schemas/test_logged.py Switch schema/logging imports to splunk_ao.*.
tests/schemas/test_datasets.py Switch dataset schema import to splunk_ao.schema.datasets.
tests/conftest.py Switch logger/configuration/collaborator imports and logger names to splunk_ao.*.
tasks.py Update pytest coverage target + mypy package target to splunk_ao.
src/splunk_ao/utils/validations.py Switch ValidationError import to splunk_ao.shared.exceptions.
src/splunk_ao/utils/uuid_utils.py Add UUID7 detection/conversion utilities under new namespace.
src/splunk_ao/utils/span_utils.py Switch span schema import to splunk_ao.schema.trace.
src/splunk_ao/utils/singleton.py Switch logger/schema/env helper imports to splunk_ao.*.
src/splunk_ao/utils/serialization.py Switch optional-dependency helpers import to splunk_ao.utils.dependencies.
src/splunk_ao/utils/retrievers.py Switch trace schema imports to splunk_ao.schema.trace.
src/splunk_ao/utils/prompts.py Switch prompt template import to splunk_ao.prompts.
src/splunk_ao/utils/projects.py Switch projects service import to splunk_ao.projects.
src/splunk_ao/utils/openai_agents.py Switch handler schema + serialization imports to splunk_ao.*.
src/splunk_ao/utils/metrics.py Switch schema/scorers imports to splunk_ao.*.
src/splunk_ao/utils/log_config.py Introduce SDK_LOGGER_NAME="splunk_ao" and logger utilities.
src/splunk_ao/utils/headers_data.py Add SDK header utilities recognizing splunk_ao.* and galileo.resources.*.
src/splunk_ao/utils/exceptions.py Add API exception helper + HTTP validation error formatting.
src/splunk_ao/utils/env_helpers.py Switch constants/exceptions imports to splunk_ao.*.
src/splunk_ao/utils/dependencies.py Add simple optional-dependency discovery helpers.
src/splunk_ao/utils/decorators/telemetry_toggle.py Add telemetry-toggle decorators under new namespace.
src/splunk_ao/utils/decorators/init.py Re-export decorators from splunk_ao.utils.decorators.*.
src/splunk_ao/utils/datasets.py Switch dataset/config/schema imports to splunk_ao.*.
src/splunk_ao/utils/init.py Add timestamp helpers under splunk_ao.utils.
src/splunk_ao/types.py Switch metric/schema imports to splunk_ao.*.
src/splunk_ao/tracing.py Switch decorator import + docs to splunk_ao.
src/splunk_ao/traces.py Switch config/routes/schema/decorators/header utils imports to splunk_ao.*.
src/splunk_ao/stages.py Switch config/projects imports to splunk_ao.*.
src/splunk_ao/shared/utils.py Add classproperty helper under new namespace.
src/splunk_ao/shared/sort.py Add Sort builder under new namespace.
src/splunk_ao/shared/query_result.py Switch type-checking imports to splunk_ao.*.
src/splunk_ao/shared/project_resolver.py Switch project resolver imports/docs to splunk_ao.*.
src/splunk_ao/shared/exceptions.py Switch exceptions/env helper imports/docs to splunk_ao.*.
src/splunk_ao/shared/column.py Switch exceptions/filter/sort imports to splunk_ao.shared.*.
src/splunk_ao/shared/init.py Add shared package init (docstring).
src/splunk_ao/search.py Switch config/filter imports to splunk_ao.*.
src/splunk_ao/scorers.py Switch config import to splunk_ao.config.
src/splunk_ao/schema/trace.py Switch logged schema import to splunk_ao.schema.logged.
src/splunk_ao/schema/message.py Switch content-blocks import to splunk_ao.schema.content_blocks.
src/splunk_ao/schema/logged.py Switch control/content/message imports to splunk_ao.*.
src/splunk_ao/schema/handlers.py Add handler schema types under new namespace.
src/splunk_ao/schema/filters.py Add FilterType union under new namespace.
src/splunk_ao/schema/experiment_group.py Add experiment-group response models under new namespace.
src/splunk_ao/schema/datasets.py Add dataset record model under new namespace.
src/splunk_ao/schema/content_blocks.py Add ingest content-block models under new namespace.
src/splunk_ao/schema/init.py Re-export schema types under new namespace.
src/splunk_ao/runs.py Switch config import to splunk_ao.config.
src/splunk_ao/README_API_CLIENT.md Update docs to import splunk_ao.api_client.
src/splunk_ao/provider.py Switch config/shared/utils/model imports to splunk_ao.*.
src/splunk_ao/protect.py Switch config/constants imports to splunk_ao.*.
src/splunk_ao/prompts.py Switch config/schema/utils imports to splunk_ao.*.
src/splunk_ao/prompt.py Switch config/projects/prompts/schema/shared/env imports to splunk_ao.*.
src/splunk_ao/projects.py Switch config/env/exceptions/log_config imports to splunk_ao.*.
src/splunk_ao/project.py Switch collaborator/config/projects/shared imports to splunk_ao.*.
src/splunk_ao/otel.py Switch config/decorator/env/retrievers imports and OTEL attrs to splunk_ao.*.
src/splunk_ao/openai/response_generator.py Switch OpenAI wrappers imports to splunk_ao.*.
src/splunk_ao/openai/models.py Add OpenAI model dataclasses under new namespace.
src/splunk_ao/openai/extractors.py Switch OpenAI extractor imports to splunk_ao.*.
src/splunk_ao/openai/init.py Switch OpenAI instrumentation imports/docs to splunk_ao.*.
src/splunk_ao/model.py Add immutable Model type under new namespace.
src/splunk_ao/middleware/tracing.py Switch middleware docs/imports to splunk_ao.*.
src/splunk_ao/middleware/init.py Re-export middleware from splunk_ao.middleware.tracing.
src/splunk_ao/metrics.py Switch config/scorers/search imports to splunk_ao.*.
src/splunk_ao/metric.py Switch config/configuration/metrics/schema/scorers/shared imports to splunk_ao.*.
src/splunk_ao/logger/utils.py Switch decorators/serialization imports to splunk_ao.*.
src/splunk_ao/logger/logger.py Switch logger dependencies/imports and logger name to splunk_ao.*.
src/splunk_ao/logger/control.py Add control span compatibility implementation under new namespace.
src/splunk_ao/logger/init.py Update lazy import path for GalileoLogger.
src/splunk_ao/log_streams.py Switch config/projects/schema/utils imports and docs to splunk_ao.*.
src/splunk_ao/log_stream.py Switch config/decorator/export/log_streams/schema/search/shared imports to splunk_ao.*.
src/splunk_ao/jobs.py Switch config + validation-formatting import to splunk_ao.*.
src/splunk_ao/job_progress.py Switch config/log_config imports to splunk_ao.*.
src/splunk_ao/integration.py Switch config/shared/utils/provider imports to splunk_ao.*.
src/splunk_ao/handlers/openai_agents/handler.py Switch handler imports to splunk_ao.*.
src/splunk_ao/handlers/openai_agents/init.py Re-export OpenAI agents handler under splunk_ao.
src/splunk_ao/handlers/langchain/utils.py Switch handler utils imports to splunk_ao.*.
src/splunk_ao/handlers/langchain/tool.py Switch protect/log_config imports to splunk_ao.*.
src/splunk_ao/handlers/langchain/middleware.py Switch handler imports to splunk_ao.*.
src/splunk_ao/handlers/langchain/handler.py Switch handler imports to splunk_ao.*.
src/splunk_ao/handlers/langchain/async_handler.py Switch handler imports to splunk_ao.*.
src/splunk_ao/handlers/langchain/init.py Re-export LangChain handlers under splunk_ao.
src/splunk_ao/handlers/crewai/handler.py Switch handler imports to splunk_ao.*.
src/splunk_ao/handlers/crewai/init.py Add crewai package init under splunk_ao.
src/splunk_ao/handlers/base_handler.py Switch base handler imports to splunk_ao.*.
src/splunk_ao/handlers/base_async_handler.py Switch async base handler imports to splunk_ao.*.
src/splunk_ao/handlers/agent_control/bridge.py Switch bridge imports to splunk_ao.*.
src/splunk_ao/handlers/agent_control/init.py Add Agent Control handler exports under splunk_ao.
src/splunk_ao/export.py Switch export dependencies to splunk_ao.*.
src/splunk_ao/experiments.py Switch experiments module imports/docs to splunk_ao.*.
src/splunk_ao/experiment_tags.py Switch config/exceptions import to splunk_ao.*.
src/splunk_ao/exceptions.py Add exceptions module under splunk_ao namespace.
src/splunk_ao/decorator.py Switch decorator module imports/docs to splunk_ao.*.
src/splunk_ao/datasets.py Switch dataset client imports to splunk_ao.*.
src/splunk_ao/dataset.py Switch dataset object imports to splunk_ao.*.
src/splunk_ao/constants/tracing.py Switch tracing constants dependency to splunk_ao.constants.
src/splunk_ao/constants/routes.py Add routes constants under splunk_ao.
src/splunk_ao/constants/protect.py Add protect constants under splunk_ao.
src/splunk_ao/constants/init.py Add constants module under splunk_ao.
src/splunk_ao/configuration.py Switch configuration module imports and logger constant usage to splunk_ao.*.
src/splunk_ao/config.py Switch config constants/exceptions to splunk_ao.*.
src/splunk_ao/collaborator.py Switch projects import and docs to splunk_ao.*.
src/splunk_ao/agent_control.py Switch imports/docs to splunk_ao.*.
src/splunk_ao/init.py Add splunk_ao top-level exports and suppression flag wiring.
src/splunk_ao/future/types.py Add splunk_ao.__future__ shim for types.
src/splunk_ao/future/shared/utils.py Add splunk_ao.__future__ shim for shared utils.
src/splunk_ao/future/shared/sort.py Add splunk_ao.__future__ shim for shared sort.
src/splunk_ao/future/shared/query_result.py Add splunk_ao.__future__ shim for query result.
src/splunk_ao/future/shared/filter.py Update __future__ filter shim to splunk_ao.
src/splunk_ao/future/shared/experiment_result.py Add splunk_ao.__future__ shim for experiment result.
src/splunk_ao/future/shared/exceptions.py Update __future__ exceptions shim to splunk_ao.
src/splunk_ao/future/shared/column.py Add splunk_ao.__future__ shim for column helpers.
src/splunk_ao/future/shared/base.py Add splunk_ao.__future__ shim for base types.
src/splunk_ao/future/shared/init.py Add splunk_ao.__future__.shared re-exports.
src/splunk_ao/future/provider.py Update provider shim to splunk_ao.
src/splunk_ao/future/prompt.py Add prompt shim under splunk_ao.__future__.
src/splunk_ao/future/project.py Add project shim under splunk_ao.__future__.
src/splunk_ao/future/model.py Add model shim under splunk_ao.__future__.
src/splunk_ao/future/metric.py Add metric shim under splunk_ao.__future__.
src/splunk_ao/future/log_stream.py Add log_stream shim under splunk_ao.__future__.
src/splunk_ao/future/integration.py Add integration shim under splunk_ao.__future__.
src/splunk_ao/future/experiment.py Add experiment shim under splunk_ao.__future__.
src/splunk_ao/future/dataset.py Add dataset shim under splunk_ao.__future__.
src/splunk_ao/future/configuration.py Update configuration shim to splunk_ao.
src/splunk_ao/future/collaborator.py Add collaborator shim under splunk_ao.__future__.
src/splunk_ao/future/init.py Switch __future__ package exports to splunk_ao.
src/galileo/utils/headers_data.py Replace implementation with shim exporting from splunk_ao.
src/galileo/utils/init.py Convert to compatibility package docstring.
src/galileo/schema/init.py Remove legacy schema re-exports.
src/galileo/handlers/openai_agents/init.py Remove legacy handler init.
src/galileo/handlers/langchain/init.py Remove legacy handler init.
src/galileo/handlers/agent_control/init.py Remove legacy handler init.
src/galileo/exceptions.py Replace implementation with shim exporting from splunk_ao.
src/galileo/init.py Add top-level galileo compatibility shim forwarding to splunk_ao.
src/galileo/future/types.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/utils.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/sort.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/query_result.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/experiment_result.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/column.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/base.py Remove legacy galileo.__future__ shim.
src/galileo/future/shared/init.py Remove legacy galileo.__future__ shim.
src/galileo/future/prompt.py Remove legacy galileo.__future__ shim.
src/galileo/future/project.py Remove legacy galileo.__future__ shim.
src/galileo/future/model.py Remove legacy galileo.__future__ shim.
src/galileo/future/metric.py Remove legacy galileo.__future__ shim.
src/galileo/future/log_stream.py Remove legacy galileo.__future__ shim.
src/galileo/future/integration.py Remove legacy galileo.__future__ shim.
src/galileo/future/experiment.py Remove legacy galileo.__future__ shim.
src/galileo/future/dataset.py Remove legacy galileo.__future__ shim.
src/galileo/future/collaborator.py Remove legacy galileo.__future__ shim.
scripts/create_docs.py Update docs generator source path to src/splunk_ao.
pyproject.toml Add Poetry package discovery for splunk_ao + update lint/release paths.
pydoc-markdown.yml Point doc loader to ./src/splunk_ao.
pydoc-markdown-handlers.yml Point handlers doc loader to ./src/splunk_ao/handlers.
galileo-adk/tests/test_trace_builder.py Switch trace schema import to splunk_ao.schema.trace.
galileo-adk/tests/conftest.py Switch config/singleton imports to splunk_ao.*.
galileo-adk/src/galileo_adk/trace_builder.py Switch schema/retrievers imports to splunk_ao.*.
galileo-adk/src/galileo_adk/span_manager.py Switch base handler import to splunk_ao.handlers.base_handler.
galileo-adk/src/galileo_adk/plugin.py Switch trace schema import to splunk_ao.schema.trace.
galileo-adk/src/galileo_adk/observer.py Switch context/handler/schema/serialization imports to splunk_ao.*.
galileo-adk/src/galileo_adk/callback.py Switch trace schema import to splunk_ao.schema.trace.
galileo-adk/README.md Update docs to import GalileoLogger from splunk_ao.
galileo-adk/CONTRIBUTING.md Update repo layout docs for src/splunk_ao/.
galileo-a2a/src/galileo_a2a/instrumentor.py Update docs to reference splunk_ao.otel.
galileo-a2a/README.md Update docs/examples to reference splunk_ao.otel.
galileo-a2a/examples/two_agent_demo.py Update example to import splunk_ao.otel.
examples/templates.py Update example imports to splunk_ao.*.
examples/langgraph/with_openai.py Update LangGraph example to splunk_ao.handlers.langchain.
examples/langgraph/basic_langgraph.py Update LangGraph example to splunk_ao.handlers.langchain.
.github/workflows/ci-tests.yaml Force Poetry env to match matrix Python version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +6 to +25
def get_package_version() -> str:
"""Get the package version of splunk_ao."""
try:
return version("galileo")
except PackageNotFoundError:
return "0.0.0" # Unknown version


def get_method_name() -> str:
"""Get the entry point method name into the galileo package.

Returns the last function before exiting the galileo package when
traversing from the bottom of the call stack. This captures any entry
point including direct usage of autogenerated resources or utils.

Returns
-------
str
A string in format "{function_name}@{module_name}" or empty string if not found.
"""

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 appears resolved in the current revision. src/splunk_ao/utils/headers_data.py now describes the entry point in terms of the "SDK namespace boundary" and explicitly notes the hybrid layout (active splunk_ao package plus protected generated resources under galileo.resources). The misleading "entry point into the galileo package" wording is gone, and the frame-matching prefixes (splunk_ao., galileo.resources.) match the documented behavior.

@fercor-cisco

Copy link
Copy Markdown
Collaborator

@keith-decker please run this on your dev environment. It seems that there are some formatting issues that CI is not catching yet.

poetry run pre-commit run --all-files

@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.

Claude analysis:

Copilot's open comment is valid: headers_data.py docstrings still say "galileo package" — reword.

@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 — Mechanical galileo→splunk_ao rename with correct compatibility shims, consistent tooling/config updates, and good test coverage; no correctness issues found.

Follow-ups

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

  • src/galileo/__init__.py:10-19: The deprecation warning will rarely fire in practice: importing splunk_ao (directly or transitively) sets _splunk_ao_suppress_galileo_deprecation_warning=True and then imports galileo.resources.*, which executes galileo/__init__.py with the warning suppressed and caches the galileo module. Any subsequent direct import galileo is then a cached no-op and stays silent. So a user who uses splunk_ao and also has legacy import galileo code in the same process will never see the deprecation nudge. This is acceptable for the stated goal (nudging pure-legacy users), but if a stronger migration signal is desired, consider emitting the warning from the __getattr__/submodule access path rather than only at parent-package import time.
  • pyproject.toml:91-97: [tool.pytest.ini_options].env still sets GALILEO_* while tests/conftest.py sets SPLUNK_AO_*. Both work because config.py bridges SPLUNK_AO_→GALILEO_, and env vars are intentionally out of scope for this rename. Consider aligning these (or adding a brief comment) in a future cleanup to avoid confusion about which set is authoritative in tests.

fercor-cisco
fercor-cisco previously approved these changes Jun 15, 2026
poetry env remove --all
poetry env use python
poetry run python -c "import sys; expected=tuple(map(int, '${{ matrix.python-version }}'.split('.'))); actual=sys.version_info[:2]; print('Poetry Python:', sys.version); raise SystemExit(0 if actual == expected else 'Expected Python %s, got %s' % (expected, actual))"

@fercor-cisco fercor-cisco Jun 15, 2026

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.

Feel free to merge as is. I'll create a separate Jira ticket to discuss these findings:

  1. Cache invalidation (significant)

poetry env remove --all destroys the virtualenv that actions/setup-python's cache: "poetry" just restored. The sequence is:

  1. setup-python restores cached Poetry env
  2. poetry env remove --all deletes it
  3. poetry env use python creates a new empty env
  4. invoke install reinstalls everything from scratch

The cache is restored but immediately discarded every run. This effectively disables the Poetry cache and will slow down all CI jobs noticeably. A less destructive alternative would be
poetry env use python${{ matrix.python-version }} (or the full path), which would steer Poetry to the right interpreter without blowing away the cached env.

  1. Redundant version check

The inline version check at the end of the new step (line 54) duplicates the existing "Verify Poetry Python version" step at lines 62–70. The existing step also uses
sys.version_info[:len(expected)] which is slightly more flexible. The new inline check isn't wrong, just redundant — and the early-fail intent (catching the problem before invoke
install runs) would be achieved by poetry env use itself failing if the Python isn't found.

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.

@keith-decker keith-decker enabled auto-merge (squash) June 15, 2026 23:10
# Conflicts:
#	src/galileo/__future__/metric.py
#	src/galileo/__init__.py
#	src/galileo/exceptions.py
#	src/galileo/handlers/agent_control/__init__.py
#	src/galileo/handlers/langchain/__init__.py
#	src/galileo/handlers/openai_agents/__init__.py
#	src/splunk_ao/__future__/__init__.py
#	src/splunk_ao/agent_control.py
#	src/splunk_ao/configuration.py
#	src/splunk_ao/datasets.py
#	src/splunk_ao/decorator.py
#	src/splunk_ao/experiment.py
#	src/splunk_ao/experiment_tags.py
#	src/splunk_ao/experiments.py
#	src/splunk_ao/export.py
#	src/splunk_ao/handlers/agent_control/bridge.py
#	src/splunk_ao/handlers/base_async_handler.py
#	src/splunk_ao/handlers/base_handler.py
#	src/splunk_ao/handlers/crewai/handler.py
#	src/splunk_ao/handlers/langchain/async_handler.py
#	src/splunk_ao/handlers/langchain/handler.py
#	src/splunk_ao/handlers/langchain/middleware.py
#	src/splunk_ao/handlers/openai_agents/handler.py
#	src/splunk_ao/integration.py
#	src/splunk_ao/job_progress.py
#	src/splunk_ao/jobs.py
#	src/splunk_ao/log_stream.py
#	src/splunk_ao/log_streams.py
#	src/splunk_ao/logger/__init__.py
#	src/splunk_ao/logger/logger.py
#	src/splunk_ao/metric.py
#	src/splunk_ao/metrics.py
#	src/splunk_ao/middleware/tracing.py
#	src/splunk_ao/openai/__init__.py
#	src/splunk_ao/openai/extractors.py
#	src/splunk_ao/openai/response_generator.py
#	src/splunk_ao/otel.py
#	src/splunk_ao/project.py
#	src/splunk_ao/projects.py
#	src/splunk_ao/prompt.py
#	src/splunk_ao/prompts.py
#	src/splunk_ao/protect.py
#	src/splunk_ao/provider.py
#	src/splunk_ao/runs.py
#	src/splunk_ao/scorers.py
#	src/splunk_ao/search.py
#	src/splunk_ao/stages.py
#	src/splunk_ao/traces.py
#	src/splunk_ao/types.py
#	src/splunk_ao/utils/datasets.py
#	src/splunk_ao/utils/env_helpers.py
#	src/splunk_ao/utils/metrics.py
#	src/splunk_ao/utils/singleton.py
#	tests/conftest.py
#	tests/schemas/test_metrics.py
#	tests/test_agent_control.py
#	tests/test_agent_control_bridge.py
#	tests/test_async_base_handler.py
#	tests/test_backward_compat_future.py
#	tests/test_base_handler.py
#	tests/test_config.py
#	tests/test_configuration.py
#	tests/test_crewai_handler.py
#	tests/test_deprecations.py
#	tests/test_experiment.py
#	tests/test_experiments.py
#	tests/test_integration.py
#	tests/test_langchain.py
#	tests/test_langchain_async.py
#	tests/test_langchain_middleware.py
#	tests/test_log_stream.py
#	tests/test_log_streams_metrics.py
#	tests/test_log_streams_pagination.py
#	tests/test_logger_batch.py
#	tests/test_logger_distributed.py
#	tests/test_logger_timestamps.py
#	tests/test_metric.py
#	tests/test_metric_types.py
#	tests/test_middleware_tracing.py
#	tests/test_openai.py
#	tests/test_openai_agents.py
#	tests/test_openai_agents_utils.py
#	tests/test_otel.py
#	tests/test_project.py
#	tests/test_prompt.py
#	tests/test_traces_client_headers.py
#	tests/testutils/setup.py
@keith-decker keith-decker merged commit cb85925 into main Jun 16, 2026
16 checks passed
@keith-decker keith-decker deleted the hybim-717 branch June 16, 2026 16:11
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 16, 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.

3 participants