Skip to content

improvements to the auto scoping mechanisms #163

@ms-lolo

Description

@ms-lolo

we're creating more types of data structures that act as global identifiers across the project. ServiceId, CommandId, and others need to be globally unique, so we auto-prefix them with the module path in order to guarantee uniqueness and also give log messages useful metadata that shows authors the path to the definition of a given id.

Elon pointed out that using the full module path typically includes the private module file, which makes things fragile when we move the implementation across private files. We decided the prefix should probably be the path to the nearest public package where this id object is exposed. this allows us to move the class without breaking things like serialized json that might include these id objects. it's reasonable to expect things to break when we move an id class between public packages, but that matches the expectation of any other public api change.

so instead of ServiceId("rats.pipelines._something:some-service"), we want the prefixing to be something along the lines of ServiceId("rats.pipelines:Something.some-service").

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