Skip to content

Commit 1058671

Browse files
chore: add PR 6061
1 parent fcd92c3 commit 1058671

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

content/posts/Harsh_Rao_2025_final_report.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Welcome to my final blog for Google Summer of Code 2025 for the project **Deskto
2323
- An improved Testbench UI/UX
2424
- Vue-Simulator integration with the primary codebase
2525
- Legacy feature sync to v0 and v1
26+
- Tackling major bugs - The Docker Failure
2627

2728
---
2829

@@ -365,6 +366,29 @@ After the previous year's GSOC project on implementing version control, we neede
365366
**Step 2:** Then we compared all of the changes that existed in `src` and not in `v0` and `v1`. We came across many small features that were missing for `src` which needed to be re-written, for eg: the version mismatch dialogue for the vue simulator in `openOffline.vue`. ([PR #599](https://github.com/CircuitVerse/cv-frontend-vue/pull/599))
366367
**Step 3:** This was the part where we tested the result of the change, since the change built up a massive PR, this step took time and also proved beneficial. We came across a few shortcomings, the major one being the preview circuits for version `v1` going into infinite reload. This was created due to an error that ocurred during the feature sync to `v1` folder, ([PR #647](https://github.com/CircuitVerse/cv-frontend-vue/pull/647))
367368

369+
# Tackling major bugs - The Docker Failure
370+
For Pushing the vue-simulator we needed to change the old hash pointing to the vue-submoudle in the primary codebase to the new hash pointing to the current vue-submodule. This step in theory was supposed to be just 2 steps :
371+
- **Step 1:** `cd` into the `cv-frontend-vue` sumbmodule from the `master` and use `git branch` to switch to main
372+
- **Step 2:** Raise the PR for it.<br>
373+
374+
But the technicalities of the process over shadowed us and we ran straight into a wall. The Docker publish image workflow was failing!. It had to pass else we couldn't merge the PR ([PR #6012](https://github.com/CircuitVerse/CircuitVerse/pull/6012)). Now we had to review and fix it, as soon as possible. This turned out to be trickier than we thought. It earlier seemed like just an issue due to missing `v0` in the `outdir`. We tried fixing it that way but failed. Finally after a lot more debugging this is how we solved it.<br>
375+
**Problem Statement:** Docker build failed with "not found" error when copying Vue simulator files from `/public/simulatorvue/`.<br>
376+
**Root Cause:** Vite config used relative path ../public/simulatorvue/ with undefined DESKTOP_MODE, causing unpredictable build output location.<br>
377+
**Solution:** ([PR #6061](https://github.com/CircuitVerse/CircuitVerse/pull/6061))
378+
- Created explicit output directory `/output/simulatorvue/`
379+
- Set `DESKTOP_MODE=false` for consistent Vite behavior
380+
- Added fallback copy logic to handle different output paths
381+
```yml
382+
# In simulator_vue_build stage:
383+
RUN mkdir -p /output/simulatorvue
384+
ENV DESKTOP_MODE=false
385+
RUN npm run build
386+
RUN cp -r public/simulatorvue/* /output/simulatorvue/ || cp -r ../public/simulatorvue/* /output/simulatorvue/
387+
388+
# In final stage:
389+
COPY --from=simulator_vue_build /output/simulatorvue/ /usr/src/app/public/simulatorvue
390+
```
391+
368392
---
369393

370394
### Pull Requests
@@ -374,6 +398,7 @@ After the previous year's GSOC project on implementing version control, we neede
374398
- PR : [Versioning PR](https://github.com/CircuitVerse/cv-frontend-vue/pull/599)
375399
- PR : [Conventional commit workflow](https://github.com/CircuitVerse/cv-frontend-vue/pull/656)
376400
- PR : [Infinite loop](https://github.com/CircuitVerse/cv-frontend-vue/pull/647)
401+
- PR : [Docker Failure Fix](https://github.com/CircuitVerse/CircuitVerse/pull/6061)
377402

378403
---
379404
## Learning

0 commit comments

Comments
 (0)