app/models/about.php (13 lines of code) (raw):
<?php
declare(strict_types=1);
use Cache\Cache;
$yesterday = date('Ymd', strtotime('yesterday'));
// We also use this page to flush the cache on demand
$flush_cache = $_GET['flush_cache'] ?? false;
if ($flush_cache === date('Ymd')) {
Cache::flush();
}
// No data to prepare yet
$main_beta = BETA;
$nonce = NONCE;
return <<<"EOD"
<div class="w-75 alert alert-primary mx-auto text-center mb-3" role="alert">
This website is Mozilla's official reference for all things related to the Firefox release schedule.<br>
It is maintained by the <a href="https://wiki.mozilla.org/Release_Management/Team_members">Release Management team</a>.
</div>
<p class="mt-3 mb-3 w-75 justify-content-center mx-auto text-center fw-normal fs-5">
</p>
<h3 class="text-center w-75 mx-auto" id="pages"><a href="#pages" class="bi-link-45deg anchor-link link-info"></a>Pages</h3>
<table class="table table-light table-fxt-clean table-sm mb-3 w-75 justify-content-center">
<tr class="table-warning">
<th class="text-secondary-emphasis fw-semibold w-25">Endpoint</th><th class="text-secondary-emphasis fw-semibold">Description</th>
</tr>
<tr>
<td><a href="/">/</a></td>
<td>Homepage with a simple overview of the releases in flight</td>
</tr>
<tr>
<td><a href="/about">about</a></td>
<td>Get the list of views and public JSON API endpoints</td>
</tr>
<tr>
<td><a href="/beta">beta</a></td>
<td>Get the state of what was uplifted in the current beta cycle</td>
</tr>
<tr>
<td><a href="/calendar">calendar</a></td>
<td>Overview of our upcoming releases</td>
</tr>
<tr>
<td><a href="/calendar/monthly/">calendar/monthly</a></td>
<td>General calendar view of milestones for upcoming releases</td>
</tr>
<tr>
<td>
<ul class="list-unstyled mb-0">
<li><a href="/nightly/">nightly</a> (today)</li>
<li><a href="/nightly/?date={$yesterday}">nightly/?date={$yesterday}</a></li>
</ul>
</td>
<td>Provides the list of nightly buildIDs for a day: crashes, changelog, bugs fixed</td>
</tr>
<tr>
<td>
<ul class="list-unstyled mb-0">
<li><a href="/release/?version=nightly">release/?version=nightly</a></li>
<li><a href="/release/?version=beta">release/?version=beta</a></li>
<li><a href="/release/?version=release">release/?version=release</a></li>
<li><a href="/release/?version=esr">release/?version=esr</a></li>
<li><a href="/release/?version=90">release/?version=90</a></li>
</ul>
</td>
<td>
Provides historical data for past releases and basic release date information for future releases.<br>
The <code>nightly</code>, <code>beta</code>, <code>release</code> and <code>esr</code> values are aliases to the current real version numbers.<br>
The <code>esr</code> view is mostly a schedule of incoming releases and indicates when a new ESR branch happens in the year.
</td>
</tr>
<tr>
<td><a href="/release/owners/">release/owners</a></td>
<td>List all past releases per release owner</td>
</tr>
</table>
<h3 class="text-center w-75 mx-auto" id="json"><a href="#json" class="bi-link-45deg anchor-link link-info"></a>Json API</h3>
<table class="table table-light table-fxt-clean table-sm mb-3 w-75 justify-content-center">
<tr class="table-warning">
<th class="text-secondary-emphasis fw-semibold w-25">Endpoint</th><th class="text-secondary-emphasis fw-semibold">Description</th>
</tr>
<tr>
<td><a href="/api/beta/crashes/"><span class="text-body-tertiary me-1">api/</span>beta/crashes</a></td>
<td>Gives the crashes for all our current betas (data from Socorro)</td>
</tr>
<tr>
<td><a href="/api/esr/releases/"><span class="text-body-tertiary me-1">api/</span>esr/releases</a></td>
<td>Release dates for all ESR releases (including dot releases)</td>
</tr>
<tr>
<td><a href="/api/external/"><span class="text-body-tertiary me-1">api/</span>external</a></td>
<td>Gives the list of external APIs this site depends on to build data.</td>
</tr>
<tr>
<td><a href="/api/firefox/chemspills/"><span class="text-body-tertiary me-1">api/</span>firefox/chemspills</a></td>
<td>List Firefox dot releases which were in immediate response to a security incident or major incident.</td>
</tr>
<tr>
<td><a href="/api/firefox/releases/"><span class="text-body-tertiary me-1">api/</span>firefox/releases</a></td>
<td>Release dates for all past Firefox releases (including dot releases)</td>
</tr>
<tr>
<td><a href="/api/firefox/releases/future/"><span class="text-body-tertiary me-1">api/</span>firefox/releases/future/</a></td>
<td>Release dates for all future Firefox releases (including planned dot releases)</td>
</tr>
<tr>
<td><a href="/api/nightly/?date={$yesterday}"><span class="text-body-tertiary me-1">api/</span>nightly/?date={$yesterday}</a></td>
<td>Provides the list of nightly build IDs for a day and the changeset they were built from (data from buildhub)</td>
</tr>
<tr>
<td><a href="/api/nightly/crashes/?buildid=20190927094817"><span class="text-body-tertiary me-1">api/</span>nightly/crashes/?buildid=20190927094817</a></td>
<td>Gives the crashes for a buildID (data from Socorro)</td>
</tr>
<tr>
<td><a href="/api/release/owners/"><span class="text-body-tertiary me-1">api/</span>release/owners</a></td>
<td>Historical list of all release managers for Firefox major releases</td>
</tr>
<tr>
<td>
<ul class="list-unstyled mb-0">
<li><a href="/api/release/schedule/?version=beta"><span class="text-body-tertiary me-1">api/</span>release/schedule/?version=beta</a> <span class="text-body-tertiary">(forecast)</span></li>
<li><a href="/api/release/schedule/?version=release"><span class="text-body-tertiary me-1">api/</span>release/schedule/?version=release</a> <span class="text-body-tertiary">(actual)</span></li>
</ul>
</td>
<td>Gives either the scheduled milestones for an upcoming major Desktop version or the actual schedule of builds for a past release.
<br>Can be a version number or one of the <code>release</code>, <code>beta</code> or <code>nightly</code> keywords.</td>
</tr>
</table>
<h3 class="text-center w-75 mx-auto" id="other"><a href="#other" class="bi-link-45deg anchor-link link-info"></a>Other resources</h3>
<table class="table table-light table-fxt-clean table-sm mb-3 w-75 justify-content-center">
<tr class="table-warning">
<th class="text-secondary-emphasis fw-semibold w-25">Endpoint</th><th class="text-secondary-emphasis fw-semibold">Description</th>
</tr>
<tr>
<td><a href="/calendar/release/schedule/?version={$main_beta}">calendar/release/schedule/?version={$main_beta}</a></td>
<td>Download an icalendar (.ics) file of an upcoming release milestones.</td>
</tr>
<tr>
<td><a href="/rss/">rss</a></td>
<td><img class="align-text-bottom" src="/assets/img/feed_icon.svg" alt="RSS feed logo"> Subscribe to our RSS feed to get a notification when a new Firefox release is out.</td>
</tr>
</table>
<h3 class="text-center w-75 mx-auto" id="credits"><a href="#credits" class="bi-link-45deg anchor-link link-info"></a>Credits</h3>
<table class="table table-light table-fxt-clean table-sm mb-3 w-75 justify-content-center">
<tr class="table-warning">
<th class="text-secondary-emphasis fw-semibold w-25">What</th>
<th class="text-secondary-emphasis fw-semibold">Who</th>
</tr>
<tr>
<td><a href="https://www.iconfinder.com/iconsets/circle-icons-1" target="_blank">Circle Icons</a></td>
<td><img class="align-text-bottom" src="/assets/img/site_icon.svg" style="width:20px" nonce="{$nonce}"> Train favicon by Nick Roach</td>
</tr>
</tr>
<tr>
<td><a href="https://github.com/rsms/inter/" target="_blank">Inter Font</a></td>
<td>A⃝ Inter Font by Rasmus</td>
</tr>
<tr>
<td><a href="https://github.com/mozilla/releases_insights">Code</a></td>
<td><img class="align-text-bottom" src="/assets/img/github-mark.svg" alt="GitHub logo" style="width:20px" nonce="{$nonce}"> Source code for this website.</td>
</tr>
</table>
EOD;