mikebridge opened a new pull request, #44407:
URL: https://github.com/apache/superset/pull/44407

   ### SUMMARY
   
   Fixes the upstream CLI failure-propagation portion of 
[SC-119473](https://app.shortcut.com/preset/story/119473).
   
   A real frontend npm build script (`node -e "process.exit(1)"`) reproduces 
false success: both `build` and `bundle` returned exit 0, and `bundle` produced 
a manifest-only `.supx` after reporting the frontend failure. With this change 
both commands return exit 1, without writing a new manifest or archive.
   
   The guard belongs at the `build` call site. `rebuild_frontend` retains its 
`None`-on-failure contract so the `dev` watcher can recover on a subsequent 
change. Backend-only builds remain unaffected. Existing archives are retained; 
callers must check the exit status.
   
   Related downstream guard: 
https://github.com/preset-io/superset-shell/pull/5161. The unbounded 
`apache-superset-core` dependency pin is tracked separately in #42568 and is 
untouched.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   CLI-only change; no UI screenshots.
   
   | Real failing frontend build | Before | After |
   | --- | --- | --- |
   | `build` exit status | 0 | 1 |
   | `bundle` exit status | 0 | 1 |
   | New archive | Invalid, manifest-only `.supx` | None |
   
   ### TESTING INSTRUCTIONS
   
   From `superset-extensions-cli`, run `pytest -o addopts='' -q tests/` with 
the local CLI and core packages importable. Result: **275 passed**, with 15 
existing Click/semver deprecation warnings. All applicable changed-file 
pre-commit hooks passed, including package MyPy, Ruff and custom pylint.
   
   Updated parametrized tests cover failed `build` and `bundle` commands and 
the helper's nonzero compiler results. Two new command-level test functions 
cover successful/failed compiler propagation through real manifest/archive 
paths, rejection of stale frontend output on failure, and the registered dev 
callback recovering through success/failure/success without a live watcher 
thread.
   
   Manual reproduction used an actual failing npm subprocess before and after 
the fix, not a mocked compiler. Before: exit 0 and a manifest-only archive. 
After: exit 1 and no new archive. No dependency installations or Docker builds 
were required.
   
   ### ADDITIONAL INFORMATION
   
   - [x] Has associated issue: 
[SC-119473](https://app.shortcut.com/preset/story/119473)
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to