Current Behavior
pull_workflows flattens every package's inst/workflow*/ contents directly into workflows/ with no per-package namespace. If two packages ship a file at the same relative path (e.g. 0_other/foo.yaml), the second package's file silently overwrites the first. No warning is emitted.
Expected Behavior
The action should detect duplicate destination paths and warn (or fail, configurable) with a message naming both source repos.
Possible Solution
Maintain an in-memory set of destination paths during the pull_workflows loop; on every write, check membership and warning() (or stop(), controllable via an argument) when a collision is detected. Include both source repo names in the message.
Steps to Reproduce
- Construct a test fork with two stub packages that both ship
inst/workflow/0_other/foo.yaml with distinct contents.
- Run
pkgManifest() against both.
- Observe that
workflows/0_other/foo.yaml contains whichever package was resolved last, with no warning.
Context
Risk grows as the ecosystem adds packages. Existing packages happen to use disjoint subfolders, so it's latent today.
QC Approach
Related
Part of the gismo.library snapshot pipeline requirement: Gilead-BioStats/gsm.roadmap#20 (Theme B)
Current Behavior
pull_workflowsflattens every package'sinst/workflow*/contents directly intoworkflows/with no per-package namespace. If two packages ship a file at the same relative path (e.g.0_other/foo.yaml), the second package's file silently overwrites the first. No warning is emitted.Expected Behavior
The action should detect duplicate destination paths and warn (or fail, configurable) with a message naming both source repos.
Possible Solution
Maintain an in-memory set of destination paths during the
pull_workflowsloop; on every write, check membership andwarning()(orstop(), controllable via an argument) when a collision is detected. Include both source repo names in the message.Steps to Reproduce
inst/workflow/0_other/foo.yamlwith distinct contents.pkgManifest()against both.workflows/0_other/foo.yamlcontains whichever package was resolved last, with no warning.Context
Risk grows as the ecosystem adds packages. Existing packages happen to use disjoint subfolders, so it's latent today.
QC Approach
Related
Part of the
gismo.librarysnapshot pipeline requirement: Gilead-BioStats/gsm.roadmap#20 (Theme B)