Conversation
There was a problem hiding this comment.
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
Open (12)
Python guide builds lack required Pyronaut checkout configuration · New Add Pyronaut to Python OpenAPI build tool options · New Add Python to OpenAPI language options · New Advertise Python and Pyronaut in guide metadata · New Use UriBuilder instead of java.net.URI in Python redirect helper · New Use UriBuilder instead of java.net.URI in Python controller · New Use HttpResponse.uri instead of constructing Java URI · New Use UriBuilder instead of java.net.URI in initial sample · New Use UriBuilder instead of java.net.URI in Python controller · New Use HttpResponse.uri instead of constructing Java URI · New Use UriBuilder instead of java.net.URI in advanced sample · New Use HttpRequest instead of Java Principal in Python controller · New
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.
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>
6ce2eb0 to
d079f01
Compare
graemerocher
left a comment
There was a problem hiding this comment.
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:431guides/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.jsonguides/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.pythonModuleNameearly-returns whentarget.contains("_"), so a mixed name likeHello_Controllercomes back unchanged rather than lowercased. Probably unreachable with current naming, but the guard is doing two different jobs.DefaultFilesTransferUtilitycompareslanguage.equals(PYTHON.toString())against a string while the rest of the new code branches on the enum — and it fully-qualifiesio.micronaut.starter.options.BuildTool.PYRONAUTinline where a static import already exists in sibling classes.settings.gradle/buildSrc/settings.gradle:micronaut-context-pythonandmicronaut-inject-pythonare 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.
|
Thanks for the detailed review. Addressed in
The nits were also addressed: mixed snake/camel module names are normalized with Validation completed locally:
No native image was built. |
|
Follow-up from the hosted clean run:
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. |
|
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:
The final hosted run passes all 123 |
|
Added commit 16227ef for #1856. The Python guide temp-project copy now excludes |
…ript-newline Fix generated Pyronaut test script separation
…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
…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



Summary
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./gradlew creatingYourFirstMicronautAppGenerateProjects creatingYourFirstMicronautAppPythonTestScript --stacktrace./gradlew micronautOpenapiSwaggerUiGenerateProjects micronautOpenapiSwaggerUiPythonTestScript hotwireTurboMicronautChatGenerateProjects hotwireTurboMicronautChatPythonTestScript micronautTurboNativeGenerateProjects micronautTurboNativePythonTestScript --stacktrace./gradlew hotwireTurboMicronautChatGenerateDocs micronautDataOneToManyGenerateDocs creatingYourFirstMicronautAppGenerateDocs --stacktracegit diff --check python..python-guide-supportNative images were intentionally not rebuilt.
Merge gates
5.2.0-SNAPSHOTdependency with the released5.2.0version when it is publishedThis PR remains a draft until those gates are satisfied.