mainsequence 8.0.2__tar.gz → 8.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mainsequence-8.0.2/mainsequence.egg-info → mainsequence-8.0.4}/PKG-INFO +1 -1
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/models_foundry.py +7 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence.egg-info/SOURCES.txt +1 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/pyproject.toml +1 -1
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_code_repository_branch_contract.py +8 -1
- mainsequence-8.0.4/tests/test_code_repository_documentation_contract.py +75 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_code_repository_runtime_context.py +2 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/LICENSE +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/MANIFEST.in +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/README.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/data_publishing/time_index_table_updates/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/__main__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/bootstrap.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/api.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/cli.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/code_repository_status.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/config.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/cli/ui.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/base.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/client.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/metatables/core.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/models_user.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/observability.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/code_repository_context.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/code_repository_skills.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/defaults.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/logconf.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_refs.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/__init__.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/configuration.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/dependencies.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/managers.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/namespacing.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/runner.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/updaters.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/repository_identity_security.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/setup.cfg +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/fixtures/time_index_table_update_hash_v2_golden.json +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_auth_precedence.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_canonical_api_route_contract.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_cli.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_cli_migrations.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_client.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_code_repository_batch_jobs_from_file.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_code_repository_skills.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_dependency_extras.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_environment_resource_context.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_environment_response_contracts.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_filter_normalization.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_instrumentation.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_local_ops.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_logconf.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_notification_uid_contract.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_observability_client.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_scheduler_client_model.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_schema_names.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_secret_client_model.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_ssh_utils.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_access_dimension_audit.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_dimension_queries.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_update_configuration.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_update_configuration_client.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_update_flow.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_update_hard_cut.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_update_statistics.py +0 -0
- {mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_update_uid_guards.py +0 -0
|
@@ -503,6 +503,13 @@ class CodeRepositoryBranch(BasePydanticModel, BaseObjectOrm):
|
|
|
503
503
|
uid: str
|
|
504
504
|
code_repository_uid: str
|
|
505
505
|
code_repository_name: str
|
|
506
|
+
code_repository_type: str = Field(
|
|
507
|
+
...,
|
|
508
|
+
description=(
|
|
509
|
+
"Read-only projection of the immutable type owned by the parent "
|
|
510
|
+
"CodeRepository."
|
|
511
|
+
),
|
|
512
|
+
)
|
|
506
513
|
repository_branch: str
|
|
507
514
|
metatables_data_source: _DataSource | None = None
|
|
508
515
|
metatables_data_source_uid: str | None = None
|
|
@@ -100,6 +100,7 @@ tests/test_cli_migrations.py
|
|
|
100
100
|
tests/test_client.py
|
|
101
101
|
tests/test_code_repository_batch_jobs_from_file.py
|
|
102
102
|
tests/test_code_repository_branch_contract.py
|
|
103
|
+
tests/test_code_repository_documentation_contract.py
|
|
103
104
|
tests/test_code_repository_runtime_context.py
|
|
104
105
|
tests/test_code_repository_skills.py
|
|
105
106
|
tests/test_dependency_extras.py
|
|
@@ -35,6 +35,7 @@ def code_repository_branch_payload() -> dict:
|
|
|
35
35
|
"uid": CODE_REPOSITORY_BRANCH_UID,
|
|
36
36
|
"code_repository_uid": CODE_REPOSITORY_UID,
|
|
37
37
|
"code_repository_name": "Analytics",
|
|
38
|
+
"code_repository_type": "python",
|
|
38
39
|
"repository_branch": "main",
|
|
39
40
|
"metatables_data_source": None,
|
|
40
41
|
"metatables_data_source_uid": None,
|
|
@@ -70,6 +71,7 @@ def test_code_repository_is_only_the_logical_aggregate_contract():
|
|
|
70
71
|
assert code_repository.primary_language == "python"
|
|
71
72
|
assert code_repository.framework == "mainsequence"
|
|
72
73
|
assert code_repository.branches[0].uid == CODE_REPOSITORY_BRANCH_UID
|
|
74
|
+
assert not hasattr(code_repository.branches[0], "code_repository_type")
|
|
73
75
|
assert not hasattr(code_repository, "repository_branch")
|
|
74
76
|
|
|
75
77
|
with pytest.raises(ValidationError):
|
|
@@ -107,16 +109,21 @@ def test_code_repository_branch_owns_branch_configuration():
|
|
|
107
109
|
branch = models_foundry.CodeRepositoryBranch(**code_repository_branch_payload())
|
|
108
110
|
|
|
109
111
|
assert branch.code_repository_uid == CODE_REPOSITORY_UID
|
|
112
|
+
assert branch.code_repository_type == "python"
|
|
110
113
|
assert branch.repository_branch == "main"
|
|
111
114
|
assert branch.default_base_image.uid == "61111111-1111-4111-8111-111111111111"
|
|
112
115
|
assert branch.organization_environment_uid is None
|
|
113
116
|
assert branch.organization_environment_name is None
|
|
114
|
-
assert not hasattr(branch, "code_repository_type")
|
|
115
117
|
assert not hasattr(branch, "primary_language")
|
|
116
118
|
assert not hasattr(branch, "framework")
|
|
117
119
|
assert not hasattr(branch, "git_ssh_url")
|
|
118
120
|
assert not hasattr(branch, "labels")
|
|
119
121
|
|
|
122
|
+
payload = code_repository_branch_payload()
|
|
123
|
+
payload.pop("code_repository_type")
|
|
124
|
+
with pytest.raises(ValidationError):
|
|
125
|
+
models_foundry.CodeRepositoryBranch(**payload)
|
|
126
|
+
|
|
120
127
|
|
|
121
128
|
def test_github_repository_binding_is_a_separate_registry_contract():
|
|
122
129
|
repository = models_foundry.GitHubRepositoryBinding(
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
REPOSITORY_ROOT = Path(__file__).resolve().parents[1]
|
|
9
|
+
DOCUMENTATION_ROOTS = (
|
|
10
|
+
REPOSITORY_ROOT / "docs",
|
|
11
|
+
REPOSITORY_ROOT / "agent_scaffold",
|
|
12
|
+
)
|
|
13
|
+
HISTORICAL_IDENTIFIER_ALLOWLIST = {
|
|
14
|
+
Path("CHANGELOG.md"): frozenset({"project-context", "runtime_project_context"}),
|
|
15
|
+
}
|
|
16
|
+
RETIRED_PUBLIC_IDENTIFIERS = {
|
|
17
|
+
"project_context": re.compile(r"(?<![A-Za-z0-9_])project_context(?![A-Za-z0-9_])"),
|
|
18
|
+
"project-context": re.compile(r"(?<![A-Za-z0-9_])project-context(?![A-Za-z0-9_])"),
|
|
19
|
+
"runtime_project_context": re.compile(
|
|
20
|
+
r"(?<![A-Za-z0-9_])runtime_project_context(?![A-Za-z0-9_])"
|
|
21
|
+
),
|
|
22
|
+
"get_project_runtime_context": re.compile(
|
|
23
|
+
r"(?<![A-Za-z0-9_])get_project_runtime_context(?![A-Za-z0-9_])"
|
|
24
|
+
),
|
|
25
|
+
"ProjectAlembicVersion": re.compile(r"\bProjectAlembicVersion\b"),
|
|
26
|
+
"ProjectBranch": re.compile(r"\bProjectBranch\b"),
|
|
27
|
+
"MAIN_SEQUENCE_PROJECT": re.compile(r"\bMAIN_SEQUENCE_PROJECT[A-Z0-9_]*\b"),
|
|
28
|
+
"MAINSEQUENCE_PROJECT": re.compile(r"\bMAINSEQUENCE_PROJECT[A-Z0-9_]*\b"),
|
|
29
|
+
"organization_project_environment": re.compile(
|
|
30
|
+
r"\borganization_project_environment(?:_uid|_name)?\b"
|
|
31
|
+
),
|
|
32
|
+
"project_to_agent": re.compile(r"\bproject_to_agent\b"),
|
|
33
|
+
"project-design": re.compile(r"\bproject-design\b"),
|
|
34
|
+
"project-code": re.compile(r"\bproject-code\b"),
|
|
35
|
+
"project-facing": re.compile(r"\bproject-facing\b"),
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _documentation_files() -> tuple[Path, ...]:
|
|
40
|
+
files = {REPOSITORY_ROOT / "README.md", REPOSITORY_ROOT / "CHANGELOG.md"}
|
|
41
|
+
for root in DOCUMENTATION_ROOTS:
|
|
42
|
+
files.update(root.rglob("*.md"))
|
|
43
|
+
return tuple(sorted(files))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@pytest.mark.parametrize(
|
|
47
|
+
"path",
|
|
48
|
+
_documentation_files(),
|
|
49
|
+
ids=lambda path: str(path.relative_to(REPOSITORY_ROOT)),
|
|
50
|
+
)
|
|
51
|
+
def test_current_documentation_excludes_retired_project_identifiers(path: Path) -> None:
|
|
52
|
+
relative_path = path.relative_to(REPOSITORY_ROOT)
|
|
53
|
+
allowed_identifiers = HISTORICAL_IDENTIFIER_ALLOWLIST.get(relative_path, frozenset())
|
|
54
|
+
text = path.read_text(encoding="utf-8")
|
|
55
|
+
|
|
56
|
+
unexpected = sorted(
|
|
57
|
+
identifier
|
|
58
|
+
for identifier, pattern in RETIRED_PUBLIC_IDENTIFIERS.items()
|
|
59
|
+
if identifier not in allowed_identifiers and pattern.search(text)
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
assert not unexpected, f"{relative_path} contains retired public identifiers: {unexpected}"
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_code_repository_context_adr_describes_the_current_cutover() -> None:
|
|
66
|
+
adr = (
|
|
67
|
+
REPOSITORY_ROOT
|
|
68
|
+
/ "docs"
|
|
69
|
+
/ "adr"
|
|
70
|
+
/ "0031-process-lifetime-code-repository-branch-context.md"
|
|
71
|
+
).read_text(encoding="utf-8")
|
|
72
|
+
|
|
73
|
+
assert "get_code_repository_context()" in adr
|
|
74
|
+
assert "are the canonical public names" in adr
|
|
75
|
+
assert "names below describe the pre-cutover contract" not in adr
|
|
@@ -186,6 +186,7 @@ def test_code_repository_branch_git_context_uses_canonical_backend_action(monkey
|
|
|
186
186
|
"uid": CODE_REPOSITORY_BRANCH_UID,
|
|
187
187
|
"code_repository_uid": CODE_REPOSITORY_UID,
|
|
188
188
|
"code_repository_name": "Example CodeRepository",
|
|
189
|
+
"code_repository_type": "python",
|
|
189
190
|
"repository_branch": "main",
|
|
190
191
|
"metatables_data_source": None,
|
|
191
192
|
"metatables_data_source_uid": None,
|
|
@@ -224,6 +225,7 @@ def test_code_repository_branch_git_context_uses_canonical_backend_action(monkey
|
|
|
224
225
|
"commit_sha": COMMIT_SHA,
|
|
225
226
|
}
|
|
226
227
|
assert resolution.code_repository_branch.uid == CODE_REPOSITORY_BRANCH_UID
|
|
228
|
+
assert resolution.code_repository_branch.code_repository_type == "python"
|
|
227
229
|
|
|
228
230
|
|
|
229
231
|
def test_context_resolves_once_and_returns_identical_snapshot(monkeypatch):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/__init__.py
RENAMED
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/duckdb.py
RENAMED
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/local_paths.py
RENAMED
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/client/data_sources_interfaces/sqlite.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/templates/__init__.py
RENAMED
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/migrations/templates/env.py.mako
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/mainsequence/meta_tables/time_index_table_updates/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/tests/fixtures/time_index_table_update_hash_v2_golden.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_code_repository_batch_jobs_from_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_access_dimension_audit.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_update_configuration.py
RENAMED
|
File without changes
|
{mainsequence-8.0.2 → mainsequence-8.0.4}/tests/test_time_index_table_update_configuration_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|