Skip to content

Older versions

Every version a program ever published stays downloadable at its own address, unless the developer withdrew it from Aerie.

Publishing a new version does not overwrite the old one. Roost keeps every version a program has ever published, each with the file exactly as it was published then, and serves all of them.

The bare routes always mean the newest published version. To pin a version, name it.

RouteWhat comes back
/d/{slug}/v/{version}the transfer file of that exact version
/d/{slug}/v/{version}/rawthe variable body of that exact version
/d/{slug}/v/{version}/libthe developer archive of that exact version

The same three exist under /api/v1/programs/{slug}/versions/{version}/ as download, download.8xp and library.zip, and behave identically.

The history#

GET/api/v1/programs/{slug}/versionsPublic
curl -s https://roost.ceagle.cc/api/v1/programs/snake/versions
{
  "slug": "snake",
  "current": "1.2.0",
  "versions": [
    {
      "version": "1.2.0",
      "status": "published",
      "current": true,
      "checksum": "3f9a…",
      "size": 14208,
      "downloads": 812,
      "file_url": "/d/snake/v/1.2.0",
      "published_at": "2026-08-02T09:14:00Z"
    },
    {
      "version": "1.1.0",
      "status": "published",
      "current": false,
      "checksum": "b71c…",
      "size": 13984,
      "downloads": 340,
      "file_url": "/d/snake/v/1.1.0",
      "published_at": "2026-06-20T18:02:00Z"
    }
  ]
}

Newest first. current marks the one the bare routes serve. Each entry carries its own checksum, because the file behind an older version is the file that was published then and nothing else.

The same history is on the program page under Version history, with a download link against each row.

Withdrawing a version#

A developer can take one version down from Aerie, under Flight → Versions. Roost then stops serving it:

  • every download route for that version answers 410 Gone
  • it disappears from the list the API returns, and is marked withdrawn on the program page
  • the version number stays claimed, so nothing can be published under it afterwards

Withdrawing is not deleting, and it is reversible: Restore puts the same file back, unchanged.

If the withdrawn version was the one the bare routes served, the address falls back to the newest version still published, and the program page, the bulk version check and Swoop all follow it. The last published version cannot be withdrawn; archiving the project is what takes a whole program down.

Archiving, not deleting

What happens to a program when its project is archived.

Read on

Which one to install#

Install the newest, unless somebody asked for a particular version. An older version is there for the person who needs it — a calculator that a new build broke, a library another program was compiled against — not as the normal path.

Keeping a calculator current

The bulk check that answers what the newest version is for a whole calculator at once.

Read on
CEagle documentation