Skip to content

Naming scheme is confusing & brittle #1

@bb010g

Description

@bb010g

The Engram family of keyboard layouts now consists of:

I can understand the desire to rename the previous “generation” of Engram layouts to “Engram-2021”. However, I don't understand why that wouldn't be paired with naming the new generation of Engram layouts “Engram-2025”, which would give us Engram-en-2025 and Engram-es-2025. At the cost of renaming the older layouts again, I believe the names Engram-2025-en, Engram-2025-es, Engram-2021-en, and Engram-2025-es would more clearly convey that relationship. This naming scheme would also give you space for new algorithm generations in the future.

Additionally, the “Engram-2021” naming for what was previously Engram v2.0 makes referring to versions before Engram v2.0 confusing, as Engram v1.3 also came out in 2021 but used older algorithms than Engram v2.0. I think it'd be beneficial if you would document old versions somewhere in the current documentation, with whatever naming scheme you feel makes the most sense for those historical algorithms.

Finally, I'm worried about how latest Engram-en (last changed 2025-10-25) and Engram-es (last changed 2025-10-25) completely lack version numbers or information. Using “Engram-2025” names would help, but that still leaves no room for potential future releases generated by an improved optimize_layouts that isn't changed enough to be considered outside of the “Engram-2025” generation. I can understand not wanting to use semantic version numbers here, but CalVer could be a good alternative—the current layouts would then be Engram-2025-en v2025.10.25 and Engram-2025-es v2025.10.25, a theoretical new layout could be Engram-2025-en v2026.01.12, and you'd be free to refer to that new layout as Engram-2025-en v2026.01 after the month ends and Engram-2025-en v2026 after the year ends if that's the last Engram-2025-en release of the year.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions