YuriyKrasilnikov commented on PR #37516:
URL: https://github.com/apache/superset/pull/37516#issuecomment-4958522714

   @rusackas, separately, the lifecycle investigation exposed four independent 
master-based fixes, one dependent task-lifecycle change, and a broader export 
workflow. None of the branches below is part of `#37516`. I kept each change on 
a branch with its actual dependency base so the behavior and review boundaries 
remain explicit. I will prepare the corresponding issues and PR descriptions 
after we agree on the preferred packaging.
   
   ## Independent fixes based on `master`
   
   - 
[`fix/csv-configured-escape-character`](https://github.com/YuriyKrasilnikov/superset/tree/fix/csv-configured-escape-character)
 - honor the configured escape character when serializing CSV values.
   - 
[`fix/database-normalize-nested-values-after-nulls`](https://github.com/YuriyKrasilnikov/superset/tree/fix/database-normalize-nested-values-after-nulls)
 - normalize nested database values in the correct order when null handling is 
involved.
   - 
[`fix/tasks-scheduling-and-cancellation`](https://github.com/YuriyKrasilnikov/superset/tree/fix/tasks-scheduling-and-cancellation)
 - close scheduling/cancellation state races in the Global Task Framework.
   - 
[`fix/frontend-streaming-export-sinks`](https://github.com/YuriyKrasilnikov/superset/tree/fix/frontend-streaming-export-sinks)
 - isolate browser streaming sinks and reliably release download resources.
   
   ## Dependent task-lifecycle branch
   
   - 
[`feat/tasks-result-finalization-fencing`](https://github.com/YuriyKrasilnikov/superset/tree/feat/tasks-result-finalization-fencing)
 - based on `fix/tasks-scheduling-and-cancellation`; prevent late cleanup or 
finalization from overwriting an already terminal task result.
   
   ## Export stack and exact bases
   
   - 
[`fix/chart-data-direct-csv-export`](https://github.com/YuriyKrasilnikov/superset/tree/fix/chart-data-direct-csv-export)
 - based on `feat/chart-data-timing-breakdown`; select the direct streaming 
path before `ChartDataCommand` materializes a large CSV result.
   - 
[`feat/chart-data-private-async-export-artifacts`](https://github.com/YuriyKrasilnikov/superset/tree/feat/chart-data-private-async-export-artifacts)
 - based on the merge of `feat/chart-data-timing-breakdown` and 
`feat/tasks-result-finalization-fencing`; add private asynchronous export 
artifacts with ownership, TTL, cleanup, and recovery.
   - 
[`feat/chart-data-export-negotiation`](https://github.com/YuriyKrasilnikov/superset/tree/feat/chart-data-export-negotiation)
 - based on the merge of the direct-export and private-artifact branches; 
negotiate the supported direct or asynchronous export path.
   - 
[`feat/frontend-private-artifact-export-flow`](https://github.com/YuriyKrasilnikov/superset/tree/feat/frontend-private-artifact-export-flow)
 - based on the merge of export negotiation and 
`fix/frontend-streaming-export-sinks`; start, monitor, download, and clean up 
private export artifacts in the browser.
   
   The dependency graph is therefore:
   
   ```text
   master -> feat/chart-data-timing-breakdown (#37516)
   master -> fix/tasks-scheduling-and-cancellation
             -> feat/tasks-result-finalization-fencing
   
   merge(#37516, task finalization)
     -> feat/chart-data-private-async-export-artifacts
   
   #37516 -> fix/chart-data-direct-csv-export
   
   merge(private artifacts, direct CSV)
     -> feat/chart-data-export-negotiation
   
   master -> fix/frontend-streaming-export-sinks
   
   merge(export negotiation, frontend sinks)
     -> feat/frontend-private-artifact-export-flow
   
   master -> fix/csv-configured-escape-character
   master -> fix/database-normalize-nested-values-after-nulls
   ```
   
   Before opening these formally, would the maintainers prefer this packaging?
   
   1. Separate issue/PR pairs against `master` for the independent fixes.
   2. An umbrella issue or SIP for the complete export workflow.
   3. Stacked PRs for dependent changes, with every PR naming its parent branch 
and cross-linking the dependency graph.
   4. Rebase each dependent PR onto `master` as its parent is merged.
   
   If a different issue/PR boundary is preferred, I can adjust the packaging 
without changing the already separated branch contents.
   


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