jcamargos opened a new pull request, #9234:
URL: https://github.com/apache/devlake/pull/9234

   ### Summary
   
   A scheduled blueprint whose source plugin fails during plan generation 
currently leaves only a log entry: no pipeline is created, so pipeline history 
and status notifications miss the failed attempt.
   
   Record these attempts as terminal `FAILED` pipelines with the original 
planning error, timestamps, blueprint identity, sync policy, priority, and 
labels. Persist the pipeline and labels in one transaction without creating 
tasks or entering the execution queue. Notify through the existing notification 
service only after commit. Storage and notification failures are logged without 
replacing the original planning error.
   
   Manual triggers still return planning errors directly without creating 
history. Empty-plan handling and normal pipeline creation retain their existing 
behavior. The developer manual documents recovery: correct the 
blueprint/connection and trigger a new run, since a planning failure has no 
tasks to rerun.
   
   ### Does this close any open issues?
   
   Fixes #9232.
   
   ### Screenshots
   
   Not applicable: no frontend changes.
   
   ### Other Information
   
   Validation on Linux with Go 1.26.9 and the repository's generated mocks:
   
   - The new `TestBlueprintJobRecordsPlanFailure` regression test fails against 
the original production files at `ee0079ab32d4a80220c9369f899120a98db8db34` 
(using a Go overlay), because neither persistence nor notification occurs.
   - `go test -race -count=1 ./server/services ./core/models ./impls/dalgorm`
   - `go vet ./server/services ./core/models ./impls/dalgorm`
   - `golangci-lint` v2.14.0 with the repository configuration over 
`./server/services/... ./core/models/... ./impls/dalgorm/...`
   - `git diff --check`
   
   Regression coverage includes committed terminal records, notification 
failure, pipeline/label/commit/rollback errors, missing labels, the public 
manual-trigger path, empty-plan handling, successful creation, pending 
pipelines, and insertion failure.
   
   No database migration or API schema change is required. Tests use mocked 
DAL/notification interfaces; live MySQL/PostgreSQL and browser end-to-end tests 
were not run. Notifications retain the existing delivery semantics. Existing UI 
task-rerun controls cannot regenerate an absent plan; the persisted error 
message directs users to trigger a new blueprint run.


-- 
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]

Reply via email to