We should add a note to the "New build" form that tells the modder that the download links should always point to exactly this version. We should also allow to change the links later on (The server might have changed or maybe they want to add another mirror). If too many modders complain about this, we might be able to add a system which automatically creates a backup of all builds in the Nebula. I wonder how much disk space that would consume, though.
Yeah, we should end this habit of "sneaky updates". I'll add the note to the form.
Wouldn't allowing to change the links after a build has been validated go against strict semver enforcement ?
To me, the appropriate way to change links would be to run a "copy & update" on the build, replace the broken links, and validate the new build under the same version number with a changed "version metadata" field (for example 1.0.0 to 1.0.0+serverchange1).
I'm thinking about writing a Nebula "good practices" guide, now
This leads me to think we would still have a problem with outdated or broken links in older builds. We should use some automated testing. I'm thinking about a cron task, that would run Knossos-server from Nebula once in a while, and if a single file is unavailable from all urls, mark the build as "obsolete" and remove its cached JSON data from the database.
(that would make 4 states for a build : "success", "failed", "processing" and "obsolete")
Since many most files are big, we can't handle them directly from the build form, so I'm not sure how Nebula could handle file hosting.
However, as Knossos-server downloads the files before generating the checksums, maybe it could cache them and add the cache URLs to the lists before generating final JSON. (I'm not proposing this because that's less work for me, I actually think it's a good solution before we come up with a better file hosting system).
If my cloning code keeps behaving as expected, we should have a simple way to transfer a build to from a branch to another tonight. I'll also add a graphical clue to see which branch is the default one (in the mod/branches list view).