Skip to content

Addresses and slugs

The project id is the program's address on Roost. It is claimed once and never released.

A project's id, its slug, is the address its program publishes at. It appears in the Roost URL, in every download route, in a dependency list and in the bulk version check.

The rules#

A valid slug
length2 to 48 charactersRequired

Anything shorter is too easy to squat, anything longer stops being an address.

alphabeta-z 0-9 hyphenRequired

Lowercase letters, digits and hyphens. No underscores, no capitals, no dots.

uniquenessglobalRequired

Across every project on CEagle, not per account.

Send no id when creating a project and one is derived from the name. Snake CE becomes snake-ce.

It is permanent#

There is no rename. Once a project claims an address, that address belongs to it for good, even after the project is archived.

That is on purpose. An address that could be released and picked up by somebody else would mean a calculator that installed snake last month could be handed a different program under that name next month, and a dependency naming demo-library could silently start resolving to something nobody vetted.

Picking one#

  1. Prefer the program name

    snake, not ada-snake-ce-v2. The owner is shown next to it everywhere it appears.

  2. Avoid version numbers

    Versions are a field on the release. An address with a version in it is an address you will regret at the next major release.

  3. Think about dependencies

    A library's address is what other people type in their manifest. graphx-helpers reads better in someone else's dependency list than my-lib.

Addresses and calculator variable names#

They are different things and it is worth being clear about which is which.

Where it comes fromWhat it looks likeWho sees it
Addressthe project idsnakeRoost URLs, dependency lists, the API
Variable namethe built fileSNAKEthe calculator's program list
LibLoad namethe library section of the manifestDEMOthe linker and LibLoad at runtime

A variable name is at most eight characters and comes from what the toolchain wrote into the file. A LibLoad name is one to eight characters, starts with a letter, and is capitals and digits only.

CEagle documentation