Github Release API requires pagination and repeated queries will result in throttling
Limited in terms of metadata:
We can't provide os-arch -> binary mapping, instead the user must parse each asset name, which can be error prone.
We can't provide build flavors, for example debug builds for devel.
Any changes are likely to cause tooling breakage, even adding metadata can break other tools.
latest-* tags requires synchronization: In the future we will want to offload arm builds to Drone CI, which mean the current scheme of "dependent jobs" (update latest jobs depending on build release nightlies to complete) will no longer work as they can not synchronize between different platforms.
A solution would be to produce JSON manifests, exposed via Github Pages so that interested parties can access via https://nim-lang.github.io/nightlies to get links to assets they need.
With JSON manifests:
Adding fields are transparent, it won't affect the user if they don't know about it
Problems with the current release system:
devel
.latest-*
tags requires synchronization: In the future we will want to offload arm builds to Drone CI, which mean the current scheme of "dependent jobs" (update latest
jobs depending onbuild release nightlies
to complete) will no longer work as they can not synchronize between different platforms.A solution would be to produce JSON manifests, exposed via Github Pages so that interested parties can access via https://nim-lang.github.io/nightlies to get links to assets they need.
With JSON manifests: