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#
length2 to 48 charactersRequiredAnything shorter is too easy to squat, anything longer stops being an address.
alphabeta-z 0-9 hyphenRequiredLowercase letters, digits and hyphens. No underscores, no capitals, no dots.
uniquenessglobalRequiredAcross 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#
Prefer the program name
snake, notada-snake-ce-v2. The owner is shown next to it everywhere it appears.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.
Think about dependencies
A library's address is what other people type in their manifest.
graphx-helpersreads better in someone else's dependency list thanmy-lib.
Addresses and calculator variable names#
They are different things and it is worth being clear about which is which.
| Where it comes from | What it looks like | Who sees it | |
|---|---|---|---|
| Address | the project id | snake | Roost URLs, dependency lists, the API |
| Variable name | the built file | SNAKE | the calculator's program list |
| LibLoad name | the library section of the manifest | DEMO | the 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.