Skip to content

Selecting a language without the base leaves pnpm_env undefined #61

Description

@catinspace-au

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions