Skip to content

Add Python support to Micronaut guides - #1855

Draft
n0tl3ss wants to merge 49 commits into
pythonfrom
python-guide-support
Draft

n0tl3ss wants to merge 49 commits into
pythonfrom
python-guide-support

Conversation

@n0tl3ss

@n0tl3ss n0tl3ss commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Summary

  • add Python variants for the supported Micronaut guides
  • add Python-aware guide generation, metadata, documentation, and test-script support
  • add hosted validation for the Python guide build infrastructure and all generated Python projects/test scripts
  • keep the original consolidated contribution commit with its author credits and apply review fixes in separate commits

Micronaut Starter Python support was merged in micronaut-projects/micronaut-starter#3130. A later Starter refactor incorrectly marked service-discovery features as JVM-only; micronaut-projects/micronaut-starter#3136 contains the regression test and fix.

Validation

  • ./gradlew buildSrc:test --stacktrace
  • ./gradlew generateAllPythonGuideTestScripts --stacktrace
  • clean regeneration of the affected Consul and Eureka Python projects/test scripts
  • ./gradlew creatingYourFirstMicronautAppGenerateProjects creatingYourFirstMicronautAppPythonTestScript --stacktrace
  • ./gradlew micronautOpenapiSwaggerUiGenerateProjects micronautOpenapiSwaggerUiPythonTestScript hotwireTurboMicronautChatGenerateProjects hotwireTurboMicronautChatPythonTestScript micronautTurboNativeGenerateProjects micronautTurboNativePythonTestScript --stacktrace
  • ./gradlew hotwireTurboMicronautChatGenerateDocs micronautDataOneToManyGenerateDocs creatingYourFirstMicronautAppGenerateDocs --stacktrace
  • git diff --check python..python-guide-support

Native images were intentionally not rebuilt.

Merge gates

  • merge Support service discovery features in Python projects micronaut-starter#3136 and repin hosted validation from its public PR commit to the upstream merge commit
  • replace the temporary Micronaut Starter 5.2.0-SNAPSHOT dependency with the released 5.2.0 version when it is published
  • enable the full hosted runtime guide matrix when the Pyronaut runtime distribution is publicly consumable; the current hosted workflow validates build logic and generation without requiring non-public dependencies

This PR remains a draft until those gates are satisfied.

@n0tl3ss
n0tl3ss requested review from graemerocher and sdelamo and a lite review from Copilot and removed request for sdelamo September 22, 2026 13:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

One or more issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity · 3 Medium severity · 8 Low severity

Open (12)
What changed in this PR

Adds Python/Pyronaut variants across Micronaut guides, with metadata, generator, documentation, samples, and CI support.

Changes:

  • Adds Python guide sources, configuration, tests, and metadata.
  • Extends build infrastructure for Pyronaut generation and testing.
  • Updates documentation snippets and CI workflows.
