You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add reusable Python guide bases and family snippets - #1915
Depends on #1914; merge the shared infrastructure first. This master-targeted PR adds reusable unpublished guide bases above that prerequisite.
Guide families covered: hello/distribution, cloud database/OIDC/tracing, many-to-many, email, MCP diskspace/weather, object storage and OpenAPI. The cloud-database base is documentation-only rather than generating empty application artifacts.
Review the base-only commit: bf6e3bb
Review corrections: 4f48fb41
The inherited #1914 diff disappears once that prerequisite is merged into master. Shared review and fresh-output CI fixes are included through a normal merge commit, with no history rewrite. CI branch filters target master only.
Validation after the review fixes: 152 buildSrc tests pass; all 16 declared master Python projects/test scripts generate; 13 standard-library Python script tests pass. The nullable object-storage declaration has a source-contract regression that failed before the fix. All four documentation-only cloud database Build tasks pass from a fresh output tree, including the AWS task that previously failed in CI. Both existing Java MCP HTTP tests pass, including the corrected tool-description assertion; no assertions were removed.
Latest-head hosted CI is green: all 32 guide matrix jobs, matrix generation, Python script tests and Python guide generation pass. One Oracle many-to-many JVM cold-start failure passed on the unchanged-source failed-job rerun; the original log did not retain its exception, so a timeout remains an inference, not a newly fixed module bug.
No published Python guide implementation is enabled here, and no native image was built locally. This does not certify every inherited family in Python at runtime, Windows execution or cloud deployment. Family-specific guide PRs will explicitly depend on this PR.
Keep the released platform coordinates, remove the obsolete Starter fork checkout, and validate master, python and python-guide-support without native image compilation.
Remove the obsolete environment-only skip; dedicated Python selection already separates Python and JVM scripts. The existing DocsOnlyGuideTest reproduces the bug with CI=true and the complete 149-test suite passes after the fix.
Fixes#1916
Keep default guide task selection unchanged. The general workflow excludes only existing dedicated Python runtime tasks, while retaining JVM/native tests and Python generation, docs, ZIPs and scripts. A separately configured Python runtime workflow can use the original task selection.
Matrix regression: 12 tests RED before the option, 12 GREEN after it; default selection, implicit/explicit apps, docs-only apps, JVM guides, transitive bases, deduplication and CLI controls preserved.
Fixes#1922
Adds reusable, unpublished Python implementations for several guide families, alongside the prerequisite Python generation, testing, metadata, and CI infrastructure.
Changes:
Adds Python base samples, configuration, tests, and language-specific documentation.
Adds docs-only guide handling and Python-aware generation/macros.
Adds Pyronaut test scripts, CI selection, and local composite-build support.
Create missing output parents in the shared generator and preserve file-conflict errors. Cover fresh nested output and repeated generation. Remove the inert python schema shorthand, retain canonical language parsing, and assert the actual Python language icon.
Refs #1910; addresses review feedback on #1915.
Allow a missing object-storage download in the Python protocol and add a source-contract regression. Correct the MCP tool description in Python and Java, retaining the existing HTTP tool metadata test assertion.
All four review threads are addressed and resolved. New commits: 4f48fb4 for the guide-base fixes, d477857 on prerequisite #1914 for shared review/CI fixes, and normal merge 19ae6ef here. No force push.
Validation on the merged source: 152 buildSrc tests, 13 Python script tests, generation of all 16 declared Python guide projects/test scripts, and fresh-output Build tasks for all four documentation-only cloud database guides pass. The Java MCP HTTP suite also passes both existing tests, including the corrected tool-description assertion. No local native image build.
The latest hosted Python script and Python generation checks pass; the general 32-guide matrix is still running. The previous AWS failure was caused by missing output parent directories, now reproduced and fixed in the shared generator rather than bypassed in CI.
Latest-head hosted CI is now green on 19ae6ef: all 32 guide matrix jobs pass, as do matrix generation, Python script tests and Python guide generation. All four review threads are resolved. Shared fixes remain in prerequisite #1914 and are normally merged here.
One Oracle many-to-many JVM job failed during the first cold container startup, then passed on the unchanged-source failed-job rerun. Its original quiet Gradle log did not retain the test exception; the timing matches the existing 60-second Test Resources client deadline, but that remains an inference rather than a confirmed timeout diagnosis or a newly fixed module bug. No timeout, assertion, retry policy or test-skip workaround was committed.
Local checks also pass: 152 infrastructure tests, 13 Python script tests, both existing Java MCP HTTP tests, all 16 declared Python guide generations and the four fresh-output docs-only cloud database builds. New commits only; no force push or local native image build.
Resolve inherited language before applying JVM-only exclusion
.github/scripts/guide_ci_tasks.py:54
python_app only examines the child metadata, but the guide parser inherits languages from a base. If a published child inherits PYTHON, --jvm-only will not exclude its Pyronaut runner; the JVM matrix then invokes the runner and its local-Pyronaut staging requirement. Resolve inherited language/app state here before deciding whether to append the exclusion.
Include composite-build script in workflow path filters
.github/workflows/python-guides.yml:10
The new composite-build script affects Python guide generation but is absent from this path filter. A PR that changes only gradle/local-composite-builds.gradle will skip this validation workflow, leaving the settings integration and buildSrc tests unchecked.
This issue also appears on line 19 of the same file.
This opens the TOML resource for every non-Java rendering, so Groovy and Kotlin guides will show both application.properties and application.toml. Restrict this block to Python, matching the Python-specific resource being added.
Handle inherited applications in the same sorted pass as GuideUtils and treat omitted applications as empty. Verify parser language defaults and all four language-filter renderings. Trigger Python validation when the local-composite build configuration changes.
Use the existing only-for-languages marker rather than excluding Java alone, which could expose TOML in Groovy and Kotlin. Retain the JVM properties example and check the source contract.
Addressed the three new findings in review 5434341593 through new commits, without rewriting history:
The shared selector correction is in prerequisite Add shared infrastructure for independently reviewed Python guides #1914, commit 1ffbfa7, imported by normal merge cd13c40. The real DefaultGuideParser regression shows that omitted child languages default to Java/Groovy/Kotlin, so they do not inherit Python from a base. The actual gap was inherited applications with explicitly enabled Python, plus omitted apps being incorrectly treated as an implicit application. The selector now matches the sorted application merge. New controls reproduce three failures before the fix and pass afterward.
Both master-only Python workflow path lists include gradle/local-composite-builds.gradle.
Commit ecbc39a changes the OpenAPI TOML block to only-for-languages:python. The JVM properties block is unchanged. Its source-contract regression fails with the old marker and passes with the fix; generator filtering is also checked for Java/Groovy/Kotlin/Python. No unsupported language variants were enabled.
Local checks on the merged head: 153 infrastructure tests and 19 Python script checks pass; both current Java OpenAPI guides render successfully (three Gradle/Maven pages checked: properties configuration present, no TOML or unresolved resource includes). No native image was built. Fresh hosted checks are running on cd13c40; the previous head’s green CI is not being reused as evidence for this head. #1914 must still merge first.
This early return skips normalization whenever a target contains an underscore, so a mixed identifier such as Hello_Controller remains case-sensitive instead of becoming hello_controller. That contradicts the new MacroUtilsTest expectation and can prevent Python exclusions from finding the generated file; only return early when the whole target is already lowercase.
Fingerprint the merged Guide record value, so base-only application changes invalidate generated scripts without requiring serializer service loading during Gradle input evaluation. Normalize mixed-case identifiers with underscores in both existing filename helpers. Add parser-backed input and filesystem-independent exclusion regressions.
Fixes#1923Fixes#1925
Install and clear EXIT cleanup traps in each language script and propagate failed timing status. Exercise success and both Bash timeout modes with fake commands, without starting real containers or native images. Match the Python weather-tool wording to Java.
Fixes#1924
Addressed all four findings in the newest review 5434888907, including both summary-only items. New shared commit 12cbce0 on prerequisite #1914 fixes effective-metadata script inputs and both mixed-case underscore guards; commit 7ea7ae0 fixes distribution cleanup across supported languages and the Weather wording. Normal merge 33051ba imports the shared changes. No force push.
Reproducers were added before production fixes and recorded in issues #1923, #1924 and #1925. All 156 infrastructure tests pass with zero failures/errors/skips; 29 stdlib script tests pass, including 36 timing subcases. All 16 existing master Python project/script tasks regenerate, and a second unchanged run is up-to-date. The existing distribution and MCP Weather Stdio Build tasks also pass locally with native execution explicitly excluded. Timing tests use fake commands, not containers/images.
Both new inline threads have been replied to and resolved. The previous-head hosted MCP Weather Stdio failure was Maven Central HTTP 403 for the MCP dependency and Maven distribution, before application tests ran; it was not a reproduced source failure. Fresh CI is running on 33051ba, so I am not claiming its guide matrix is green yet.
This PR remains a draft. Its master diff includes unmerged #1914 infrastructure plus multiple reusable guide families; that is why it is much larger than a per-guide PR. Individual guides remain separate contributions and should list only the shared prerequisites they actually need. No split, closure or merge was performed.
The reason will be displayed to describe this comment to others. Learn more.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
This branch has not been deployed
No deployments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on #1914; merge the shared infrastructure first. This master-targeted PR adds reusable unpublished guide bases above that prerequisite.
Guide families covered: hello/distribution, cloud database/OIDC/tracing, many-to-many, email, MCP diskspace/weather, object storage and OpenAPI. The cloud-database base is documentation-only rather than generating empty application artifacts.
Review the base-only commit: bf6e3bb
Review corrections: 4f48fb41
The inherited #1914 diff disappears once that prerequisite is merged into master. Shared review and fresh-output CI fixes are included through a normal merge commit, with no history rewrite. CI branch filters target master only.
Validation after the review fixes: 152 buildSrc tests pass; all 16 declared master Python projects/test scripts generate; 13 standard-library Python script tests pass. The nullable object-storage declaration has a source-contract regression that failed before the fix. All four documentation-only cloud database Build tasks pass from a fresh output tree, including the AWS task that previously failed in CI. Both existing Java MCP HTTP tests pass, including the corrected tool-description assertion; no assertions were removed.
Latest-head hosted CI is green: all 32 guide matrix jobs, matrix generation, Python script tests and Python guide generation pass. One Oracle many-to-many JVM cold-start failure passed on the unchanged-source failed-job rerun; the original log did not retain its exception, so a timeout remains an inference, not a newly fixed module bug.
No published Python guide implementation is enabled here, and no native image was built locally. This does not certify every inherited family in Python at runtime, Windows execution or cloud deployment. Family-specific guide PRs will explicitly depend on this PR.