Skip to content

Projections: Simplify Custom Projection Modification with Template Strings #350

@CodeGat

Description

@CodeGat

Background

Currently, when given projections, we infix the version between {name} and any further demarcations on the modulefile, if they exist.

For example:

{name}/{variants.x}x{variants.y} -> {name}/2025.11.000/{variants.x}x{variants.y}
system-tools/{name} -> system-tools/{name}/2025.11.000

However, in the case that the user supplies the version accidentally (as we used to have to), we still infix it:

{name}/2025.11.000 -> {name}/2025.11.000/2025.11.000

Implementation Details

Maybe it would be better to have a placeholder string in the custom projection that will be replaced? For example:

{name}/VERSION/{variants.x} -> {name}/2025.11.000/{variants.x}

However, for prerelease injection, we will need to know where VERSION was replaced - we may not nessecarily be able to rely on {name}/2025.11.000 if VERSION is somewhere else. Consider passing in the original manifest as well. .

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions