Skip to content

Import name projections don't support exports by interface name #301

Open
@peterhuene

Description

@peterhuene

Currently the projection rule for import names looks like:

projection    ::= '/' <label>
label         ::= <word>
                | <label> '-' <word>

This prevents projections for exports using the interfacename format, as these cannot be expressed simply as a label.

Say component foo:bar exports an instance with name bar:baz/qux (i.e. in interfacename format) and we wanted to import this instance from another component, but reference a possible implementation using an unlocked-dep import rather an import of an interface name. We're unable to express this because bar:baz/qux cannot be represented as a projection.

One possible solution:

Extend the projection rule as follows:

projection          ::= '/' <projection-segment>
projection-segment  ::= <label> | '<' <interfacename> '>' 

Or using some other delimiter to denote that the segment is an interface name and not a label.

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