Skip to content

Commit 016470f

Browse files
Update design for PR GoogleCloudPlatform#2876: REFACTOR: Shopping assistant to spring boot, pending alloy private se…
1 parent 126a8f1 commit 016470f

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/pr-analysis-2876.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# PR #2876: Workflow Design Impact Analysis
2+
3+
## Affected Workflows
4+
No workflows were identified from the expected `.exp/workflows.json` file, as it does not exist in the repository. Instead, the analysis focuses on GitHub Actions workflows that are impacted by the PR changes in `src/shoppingassistantservice/`.
5+
6+
- **Continuous Integration - Pull Request** ([ci-pr.yaml](https://github.com/GoogleCloudPlatform/microservices-demo/blob/main/.github/workflows/ci-pr.yaml)): Affected because this workflow triggers on PRs and uses Skaffold to build Docker images for all services defined in `skaffold.yaml`, including `shoppingassistantservice`. The PR refactors this service from Python to Java Spring Boot, changing the build process (e.g., Dockerfile, addition of `pom.xml` and Maven wrapper). Evidence: `skaffold.yaml` lists the service in artifacts (lines 32-33), and the deployment-tests job runs `skaffold run`.
7+
8+
- **Continuous Integration - Main** ([ci-main.yaml](https://github.com/GoogleCloudPlatform/microservices-demo/blob/main/.github/workflows/ci-main.yaml)): Similar to the PR workflow, affected for pushes to main branch involving src/ changes. It performs code tests and likely deploys via Skaffold, impacting the build of the refactored service.
9+
10+
Other workflows like `helm-chart-ci.yaml`, `kustomize-build-ci.yaml` are not directly affected as they focus on specific directories not changed by this PR, or do not build images.
11+
12+
## Continuous Integration - Pull Request Analysis
13+
### Summary of design changes
14+
The PR does not modify the workflow YAML file or its sequence. However, it impacts the execution of the `deployment-tests` job:
15+
- **Build Process Change**: Previously, the Python-based service used `requirements.txt` and `pip` for dependencies and `python shoppingassistantservice.py` as entrypoint. Now, it uses Maven (`pom.xml`) for Java dependencies, Spring Boot application (`ShoppingAssistantApplication.java`), and likely `mvn spring-boot:run` or jar execution in Dockerfile.
16+
- **Implementation**: Added Java files (`ShoppingAssistantController.java`, `ShoppingAssistantApplication.java`, `application.properties`), test class, and build tools. Removed/updated Python files and requirements. Dockerfile is updated to handle Java build (exact diff not inspected, but implied by changes).
17+
- **Potential Benefits**: Aligns with other Java services (e.g., adservice), potentially improves scalability, type safety, and integration with AlloyDB (title mentions pending private service connect).
18+
- **Implications**: CI build time may change; ensure compatibility with Skaffold's Docker build. No unit tests for this service are run in `code-tests` job (only Go and C#); recommend adding `mvn test` for Java services. Deployment may not include this optional service in core profile, but build occurs regardless.
19+
20+
No Mermaid diagrams found for this workflow's design in documentation, so none need updating.
21+
22+
## Continuous Integration - Main Analysis
23+
### Summary of design changes
24+
Similar to the PR workflow:
25+
- The code tests job does not include tests for shoppingassistantservice (no change needed there).
26+
- Deployment/build via Skaffold affected in the same way as above.
27+
- Benefits and implications mirror the PR workflow analysis.
28+
29+
No Mermaid diagrams found, no updates needed.
30+
31+
## General Summary of PR Changes
32+
This PR refactors the optional `shoppingassistantservice` (an AI assistant using RAG with AlloyDB for product suggestions) from Python to Spring Boot Java. Key changes:
33+
- **New Files**: Maven config (`pom.xml`, `mvnw*`), Java source/controller/app, properties, test class, `.gitattributes`, `.gitignore` updates.
34+
- **Modified Files**: `Dockerfile` (to support Java/Maven build), removal/deprecation of `requirements.*` and `shoppingassistantservice.py`.
35+
- **Pending Work**: Title indicates pending connection to AlloyDB private service, so database integration may not be complete.
36+
- **Testing**: Adds a Spring Boot test class, but not integrated into CI yet. Documentation in `kustomize/components/shopping-assistant/README.md` does not require updates for language change, as it focuses on deployment steps.
37+
- **Impact on Project**: Enables better alignment with enterprise Java ecosystem; affects local development (`skaffold dev`) and any custom deployments using this service/component.
38+
39+
No changes to core workflows or designs requiring diagram updates. No `.exp` folder or design documents with Mermaid diagrams were found matching the expected structure.
40+

0 commit comments

Comments
 (0)