in src/get-dart/dart_sdk_archive/lib/src/version_selector.dart [133:244]
void updateTable(VersionInfo versionInfo) {
for (var name in platforms.keys) {
var platformVariants = platforms[name] ?? const [];
for (var platformVariant in platformVariants) {
// ARMv7 builds only available later in 2015, ARMv8 in 03-2017
if (archiveMap[name] == 'linux') {
if (platformVariant.architecture == 'ARMv7' &&
versionInfo.date.isBefore(DateTime.parse(
(channel == 'dev') ? '2015-10-21' : '2015-08-31'))) {
continue;
} else if (platformVariant.architecture == 'ARMv8 (ARM64)' &&
versionInfo.date.isBefore(DateTime.parse('2017-03-09'))) {
continue;
}
}
// No Mac 32-bit SDK builds after 2.80
if (name == 'macOS' && platformVariant.architecture == 'ia32') {
if (versionInfo.version > Version(2, 7, 0)) {
continue;
}
}
// No Mac arm64 SDK builds before 2.14.1 (earlier builds did not have trained snapshots).
if (name == 'macOS' && platformVariant.architecture == 'ARM64') {
if (versionInfo.version < Version(2, 14, 1)) {
continue;
}
}
// Build rows for all supported builds.
var row = _table.tBodies.first.addRow()
..attributes['data-version'] = versionInfo.version.toString()
..attributes['data-os'] = archiveMap[name] ?? '';
var versionCell = row.addCell()..text = versionInfo.version.toString();
versionCell.append(SpanElement()
..text = ' (${_prettyRevRef(versionInfo)})'
..classes.add('muted'));
row.addCell().text = name;
row.addCell()
..classes.add('nowrap')
..text = platformVariant.architecture;
var possibleArchives = ['Dart SDK', 'Debian package'];
var c = row.addCell()..classes.add('archives');
for (var pa in possibleArchives) {
if (platformVariant.archives.contains(pa)) {
// We had no editor downloads after the move to GitHub.
// This skips the editor link in those cases
if (pa == 'Dart Editor') {
continue;
}
var baseFileName = '${archiveMap[pa]}-${archiveMap[name]}-'
'${archiveMap[platformVariant.architecture]}';
if (pa == 'Debian package') {
// Debian packages start with 2.0.0
if (versionInfo.version < Version(2, 0, 0)) {
continue;
} else {
baseFileName = 'dart_${_versionString(versionInfo)}';
}
}
final uri =
'$_storageBase/channels/$channel/release/${_versionString(versionInfo)}'
'/${directoryMap[pa]}/$baseFileName${suffixMap[pa]}';
c.append(AnchorElement()
..text = pa
..attributes['href'] = uri);
final svnRevisionInfo = _svnRevision(versionInfo);
if (pa != 'Dart Editor' &&
pa != 'Debian package' &&
(svnRevisionInfo == null || svnRevisionInfo > 38976)) {
c.appendText(' ');
c.append(AnchorElement()
..text = '(SHA-256)'
..attributes['href'] = '$uri.sha256sum'
..classes.add('sha'));
}
c.append(Element.br());
}
}
}
}
// Add DartDoc archive.
var row = _table.tBodies.first.addRow()
..attributes['data-version'] = versionInfo.version.toString()
..attributes['data-os'] = 'api';
var rev = SpanElement()
..text = ' (${_prettyRevRef(versionInfo)})'
..classes.add('muted');
row.addCell()
..text = versionInfo.version.toString()
..append(rev);
row.addCell().text = '---';
row.addCell().text = '---';
var c = row.addCell()..classes.add('archives');
var uri = '$_storageBase/channels/$channel/release/'
'${versionInfo.version}/api-docs/dartdocs-gen-api.zip';
c.append(AnchorElement()
..text = 'API docs'
..attributes['href'] = uri);
var templateRows = _table.querySelectorAll('.template');
for (var row in templateRows) {
row.remove();
}
}