Node moved into the core developer role, which is the right call -- semantic-release and hyperi-ci need it whatever language you work in. But the include is tagged ['developer', 'nodejs'], and nothing about selecting a LANGUAGE selects those tags. So a run that asks for languages without also asking for the base gets the consumer without the producer.
What that looks like:
developer/tasks/nodejs.yml sets pnpm_env (and installs pnpm itself) near the end of the file.
developer-node/tasks/nodejs.yml and developer-typescript/tasks/typescript.yml both do environment: "{{ pnpm_env }}".
- Skip the first and the other two die on
Error processing keyword 'environment': 'pnpm_env' is undefined.
The meta dependency is fine -- developer-node declares developer and always has. It is the TAG selection that defeats it, so adding another dependency is not the fix.
Worth noting defining the var alone would not fix it either. If nodejs.yml did not run then pnpm is not installed, so pnpm install -g would just fail one step later with a nicer message.
We hit this on the desktop VM template build, which runs --soe --languages --tags infrastructure,rdp-server,vm,power-profile. It failed 280 tasks in. We have worked around it our side by naming nodejs in the tag list, so we are not blocked -- but ./install.sh --languages typescript on a plain workstation still breaks the same way, and that one is in the help text.
DONE WHEN a run that selects a language toolchain gets node and pnpm without having to know it must also ask for the base.
Node moved into the core
developerrole, which is the right call -- semantic-release and hyperi-ci need it whatever language you work in. But the include is tagged['developer', 'nodejs'], and nothing about selecting a LANGUAGE selects those tags. So a run that asks for languages without also asking for the base gets the consumer without the producer.What that looks like:
developer/tasks/nodejs.ymlsetspnpm_env(and installs pnpm itself) near the end of the file.developer-node/tasks/nodejs.ymlanddeveloper-typescript/tasks/typescript.ymlboth doenvironment: "{{ pnpm_env }}".Error processing keyword 'environment': 'pnpm_env' is undefined.The meta dependency is fine --
developer-nodedeclaresdeveloperand always has. It is the TAG selection that defeats it, so adding another dependency is not the fix.Worth noting defining the var alone would not fix it either. If
nodejs.ymldid not run then pnpm is not installed, sopnpm install -gwould just fail one step later with a nicer message.We hit this on the desktop VM template build, which runs
--soe --languages --tags infrastructure,rdp-server,vm,power-profile. It failed 280 tasks in. We have worked around it our side by namingnodejsin the tag list, so we are not blocked -- but./install.sh --languages typescripton a plain workstation still breaks the same way, and that one is in the help text.DONE WHEN a run that selects a language toolchain gets node and pnpm without having to know it must also ask for the base.