File Description
src/​docs/​common/​snippets/​common-opentelemetry-disable.adoc Updated as part of this pull request.
src/​docs/​common/​snippets/​common-micronaut-views-jinjava.adoc Updated as part of this pull request.
src/​docs/​common/​snippets/​common-graal-with-plugins.adoc Updated as part of this pull request.
src/​docs/​common/​snippets/​common-flyway.adoc Updated as part of this pull request.
src/​docs/​common/​snippets/​common-datasource-header.adoc Updated as part of this pull request.
src/​docs/​common/​snippets/​common-build-lang-arguments.adoc Updated as part of this pull request.
src/​docs/​common/​callouts/​callout-seed-db-pyronaut.adoc Updated as part of this pull request.
guides/​testing-rest-api-integrations-using-mockserver/​python/​src/​example/​micronaut/​photo.py Updated as part of this pull request.
guides/​testing-rest-api-integrations-using-mockserver/​python/​src/​example/​micronaut/​album.py Updated as part of this pull request.
guides/​testing-rest-api-integrations-using-mockserver/​python/​config/​application.toml Updated as part of this pull request.
guides/​testing-micronaut-kafka-listener-using-testcontainers/​testresources/​python/​config/​db/​migration/​V1__schema.sql Updated as part of this pull request.
guides/​testing-micronaut-kafka-listener-using-testcontainers/​testresources/​python/​config/​application.toml Updated as part of this pull request.
guides/​testing-micronaut-kafka-listener-using-testcontainers/​testcontainers/​python/​config/​db/​migration/​V1__schema.sql Updated as part of this pull request.
guides/​testing-micronaut-kafka-listener-using-testcontainers/​testcontainers/​python/​config/​application.toml Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresqltestresources/​python/​tests-config/​sql/​seed-data.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresqltestresources/​python/​tests-config/​sql/​init-db.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresqltestresources/​python/​config/​application.toml Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresql/​python/​tests-config/​sql/​seed-data.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresql/​python/​tests-config/​sql/​init-db.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresql/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresql/​python/​src/​example/​micronaut/​product.py Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresql/​python/​config/​application.toml Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​postgresql/​java/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​jdbc/​python/​tests-config/​sql/​seed-data.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​jdbc/​python/​tests-config/​sql/​init-db.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​jdbc/​python/​src/​example/​micronaut/​product.py Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​jdbc/​python/​config/​application.toml Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​jdbc/​java/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​h2/​python/​tests-config/​sql/​seed-data.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​h2/​python/​tests-config/​sql/​init-db.sql Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​h2/​python/​src/​example/​micronaut/​product.py Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​h2/​python/​config/​application.toml Updated as part of this pull request.
guides/​replace-h2-with-real-database-for-testing/​h2/​java/​src/​test/​resources/​sql/​init-db.sql Updated as part of this pull request.
guides/​micronaut-websocket/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-websocket/​metadata.json Updated as part of this pull request.
guides/​micronaut-webjars-stimulus/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-webjars-stimulus/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-webjars-stimulus/​metadata.json Updated as part of this pull request.
guides/​micronaut-views-thymeleaf/​python/​src/​example/​micronaut/​photo.py Updated as part of this pull request.
guides/​micronaut-views-thymeleaf/​python/​config/​views/​photos/​show.html Updated as part of this pull request.
guides/​micronaut-views-thymeleaf/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-views-thymeleaf/​metadata.json Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​root_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​basic/​scroll_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​basic/​one_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​basic/​non_existent_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​basic/​long_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​success_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​redirected_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​numbers_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​follow_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​files_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​auth/​sign_in_controller.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​src/​example/​micronaut/​advanced/​auth/​auth_provider.py Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​config/​views/​success.html Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​config/​views/​scroll.html Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​config/​views/​redirected.html Updated as part of this pull request.
guides/​micronaut-turbo-native/​python/​config/​views/​protected.html Updated as part of this pull request.
guides/​micronaut-turbo-native/​metadata.json Updated as part of this pull request.
guides/​micronaut-token-propagation/​userecho/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-token-propagation/​metadata.json Updated as part of this pull request.
guides/​micronaut-token-propagation/​intermediate-userecho/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-token-propagation/​intermediate-gateway/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-token-propagation/​intermediate-gateway/​python/​src/​example/​micronaut/​username_fetcher.py Updated as part of this pull request.
guides/​micronaut-token-propagation/​gateway/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-token-propagation/​gateway/​python/​src/​example/​micronaut/​username_fetcher.py Updated as part of this pull request.
guides/​micronaut-static-resources/​python/​src/​example/​micronaut/​message_service.py Updated as part of this pull request.
guides/​micronaut-static-resources/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-static-resources/​metadata.json Updated as part of this pull request.
guides/​micronaut-spring-boot/​python/​src/​example/​micronaut/​greeting.py Updated as part of this pull request.
guides/​micronaut-spring-boot/​python/​src/​example/​micronaut/​greeting_configuration.py Updated as part of this pull request.
guides/​micronaut-spring-boot/​python/​src/​example/​micronaut/​application.py Updated as part of this pull request.
guides/​micronaut-spring-boot/​python/​config/​views/​home.html Updated as part of this pull request.
guides/​micronaut-spring-boot/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-spring-boot/​metadata.json Updated as part of this pull request.
guides/​micronaut-server-filter-request/​python/​src/​example/​micronaut/​hello_controller.py Updated as part of this pull request.
guides/​micronaut-server-filter-request/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-server-filter-request/​metadata.json Updated as part of this pull request.
guides/​micronaut-security-x509/​metadata.json Updated as part of this pull request.
guides/​micronaut-security-test/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-security-test/​metadata.json Updated as part of this pull request.
guides/​micronaut-security-session/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​src/​example/​micronaut/​user_state.py Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​src/​example/​micronaut/​user_fetcher.py Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​src/​example/​micronaut/​password_encoder.py Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​src/​example/​micronaut/​exceptions/​user_already_exists_exception.py Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​src/​example/​micronaut/​entities/​user_role_id.py Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​src/​example/​micronaut/​authorities_fetcher.py Updated as part of this pull request.
guides/​micronaut-security-session-database-authentication/​python/​config/​views/​alerts/​danger.html Updated as part of this pull request.
guides/​micronaut-security-keys-jwks/​python/​src/​example/​micronaut/​jwk_configuration.py Updated as part of this pull request.
guides/​micronaut-security-keys-jwks/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-security-keys-jwks/​metadata.json Updated as part of this pull request.
guides/​micronaut-security-jwt/​python/​src/​example/​micronaut/​controller.py Updated as part of this pull request.
guides/​micronaut-security-jwt/​metadata.json Updated as part of this pull request.
guides/​micronaut-security-basicauth/​python/​src/​example/​micronaut/​controller.py Updated as part of this pull request.
guides/​micronaut-security-basicauth/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-security-basicauth/​metadata.json Updated as part of this pull request.
guides/​micronaut-security-api-key/​python/​src/​example/​micronaut/​api_key_token_reader.py Updated as part of this pull request.
guides/​micronaut-security-api-key/​python/​src/​example/​micronaut/​api_key_repository.py Updated as part of this pull request.
guides/​micronaut-security-api-key/​python/​src/​example/​micronaut/​api_key_configuration.py Updated as part of this pull request.
guides/​micronaut-security-api-key/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-security-api-key/​metadata.json Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​singleton/​robot_mother.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​singleton/​robot_father.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​request/​robot.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​request/​robot_mother.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​request/​robot_father.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​refreshable/​robot.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​refreshable/​robot_mother.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​refreshable/​robot_father.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​prototype/​robot.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​prototype/​robot_mother.py Updated as part of this pull request.
guides/​micronaut-scope-types/​python/​src/​example/​micronaut/​prototype/​robot_father.py Updated as part of this pull request.
guides/​micronaut-scope-types/​metadata.json Updated as part of this pull request.
guides/​micronaut-scheduled/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-scheduled/​python/​src/​example/​micronaut/​email_task.py Updated as part of this pull request.
guides/​micronaut-scheduled/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-scheduled/​metadata.json Updated as part of this pull request.
guides/​micronaut-rabbitmq/​metadata.json Updated as part of this pull request.
guides/​micronaut-rabbitmq/​books/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-rabbitmq/​books/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-rabbitmq/​books/​python/​config/​application-prod.toml Updated as part of this pull request.
guides/​micronaut-rabbitmq/​analytics/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-rabbitmq/​analytics/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-rabbitmq/​analytics/​python/​src/​example/​micronaut/​book_analytics.py Updated as part of this pull request.
guides/​micronaut-rabbitmq/​analytics/​python/​config/​application-dev.toml Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​metadata.json Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookrecommendation/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookrecommendation/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookrecommendation/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookinventory/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookinventory/​python/​src/​example/​micronaut/​book_inventory.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookinventory/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookcatalogue/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookcatalogue/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-rabbitmq-rpc/​bookcatalogue/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-push-to-registry-docker-hub/​metadata.json Updated as part of this pull request.
guides/​micronaut-push-to-oracle-cloud-container-registry/​metadata.json Updated as part of this pull request.
guides/​micronaut-push-to-github-container-registry/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-push-to-github-container-registry/​metadata.json Updated as part of this pull request.
guides/​micronaut-patterns-composite/​python/​src/​example/​micronaut/​color_fetcher.py Updated as part of this pull request.
guides/​micronaut-patterns-composite/​metadata.json Updated as part of this pull request.
guides/​micronaut-oracle-email-delivery/​metadata.json Updated as part of this pull request.
guides/​micronaut-oracle-cloud/​python/​src/​example/​micronaut/​hello_controller.py Updated as part of this pull request.
guides/​micronaut-oracle-cloud/​metadata.json Updated as part of this pull request.
guides/​micronaut-oracle-cloud-streaming/​chess-listener/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-oracle-cloud-streaming/​chess-game/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-oracle-cloud-streaming/​chess-game/​python/​config/​application-dev.toml Updated as part of this pull request.
guides/​micronaut-oracle-autonomous-db/​python/​src/​example/​micronaut/​domain/​thing.py Updated as part of this pull request.
guides/​micronaut-openpdf/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-openpdf/​micronaut-openpdf.adoc Updated as part of this pull request.
guides/​micronaut-openpdf/​metadata.json Updated as part of this pull request.
guides/​micronaut-openapi-swagger-ui/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-openapi-base/​python/​src/​example/​micronaut/​language.py Updated as part of this pull request.
guides/​micronaut-openapi-base/​python/​src/​example/​micronaut/​build_tool.py Updated as part of this pull request.
guides/​micronaut-openapi-base/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-openapi-adoc/​micronaut-openapi-adoc.adoc Updated as part of this pull request.
guides/​micronaut-openapi-adoc/​metadata.json Updated as part of this pull request.
guides/​micronaut-object-storage-oracle-cloud/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-object-storage-gcp/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-object-storage-aws/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-oauth2-okta/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-okta/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-okta/​python/​config/​application-dev.toml Updated as part of this pull request.
guides/​micronaut-oauth2-okta/​metadata.json Updated as part of this pull request.
guides/​micronaut-oauth2-oidc-oci/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-oidc-oci/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-oidc-google/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-oidc-google/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-oidc-google/​python/​src/​example/​micronaut/​application_configuration.py Updated as part of this pull request.
guides/​micronaut-oauth2-oidc-google/​metadata.json Updated as part of this pull request.
guides/​micronaut-oauth2-linkedin/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-linkedin/​python/​src/​example/​micronaut/​linkedin_me.py Updated as part of this pull request.
guides/​micronaut-oauth2-linkedin/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-keycloak/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-keycloak/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-github/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-github/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-github/​python/​src/​example/​micronaut/​github_user.py Updated as part of this pull request.
guides/​micronaut-oauth2-github/​python/​src/​example/​micronaut/​github_repo.py Updated as part of this pull request.
guides/​micronaut-oauth2-cognito/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-cognito/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-oauth2-cognito/​metadata.json Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-oracle-identity-domain/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-oracle-identity-domain/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-oracle-identity-domain/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-oracle-identity-domain/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookrecommendation/​python/​src/​example/​micronaut/​book_catalogue_operations.py Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookrecommendation/​python/​config/​application-dev.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookinventory/​python/​src/​example/​micronaut/​book_inventory.py Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-cognito/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-auth0/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-auth0/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-auth0/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-client-credentials-auth0/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-auth0/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-oauth2-auth0/​python/​src/​example/​micronaut/​home_controller.py Updated as part of this pull request.
guides/​micronaut-mqtt/​cli/​python/​src/​example/​micronaut/​temperature_scale_candidates.py Updated as part of this pull request.
guides/​micronaut-mongodb-synchronous/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-mongodb-synchronous/​python/​src/​example/​micronaut/​mongo_db_configuration.py Updated as part of this pull request.
guides/​micronaut-mongodb-synchronous/​python/​src/​example/​micronaut/​fruit.py Updated as part of this pull request.
guides/​micronaut-mongodb-synchronous/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-microservices-services-discover-eureka/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-microservices-services-discover-eureka/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-services-discover-consul/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-services-discover-consul/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-microservices-services-discover-consul/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-services-discover-consul/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin-opentelemetry/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin-opentelemetry/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin-opentelemetry/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-zipkin-opentelemetry/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger-opentelemetry/​bookrecommendation/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger-opentelemetry/​bookrecommendation/​python/​src/​example/​micronaut/​book_recommendation.py Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger-opentelemetry/​bookinventory/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-microservices-distributed-tracing-jaeger-opentelemetry/​bookcatalogue/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-metrics/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-metrics/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-metrics/​python/​config/​db/​migration/​V1__schema.sql Updated as part of this pull request.
guides/​micronaut-metrics-oci/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-metrics-oci/​metadata.json Updated as part of this pull request.
guides/​micronaut-metrics-aws/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-metrics-aws/​metadata.json Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​point_response.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​point_properties.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​location.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​grid.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​forecast.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​forecast_properties.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​weather/​model/​feature.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​point.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​python/​src/​example/​micronaut/​get_alert_input.py Updated as part of this pull request.
guides/​micronaut-mcp-weather/​json-schema-generation.adoc Updated as part of this pull request.
guides/​micronaut-mcp-weather-stdio/​metadata.json Updated as part of this pull request.
guides/​micronaut-mcp-weather-http/​metadata.json Updated as part of this pull request.
guides/​micronaut-mcp-diskspace/​python/​src/​example/​micronaut/​disk_utils.py Updated as part of this pull request.
guides/​micronaut-mcp-diskspace/​disk-utils.adoc Updated as part of this pull request.
guides/​micronaut-mcp-diskspace/​configuration.adoc Updated as part of this pull request.
guides/​micronaut-mcp-diskspace-stdio/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-mcp-diskspace-stdio/​metadata.json Updated as part of this pull request.
guides/​micronaut-mcp-diskspace-http/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-mcp-diskspace-http/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-mcp-diskspace-http/​metadata.json Updated as part of this pull request.
guides/​micronaut-liquibase/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-liquibase/​metadata.json Updated as part of this pull request.
guides/​micronaut-kafka/​books/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-kafka/​books/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-kafka/​books/​python/​src/​example/​micronaut/​analytics_client.py Updated as part of this pull request.
guides/​micronaut-kafka/​analytics/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-kafka/​analytics/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-kafka/​analytics/​python/​src/​example/​micronaut/​book_analytics.py Updated as part of this pull request.
guides/​micronaut-kafka/​analytics/​python/​config/​application-dev.toml Updated as part of this pull request.
guides/​micronaut-json-schema/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-json-schema/​metadata.json Updated as part of this pull request.
guides/​micronaut-jms-aws-sqs/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-jaxrs-jdbc/​python/​src/​example/​micronaut/​pet_type.py Updated as part of this pull request.
guides/​micronaut-jaxrs-jdbc/​python/​src/​example/​micronaut/​name_dto.py Updated as part of this pull request.
guides/​micronaut-jaxrs-jdbc/​python/​config/​db/​migration/​V1__schema.sql Updated as part of this pull request.
guides/​micronaut-jaxrs-jdbc/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-jaxrs-jdbc/​python/​config/​application-prod.toml Updated as part of this pull request.
guides/​micronaut-intellij-idea-ide-setup/​python/​tests/​test_pyronaut_context.py Updated as part of this pull request.
guides/​micronaut-http-client/​python/​src/​example/​micronaut/​github_release.py Updated as part of this pull request.
guides/​micronaut-http-client/​python/​src/​example/​micronaut/​github_configuration.py Updated as part of this pull request.
guides/​micronaut-http-client/​metadata.json Updated as part of this pull request.
guides/​micronaut-http-client/​kotlin/​src/​main/​resources/​logback.xml Updated as part of this pull request.
guides/​micronaut-http-client/​kotlin/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-http-client/​java/​src/​main/​resources/​logback.xml Updated as part of this pull request.
guides/​micronaut-http-client/​java/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-http-client/​groovy/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-health-endpoint/​metadata.json Updated as part of this pull request.
guides/​micronaut-graphql/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-graphql/​python/​src/​example/​micronaut/​author.py Updated as part of this pull request.
guides/​micronaut-graphql/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-graphql/​metadata.json Updated as part of this pull request.
guides/​micronaut-graphql-todo/​python/​src/​example/​micronaut/​to_do_repository.py Updated as part of this pull request.
guides/​micronaut-graphql-todo/​metadata.json Updated as part of this pull request.
guides/​micronaut-google-cloud-http-function/​metadata.json Updated as part of this pull request.
guides/​micronaut-google-cloud-compute/​metadata.json Updated as part of this pull request.
guides/​micronaut-flyway/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-flyway/​python/​config/​db/​migration/​V2__nullable-age.sql Updated as part of this pull request.
guides/​micronaut-flyway/​python/​config/​db/​migration/​V1__create-person.sql Updated as part of this pull request.
guides/​micronaut-flyway/​metadata.json Updated as part of this pull request.
guides/​micronaut-file-download-excel/​python/​src/​example/​micronaut/​book.py Updated as part of this pull request.
guides/​micronaut-file-download-excel/​python/​src/​example/​micronaut/​book_repository.py Updated as part of this pull request.
guides/​micronaut-file-download-excel/​python/​src/​example/​micronaut/​book_excel_stylesheet.py Updated as part of this pull request.
guides/​micronaut-file-download-excel/​python/​config/​views/​index.html Updated as part of this pull request.
guides/​micronaut-error-handling/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-error-handling/​python/​src/​example/​micronaut/​out_of_stock_exception.py Updated as part of this pull request.
guides/​micronaut-error-handling/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-email/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-email/​configuration.adoc Updated as part of this pull request.
guides/​micronaut-email-sendgrid/​micronaut-email-sendgrid.adoc Updated as part of this pull request.
guides/​micronaut-email-sendgrid/​metadata.json Updated as part of this pull request.
guides/​micronaut-docker-image/​python/​src/​example/​micronaut/​controller.py Updated as part of this pull request.
guides/​micronaut-dependency-injection-types/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-dependency-injection-types/​python/​src/​example/​micronaut/​message_service.py Updated as part of this pull request.
guides/​micronaut-database-authentication-provider/​python/​src/​example/​micronaut/​user_state.py Updated as part of this pull request.
guides/​micronaut-database-authentication-provider/​python/​src/​example/​micronaut/​user_jdbc_repository.py Updated as part of this pull request.
guides/​micronaut-database-authentication-provider/​python/​src/​example/​micronaut/​user_fetcher.py Updated as part of this pull request.
guides/​micronaut-database-authentication-provider/​python/​src/​example/​micronaut/​password_encoder.py Updated as part of this pull request.
guides/​micronaut-database-authentication-provider/​python/​src/​example/​micronaut/​domain/​user_role_id.py Updated as part of this pull request.
guides/​micronaut-database-authentication-provider/​python/​src/​example/​micronaut/​authorities_fetcher.py Updated as part of this pull request.
guides/​micronaut-data-r2dbc-repository/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-data-r2dbc-repository/​python/​src/​example/​micronaut/​genre_update_command.py Updated as part of this pull request.
guides/​micronaut-data-r2dbc-repository/​python/​config/​db/​migration/​V1__schema.sql Updated as part of this pull request.
guides/​micronaut-data-r2dbc-repository/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-data-one-to-many/​python/​src/​example/​micronaut/​phone_repository.py Updated as part of this pull request.
guides/​micronaut-data-one-to-many/​python/​src/​example/​micronaut/​contact_preview.py Updated as part of this pull request.
guides/​micronaut-data-one-to-many/​python/​src/​example/​micronaut/​contact_complete.py Updated as part of this pull request.
guides/​micronaut-data-one-to-many/​metadata.json Updated as part of this pull request.
guides/​micronaut-data-mongodb-synchronous/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-data-mongodb-synchronous/​python/​src/​example/​micronaut/​fruit_repository.py Updated as part of this pull request.
guides/​micronaut-data-mongodb-synchronous/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-data-mongodb-synchronous/​metadata.json Updated as part of this pull request.
guides/​micronaut-data-mongodb-asynchronous/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-data-many-to-many-oracle/​python/​src/​example/​micronaut/​user_role_jdbc_repository.py Updated as part of this pull request.
guides/​micronaut-data-many-to-many-mysql/​python/​src/​example/​micronaut/​user_role_jdbc_repository.py Updated as part of this pull request.
guides/​micronaut-data-many-to-many-mysql/​metadata.json Updated as part of this pull request.
guides/​micronaut-data-many-to-many-base/​python/​src/​example/​micronaut/​user.py Updated as part of this pull request.
guides/​micronaut-data-many-to-many-base/​python/​src/​example/​micronaut/​user_role.py Updated as part of this pull request.
guides/​micronaut-data-jdbc-repository/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-data-jdbc-repository/​python/​src/​example/​micronaut/​genre_update_command.py Updated as part of this pull request.
guides/​micronaut-data-jdbc-repository/​python/​config/​db/​migration/​V1__schema.sql Updated as part of this pull request.
guides/​micronaut-data-jdbc-repository/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-data-jdbc-repository/​metadata.json Updated as part of this pull request.
guides/​micronaut-custom-validation-annotation/​python/​src/​example/​micronaut/​contact.py Updated as part of this pull request.
guides/​micronaut-custom-validation-annotation/​metadata.json Updated as part of this pull request.
guides/​micronaut-creating-first-graal-app/​python/​src/​example/​micronaut/​conference.py Updated as part of this pull request.
guides/​micronaut-cors/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-cors/​metadata.json Updated as part of this pull request.
guides/​micronaut-cors/​kotlin/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-cors/​java/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-cors/​groovy/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-content-negotiation/​src/​main/​resources/​views/​message.jinja Updated as part of this pull request.
guides/​micronaut-content-negotiation/​python/​src/​example/​micronaut/​controller.py Updated as part of this pull request.
guides/​micronaut-content-negotiation/​python/​config/​views/​message.jinja Updated as part of this pull request.
guides/​micronaut-content-negotiation/​python/​config/​views/​message.html Updated as part of this pull request.
guides/​micronaut-content-negotiation/​metadata.json Updated as part of this pull request.
guides/​micronaut-configuration/​metadata.json Updated as part of this pull request.
guides/​micronaut-configuration/​groovy/​src/​main/​resources/​application.properties Updated as part of this pull request.
guides/​micronaut-cloud-trace-oci/​metadata.json Updated as part of this pull request.
guides/​micronaut-cloud-trace-google/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-cloud-trace-google/​metadata.json Updated as part of this pull request.
guides/​micronaut-cloud-trace-base/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-cloud-trace-base/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-cloud-oidc-oracle/​metadata.json Updated as part of this pull request.
guides/​micronaut-cloud-oidc-base/​python/​tests-config/​application-test.toml Updated as part of this pull request.
guides/​micronaut-cloud-oidc-base/​python/​config/​application-dev.toml Updated as part of this pull request.
guides/​micronaut-cloud-oidc-base/​metadata.json Updated as part of this pull request.
guides/​micronaut-cache/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​micronaut-cache/​python/​src/​example/​micronaut/​news.py Updated as part of this pull request.
guides/​micronaut-cache/​python/​src/​example/​micronaut/​news_controller.py Updated as part of this pull request.
guides/​micronaut-cache/​python/​config/​application.toml Updated as part of this pull request.
guides/​micronaut-cache/​metadata.json Updated as part of this pull request.
guides/​localized-message-source/​python/​tests/​test_application.py Updated as part of this pull request.
guides/​localized-message-source/​python/​src/​example/​micronaut/​message_source_factory.py Updated as part of this pull request.
guides/​localized-message-source/​python/​config/​i18n/​messages.properties Updated as part of this pull request.
guides/​localized-message-source/​python/​config/​i18n/​messages_es.properties Updated as part of this pull request.
guides/​localized-message-source/​python/​config/​application.toml Updated as part of this pull request.
guides/​localized-message-source/​metadata.json Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​src/​example/​micronaut/​controllers/​home_controller.py Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​src/​example/​micronaut/​controllers/​application_controller.py Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​config/​views/​rooms/​_room.html Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​config/​views/​messages/​_message.html Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​config/​views/​messages/​_create.html Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​config/​i18n/​messages.properties Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​config/​i18n/​messages_es.properties Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​initial/​python/​config/​assets/​stylesheets/​application.css Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​src/​example/​micronaut/​controllers/​home_controller.py Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​src/​example/​micronaut/​controllers/​application_controller.py Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​config/​views/​rooms/​_room.html Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​config/​views/​messages/​_message.html Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​config/​i18n/​messages.properties Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​config/​assets/​stylesheets/​application.css Updated as part of this pull request.
guides/​hotwire-turbo-micronaut-chat/​complete/​python/​config/​assets/​javascripts/​controllers/​reset_form_controller.mjs Updated as part of this pull request.
guides/​hello-base/​python/​src/​example/​micronaut/​hello_controller.py Updated as part of this pull request.
guides/​executable-jar/​python/​src/​example/​micronaut/​controller.py Updated as part of this pull request.
guides/​executable-jar/​metadata.json Updated as part of this pull request.
guides/​distribution-base/​python/​src/​example/​micronaut/​controller.py Updated as part of this pull request.
guides/​creating-your-first-micronaut-app/​metadata.json Updated as part of this pull request.
guides/​adding-commit-info/​python/​setup.py Updated as part of this pull request.
guides/​adding-commit-info/​python/​config/​application.toml Updated as part of this pull request.
guides/​adding-commit-info/​metadata.json Updated as part of this pull request.
buildSrc/​src/​test/​resources/​expected_test_script_native.sh Updated as part of this pull request.
buildSrc/​src/​test/​java/​io/​micronaut/​guides/​core/​GuideProjectGeneratorTest.java Updated as part of this pull request.
buildSrc/​src/​test/​java/​io/​micronaut/​guides/​core/​AppTest.java Updated as part of this pull request.
buildSrc/​src/​main/​java/​io/​micronaut/​guides/​feature/​SpringSecurityCrypto.java Updated as part of this pull request.
buildSrc/​src/​main/​java/​io/​micronaut/​guides/​core/​ZipIncludeMacroSubstitution.java Updated as part of this pull request.
buildSrc/​src/​main/​java/​io/​micronaut/​guides/​core/​TestScriptGenerator.java Updated as part of this pull request.
buildSrc/​src/​main/​groovy/​io/​micronaut/​guides/​tasks/​SampleProjectGenerationTask.groovy Updated as part of this pull request.
buildSrc/​build.gradle Updated as part of this pull request.
.github/​workflows/​python-scripts.yml Updated as part of this pull request.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/gradle.yml Outdated
Comment thread guides/micronaut-turbo-native/python/src/example/micronaut/root_controller.py Outdated
Add Python samples, documentation, metadata, and guide build support for the
Micronaut Guides Python branch.

