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]
