@model IEnumerable @{ ViewBag.Title = "Releases"; ViewBag.Developer = true; }

Releases

Below is a list of all ShiftOS releases, sorted by date in descending order, categorized by stability.

Stable releases

Stable builds of ShiftOS are generally more trusted - they may not contain all the latest features, but they are also bug-free... mostly.

@foreach(var release in Model.Where(x => x.IsStable == true && x.Obsolete == false).OrderByDescending(x => x.PostDate)) { }
Release Actions
@if (release.Obsolete == true) { OBSOLETE: } @Html.ActionLink(release.Name, "ViewRelease", "Download", new { id = release.Id }, null)

...released by @Html.UserLink(release.ReleasedBy), released on @release.PostDate

Watch dev update @Html.ActionLink("Make Unstable", "MakeUnstable", "Developer", new { id = release.Id }, new { @class = "btn btn-warning" }) @Html.ActionLink("Toggle Obsolete", "ToggleObsolete", "Developer", new { id = release.Id }, new { @class = "btn btn-warning" })

Unstable releases

Unstable builds are in-between builds of ShiftOS. They are more feature-rich, released faster, but that comes at the cost of stability. These builds may be really buggy. Seriously. I've released some that don't even boot.

@foreach (var release in Model.Where(x => x.IsStable == false).OrderByDescending(x => x.PostDate)) { }
Release Actions
@if (release.Obsolete == true) { OBSOLETE: } @Html.ActionLink(release.Name, "ViewRelease", "Download", new { id = release.Id }, null)

...released by @Html.UserLink(release.ReleasedBy), released on @release.PostDate

Watch dev update @Html.ActionLink("Make Stable", "MakeStable", "Developer", new { id = release.Id }, new { @class = "btn btn-warning" }) @Html.ActionLink("Toggle Obsolete", "ToggleObsolete", "Developer", new { id = release.Id }, new { @class = "btn btn-warning" })

Obsolete releases

Obsolete releases are kept up for archival purposes only. Rather than deleting a build, make it obsolete. That way, users can still play it if they want to (or can), but we don't have to accept bug reports for the obsolete release.

@foreach (var release in Model.Where(x => x.Obsolete==true).OrderByDescending(x => x.PostDate)) { }
Release Actions
@if (release.Obsolete == true) { OBSOLETE: } @Html.ActionLink(release.Name, "ViewRelease", "Download", new { id = release.Id }, null)

...released by @Html.UserLink(release.ReleasedBy), released on @release.PostDate

Watch dev update @Html.ActionLink("Toggle Obsolete", "ToggleObsolete", "Developer", new { id = release.Id }, new { @class = "btn btn-warning" }) @Html.ActionLink("Delete", "Delete", "Developer", new { id = release.Id }, new { @class = "btn btn-danger" })