Found while proving #91 on the ubuntu-test VM: one --tags developer-rust run of playbooks/main.yml executes the whole developer-rust role twice (Install Rust and cargo tools at log lines 136 and 515, Govern rust build resources at 382 and 748 -- 164 ok / 42 changed for a role that size).
Why: the role is listed directly (main.yml:225, tags developer-rust, never) AND pulled in as a meta dependency of developer-languages (main.yml:262, roles/developer-languages/meta/main.yml:18). The dependency's tasks carry their own developer-rust tag from roles/developer-rust/tasks/main.yml, so the tag matches both copies.
Cost: every cargo install runs twice on a fresh box, and the swapless-governor warning prints twice in the report.
Done when a --tags developer-rust converge runs the role once and --tags developer-languages still pulls it in. Probably allow_duplicates: false on the role meta, or the dependency dropping in favour of the tag expansion install.sh already does (--languages rust -> --tags developer-rust).
Found while proving #91 on the ubuntu-test VM: one
--tags developer-rustrun of playbooks/main.yml executes the whole developer-rust role twice (Install Rust and cargo toolsat log lines 136 and 515,Govern rust build resourcesat 382 and 748 -- 164 ok / 42 changed for a role that size).Why: the role is listed directly (main.yml:225, tags
developer-rust, never) AND pulled in as a meta dependency of developer-languages (main.yml:262, roles/developer-languages/meta/main.yml:18). The dependency's tasks carry their owndeveloper-rusttag from roles/developer-rust/tasks/main.yml, so the tag matches both copies.Cost: every cargo install runs twice on a fresh box, and the swapless-governor warning prints twice in the report.
Done when a
--tags developer-rustconverge runs the role once and--tags developer-languagesstill pulls it in. Probablyallow_duplicates: falseon the role meta, or the dependency dropping in favour of the tag expansion install.sh already does (--languages rust->--tags developer-rust).