Co-authored-by: Graeme Rocher <graeme.rocher@oracle.com>
Co-authored-by: Nemanja Mikic <n0t_l3ss@outlook.com>
Co-authored-by: Nemanja Mikic <nemanja.mikic@oracle.com>
@n0tl3ss
n0tl3ss force-pushed the python-guide-support branch from 6ce2eb0 to d079f01 Compare September 22, 2026 14:32

@graemerocher graemerocher left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review of the Python/Pyronaut guide support. Plenty to like in the overall shape — python: true on the metadata driving option expansion is the right seam, and keeping the Pyronaut source tree per-guide under python/ alongside java//groovy//kotlin/ fits the existing conventions. Below is what I'd want resolved before this leaves draft, roughly in order of importance.

Blocking

1. Unreleased dependencies. buildSrc/build.gradle moves micronautStarterVersion to 5.2.0-SNAPSHOT, and GuidesPlugin.DEFAULT_LOCAL_PYRONAUT_CORE_VERSION hardcodes 5.2.0-SNAPSHOT too. Everything new here (BuildTool.PYRONAUT, Language.PYTHON, TestFramework.PYTEST) only exists in micronaut-projects/micronaut-starter#3130, which hasn't merged. This can't build reproducibly until the starter release lands; please gate merge on that and pin a released version.

