deepmodeling / deepmodeling/dpgui
[Code scan] Make the build hook fail when Yarn commands fail
- Dominant language
- Vue
- Stars
- 9
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
This issue was found during a Codex global code scan of the repository.
Baseline commit: e3c5b38a99eb7ab778b5d8c68a5ed4ddf6cf91b3
Problem
The custom Hatch build hook invokes Yarn through `subprocess.call()`, but it never checks the return code.
Code references:
https://github.com/deepmodeling/dpgui/blob/e3c5b38a99eb7ab778b5d8c68a5ed4ddf6cf91b3/hatch_build.py#L13-L15
https://github.com/deepmodeling/dpgui/blob/e3c5b38a99eb7ab778b5d8c68a5ed4ddf6cf91b3/hatch_build.py#L30-L48
Relevant snippet:
```py
def node_call(args, **kwargs):
"""Call node with subprocess."""
return subprocess.call(["node", *args], **kwargs)
```
Impact
A failed `yarn install` or `yarn build` can continue until only `dist` existence is checked. If `dist` already exists from a previous build, packaging can copy stale frontend assets into `dpgui/dist`.
Suggested fix
Use `subprocess.check_call()` or explicitly raise on nonzero return codes. It would also be safer to clean the root `dist` before running the frontend build.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with hatch_build.py, especially node_call and the build-hook code around the referenced lines. Check how yarn install and yarn build results are handled, then verify that failed commands stop packaging and that stale dist contents are not reused; inspect the existing build flow to confirm the behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, python
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100