2. Nothing in CI exercises any of this. The only check that ran on this PR is Test Python Scripts, and that workflow tests .github/scripts/*.py — the repo's own CI helpers — which is unrelated to Pyronaut guides. The change to python-scripts.yml just adds the python branch to that unrelated workflow's triggers. So 107 guides and ~33k lines of new guide content land with zero verification.

It also can't easily be fixed by flipping a switch: registerStageLocalPyronautArtifactsTask throws GradleException("Python guide tests require an included 'pyronaut' build…") when local.git.pyronaut isn't configured, so the Pyronaut test path only works on a developer machine with a local Pyronaut checkout. Whatever the plan is for validating these on a hosted runner, I think it needs to exist in this PR (or at minimum be written down) rather than after.

3. Content regression in two existing guides. src/docs/common/snippets/common-datasource-header.adoc loses its body line:

Define the datasource in src/main/resources/application.properties.

and that sentence is re-added inside common-datasource.adoc under the language guards. But two guides include the header snippet directly rather than going through common-datasource.adoc:

  • guides/hotwire-turbo-micronaut-chat/hotwire-turbo-micronaut-chat.adoc:431
  • guides/micronaut-data-one-to-many/micronaut-data-one-to-many.adoc:28

Both now render === Data Source configuration immediately followed by a bare code block, with no explanatory sentence — and that's for every language, not just Python. Either re-add the sentence at those two call sites or route them through common-datasource.adoc.

4. 170 lines of developer-machine build wiring, committed twice. settings.gradle and buildSrc/settings.gradle are byte-for-byte identical apart from rootProject.name:

$ diff <(tail -n +14 settings.gradle) <(tail -n +8 buildSrc/settings.gradle)
0a1
> rootProject.name = "micronaut-guides-buildsrc"

Beyond the duplication, this is local-checkout scaffolding — local.git.micronaut-core / local.git.pyronaut / local.git.micronaut-starter composite builds, GraalPy bundle-repo discovery under checkouts/maven-bundles/graalpy, System.setProperty calls on micronaut.graalpy.bundle.repo. It'll be inert for every contributor who doesn't have those checkouts. If it has to live in the repo, please extract it to a single shared script applied from both settings files, and document the properties it reads.

5. The Pyronaut bootstrap shell script exists twice and has already diverged. ~220 lines are duplicated between buildSrc/src/main/groovy/io/micronaut/guides/TestScriptGenerator.groovy and buildSrc/src/main/java/io/micronaut/guides/core/DefaultTestScriptGenerator.java. They're not in sync:

Groovy Java
refresh default ${PYRONAUT_REFRESH_DEPENDENCIES:-true} ${PYRONAUT_REFRESH_DEPENDENCIES:-}
cache path via pyronaut_dependency_cache () helper inlined ${PYRONAUT_DEPENDENCY_CACHE:-.pyronaut-m2}

So dependency refresh defaults on in one generator and off in the other. Whichever is authoritative, the script body should have one source of truth (a resource file, or the Groovy generator delegating to the Java one).

Correctness

6. GuideUtils.merge can produce a guide that claims Python but has no Python options. python is merged as base.python() || guide.python(), while languages and buildTools are taken wholesale from the child. The parser has already resolved the child's lists using the child's own python flag, so a base with python: true and a child without it yields python() == true but no PYTHON / PYRONAUT in either list. Two guides hit this today:

  • guides/micronaut-cloud-secret-manager-google/metadata.json
  • guides/micronaut-cloud-secrets-azure/metadata.json

both of which base on micronaut-data-jdbc-repository ("python": true). Simplest fix is to derive languages/buildTools from the merged python flag in merge(), the same way DefaultGuideParser does.

7. maven-kotlin silently disappears from the generated test scripts. buildSrc/src/test/resources/expected_test_script.sh drops every base-maven-kotlin / child-maven-kotlin / creating-your-first-micronaut-app-maven-kotlin / hello-base-maven-kotlin block, and expected_test_script_native.sh likewise. The cause looks like this line in DefaultTestScriptGenerator:

-BuildTool buildTool = folder.contains(MAVEN.toString()) ? MAVEN : GRADLE;
+BuildTool buildTool = guidesOption.getBuildTool();

That reads like a genuine fix for a latent bug in the old folder-name sniffing — but its effect is to change what the general (non-Python) matrix runs, which is a surprising thing to find inside a Python PR. Could you confirm it's intended, and ideally split it out with its own note?

8. Dead branches in DependencyLines.asciidoc. The method returns early:

if (buildTool == PYRONAUT) {
    return pyronautAsciidoc(lines);
}

so the two else if (buildTool == PYRONAUT) blocks added further down in the same method (the [source, toml] / .pyproject.toml header, and the toPyronautScope(...) + " = [\"" + coordinate + "\"]" emitter) are unreachable. Worth deleting so there's one code path.

9. Dead overloads in SourceBlockMacroSubstitution. After the GuidesOption-aware variants were added, the 5-arg sourceTitle(...) and 2-arg sourceConventionFolder(classpath, language) have no callers. ZipIncludeMacroSubstitution still overrides the dead 5-arg version alongside the live 6-arg one, which is a trap for anyone adding a subclass later — the override would silently never fire.

10. IndexGenerator emits cells for unsupported combinations. cell(…, GRADLE, PYTHON, …), cell(…, MAVEN, PYTHON, …) and cell(…, PYRONAUT, JAVA|KOTLIN|GROOVY, …) are all combinations GuideUtils.isSupported rejects, so they render permanently empty — every guide's grid gains an empty Python column plus a mostly-empty Pyronaut row. Also pyronautImg = '<span>Pyronaut</span>' is bare text sitting next to the Maven and Gradle SVGs; since src/docs/images/python.svg is already there, a Pyronaut logo would be more consistent.

Docs & maintainability

11. The :exclude-for-languages: duplication pattern is going to be expensive. 98 files now carry a :exclude-for-languages:java,groovy,kotlin block. Because it's an exclusion list, any language added later automatically falls into the Python-only block. It also duplicates prose that differs by a word or two — e.g. guides/hello-base/hellocontroller.adoc now carries two near-identical paragraphs whose only difference is "controller" vs "route function". An :only-for-languages: / :include-for-languages: directive would halve the churn here and be correct by construction.

12. Python blocks drop the callout: macros. In guides/hello-base/hellotest.adoc the JVM branch uses callout:micronaut-test[] / callout:http-client[] / callout:http-request[], while the Python branch hardcodes <1> <2> <3> with inline text. That loses the centrally-maintained callout wording for Python readers and lets the numbering drift from the # <1> markers in the .py sources. Please add Python variants of the callouts instead.

13. Unrelated schema change. guide-metadata.schema.json widens testFramework to ["SPOCK","JUNIT","KOTLINTEST","KOTEST","PYTEST"]. PYTEST belongs here; KOTLINTEST and KOTEST don't appear to relate to this PR.

14. One commit, 1409 files, +33,391/−659. Understood that it's a deliberate consolidation with contributor credit preserved, but it isn't reviewable as a unit. Three commits would help a lot without losing the Co-authored-by trailers: (a) buildSrc + Pyronaut build infrastructure, (b) shared snippet and .adoc restructuring, (c) per-guide Python samples and metadata.

Nits

  • MacroUtils.pythonModuleName early-returns when target.contains("_"), so a mixed name like Hello_Controller comes back unchanged rather than lowercased. Probably unreachable with current naming, but the guard is doing two different jobs.
  • DefaultFilesTransferUtility compares language.equals(PYTHON.toString()) against a string while the rest of the new code branches on the enum — and it fully-qualifies io.micronaut.starter.options.BuildTool.PYRONAUT inline where a static import already exists in sibling classes.
  • settings.gradle / buildSrc/settings.gradle: micronaut-context-python and micronaut-inject-python are listed among the core substitution modules; worth double-checking those artifact names exist.

Happy to re-review once the starter release lands and there's a CI story for the Pyronaut variants — that's the piece I'd most want to see before this merges.


Generated by Claude Code

Add hosted generation checks, consolidate local build and Pyronaut test helpers, fix inherited Python metadata, and simplify Python-only documentation blocks.
@n0tl3ss

n0tl3ss commented Sep 22, 2026

Copy link
Copy Markdown
Member Author

Thanks for the detailed review. Addressed in 6a02947b (a separate commit; the original contribution commit was not rewritten):

  1. Starter #3130 is merged. Hosted validation pins its merge commit until Starter 5.2.0 is released, the local Core default is now 5.2.3, and the PR remains draft with the release pin documented as a merge gate.
  2. Added python-guides.yml, which runs all buildSrc tests and generates every Python guide plus its reusable test script on a hosted runner. Full runtime execution remains a documented draft gate until the runtime distribution is publicly consumable.
  3. Restored the language-aware datasource explanation in common-datasource-header.adoc, including the two direct consumers.
  4. Extracted the local composite-build wiring to gradle/local-composite-builds.gradle, applied it from both settings files, and documented every property/environment variable.
  5. Moved the shell functions to one pyronaut-test-functions.sh resource used by both generators; refresh and cache behavior now have one definition.
  6. Fixed nullable Python inheritance in GuideUtils.merge, including per-app pythonFeatures, with inheritance and opt-out regression tests. Google Secret Manager now inherits and generates its Python variant. Azure explicitly opts out because its azure-secrets-manager feature requires bootstrap configuration, which Starter rejects for Python.
  7. Confirmed Maven/Kotlin omission is intentional existing behavior (GuideUtils.isSupported and its tests enforce it); no matrix change was made here.
  8. Removed the unreachable Pyronaut branches in DependencyLines.
  9. Removed the dead source/zip overloads.
  10. The index now renders a Python column only for Python-enabled guides and never calls cell for unsupported combinations. The Pyronaut row spans unsupported JVM cells. I kept a text build-tool label because there is no distinct Pyronaut logo asset; reusing python.svg would duplicate the language logo and mislabel the build tool.
  11. Added :only-for-languages: and migrated 371 Python-only regions. A renderer regression verifies content before, inside, and after the block for both JVM and Python output.
  12. Added centrally maintained Pyronaut variants for the hello-test callouts.
  13. The maintained metadata schema now adds only PYTEST; unrelated Kotlin entries were removed.
  14. Review fixes are isolated in this second commit while preserving the original consolidated commit and author trailers.

The nits were also addressed: mixed snake/camel module names are normalized with Locale.ROOT, file transfer uses typed enums/static imports, and both Core Python substitution modules were verified to exist.

Validation completed locally:

  • full buildSrc:test
  • all 109 Python-enabled guide projects and reusable test scripts generated successfully
  • representative JVM/Python docs rendered successfully
  • git diff --check

No native image was built.

@n0tl3ss

n0tl3ss commented Sep 22, 2026

Copy link
Copy Markdown
Member Author

Follow-up from the hosted clean run:

  • It exposed a separate Micronaut Starter regression affecting the Consul and Eureka Python guides. I added a failing regression test first, opened Discovery features reject Python projects after Starter 5.2 refactor micronaut-starter#3135, and fixed it in Support service discovery features in Python projects micronaut-starter#3136. The focused Starter suite now passes 56 tests, and both affected guide projects/test scripts regenerate successfully.
  • The workflow also ran buildSrc:test and guide generation concurrently in one Gradle invocation, which allowed them to race over generated output on a clean runner. Commit a4da5dce runs those validations as two sequential Gradle invocations and temporarily pins the public Starter PR commit.
  • All Python guide projects/test scripts now generate successfully with that fix. No native image was built.

This was pushed as a new commit with a normal push; the existing commits were not rewritten or force-pushed. Once Starter #3136 merges, I will repin the workflow to its upstream merge commit.

@n0tl3ss

n0tl3ss commented Sep 22, 2026

Copy link
Copy Markdown
Member Author

Hosted validation is now green: Validate Python Guides run 35778375106.

The clean Linux runs also exposed two test assumptions unrelated to guide behavior, now fixed in separate commits:

  • d42b2517: index-link assertions now allow the published-site prefix used when CI=true.
  • ea4f7130: ZIP content assertions no longer depend on filesystem enumeration order.

The final hosted run passes all 123 buildSrc tests and generation of all 109 Python-enabled guide projects/test scripts. All fixes were added as normal commits; no force-push or history rewrite was used.

@n0tl3ss

n0tl3ss commented Sep 23, 2026

Copy link
Copy Markdown
Member Author

Added commit 16227ef for #1856. The Python guide temp-project copy now excludes .micronaut, so stale Test Resources server URIs and tokens are not reused. Verified the tar behavior with a source containing .micronaut/test-resources/test-resources.properties, plus bash -n and git diff --check. The focused Gradle test is currently blocked before test execution because the resolved Micronaut Starter dependency lacks the PYTHON/PYRONAUT/PYTEST enum values already used by this branch.

n0tl3ss and others added 15 commits September 30, 2026 13:01
…a-tests

Fix buildSrc expectations after Python branch sync
…-version-override

Apply local Pyronaut version overrides without a repository
…n-zip-task-dependencies

Track language-specific generated project output directories
…-skip

Exclude unsupported Python variant from Azure secrets guide
…e-python-month-strings

Make the cache guide Python-facing
…bc-pageable

Use Python Pageable import in JDBC guide
…many-optional

Use Python optional returns in one-to-many guide
* Use async Python APIs in Eureka guide

* Test Eureka async recommendations over HTTP

* Test Eureka async response behavior over HTTP
n0tl3ss and others added 14 commits October 1, 2026 11:45
…asyncio

Use asyncio in Python SendGrid guide
…-symlink-safety

Avoid following symlinks during guide cleanup and licensing
…ime-test-properties

Remove AOT-only properties from Python OIDC test configs
…ation-python-api

Use Python-facing ModelAndView in Content Negotiation
…s-008-batch18

Use Python collections and context-bound clients in guide samples
…s-008-batch19

Use Python PDF libraries and native collections in guide samples
…db-configuration

Use Python bean lookup and builtin collections in guide samples

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants