Generate the mirrorlist based on static version data

This commit is contained in:
Yuri Sizov
2023-06-19 14:41:47 +02:00
parent 8bd9ea96b3
commit 69841fad7a
10 changed files with 767 additions and 50 deletions

View File

@@ -10,7 +10,6 @@ GEM
http_parser.rb (~> 0) http_parser.rb (~> 0)
eventmachine (1.2.7) eventmachine (1.2.7)
ffi (1.15.5) ffi (1.15.5)
ffi (1.15.5-x64-mingw-ucrt)
ffi (1.15.5-x64-unknown) ffi (1.15.5-x64-unknown)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
http_parser.rb (0.8.0) http_parser.rb (0.8.0)
@@ -68,7 +67,7 @@ GEM
PLATFORMS PLATFORMS
arm64-darwin-22 arm64-darwin-22
x64-mingw-ucrt x64-unknown
x64-unknown x64-unknown
x86_64-linux x86_64-linux
@@ -81,4 +80,4 @@ DEPENDENCIES
webrick (~> 1.7) webrick (~> 1.7)
BUNDLED WITH BUNDLED WITH
2.4.2 2.4.13

View File

@@ -191,6 +191,25 @@ There are two additional files providing data for download pages and links: `_da
They define descriptions, tags, and filename slugs for all downloadable builds, as well as order for downloads on They define descriptions, tags, and filename slugs for all downloadable builds, as well as order for downloads on
some pages. some pages.
### Adding a mirrorlist host
If a new host needs to be supported by the mirrorlist, it needs to be added in a few places. For the data side of
things you need to update `_data/mirrorlist_configs.yml` and add another record for the major-minor version code.
```
- name: "4.1"
stable: [ "github", "tuxfamily" ]
preview: [ "github_builder", "tuxfamily" ]
```
The `stable` key refers to hosts available for the stable release of that version, while the `preview` key refers
to all pre-releases and dev snapshots, which typically share all their characteristics. If in future there is a
need for finer control, some overrides system needs to be implemented.
For the logic side of things the new host needs to be supported by the `_plugins/make_download.rb` script. Refer
to how other hosts are handled in that file and do the necessary adjustments. We assume that the final filenames
are standard across all hosts, so `_data/download_configs.yml` is respected.
## Resources ## Resources
- Join the discussion on Godot Contributors Chat in the [#website](https://chat.godotengine.org/channel/website) - Join the discussion on Godot Contributors Chat in the [#website](https://chat.godotengine.org/channel/website)

View File

@@ -32,31 +32,30 @@ future: true
defaults: defaults:
- scope: - scope:
path: ""
type: "article" type: "article"
values: values:
layout: "article" layout: "article"
og_type: "article" og_type: "article"
- scope: - scope:
path: ""
type: "event" type: "event"
values: values:
layout: "event" layout: "event"
- scope: - scope:
path: ""
type: "showcase" type: "showcase"
values: values:
layout: "showcase-item" layout: "showcase-item"
- scope: - scope:
path: ""
type: "download" type: "download"
values: values:
layout: "download" layout: "download"
- scope: - scope:
path: ""
type: "download_3" type: "download_3"
values: values:
layout: "download-3" layout: "download-3"
- scope:
type: "mirrorlist"
values:
layout: "mirrorlist"
# Plugins # Plugins
plugins: plugins:
@@ -71,56 +70,20 @@ default_lang: "en"
# Pagination (used by the blog) # Pagination (used by the blog)
pagination: pagination:
# Site-wide kill switch, disabled here it doesn't run at all
enabled: true enabled: true
# Set to 'true' to enable pagination debugging. This can be enabled in the site config or only for individual pagination pages
debug: false debug: false
# The default document collection to paginate if nothing is specified ('posts' is default)
collection: "article" collection: "article"
# How many objects per paginated page, used to be `paginate` (default: 0, means all)
per_page: 24 per_page: 24
# The permalink structure for the paginated pages (this can be any level deep)
permalink: "/:num/" # Pages are index.html inside this folder (default)
#permalink: '/page/:num.html' # Pages are simple html files
#permalink: '/page/:num' # Pages are html files, linked jekyll extensionless permalink style.
# Optional the title format for the paginated pages (supports :title for original page title, :num for pagination page number, :max for total number of pages)
title: ":title - Page :num"
# Limit how many pagenated pages to create (default: 0, means all)
limit: 0
# Optional, defines the field that the posts should be sorted on (omit to default to 'date')
sort_field: "date" sort_field: "date"
# Optional, sorts the posts in reverse order (omit to default decending or sort_reverse: true)
sort_reverse: true sort_reverse: true
# Optional, the default category to use, omit or just leave this as 'posts' to get a backwards-compatible behavior (all posts)
category: "posts"
# Optional, the default tag to use, omit to disable
tag: ""
# Optional, the default locale to use, omit to disable (depends on a field 'locale' to be specified in the posts,
# in reality this can be any value, suggested are the Microsoft locale-codes (e.g. en_US, en_GB) or simply the ISO-639 language code )
locale: ""
# Optional,omit or set both before and after to zero to disable.
# Controls how the pagination trail for the paginated pages look like. # Controls how the pagination trail for the paginated pages look like.
trail: trail:
before: 2 before: 2
after: 2 after: 2
# Optional, the default file extension for generated pages (e.g html, json, xml). title: ":title - Page :num"
# Internally this is set to html by default permalink: "/:num/"
extension: html category: "posts"
tag: ""
# Optional, the default name of the index file for generated pages (e.g. 'index.html') locale: ""
# Without file extension
indexpage: "index"
############################################################

View File

@@ -50,4 +50,21 @@ defaults:
aar_library: mono.release.aar aar_library: mono.release.aar
2: 2:
templates: export_templates.tpz
editor:
linux.64: x11.64.zip
linux.32: x11.32.zip
macos.universal: osx.fat.zip
windows.64: win64.exe.zip
windows.32: win32.exe.zip
linux_server.64: linux_server.64.zip
1: 1:
templates: export_templates.tpz
editor:
linux.64: x11.64.zip
linux.32: x11.32.zip
macos.universal: osx32.zip
windows.64: win64.exe.zip
windows.32: win32.exe.zip
linux_server.64: linux_server.64.zip

View File

@@ -0,0 +1,48 @@
hosts:
- name: "github"
title: "Official GitHub Releases mirror"
- name: "github_builder"
title: "Official GitHub Releases mirror"
- name: "tuxfamily"
title: "Official TuxFamily mirror"
defaults:
- name: "4.1"
stable: [ "github", "tuxfamily" ]
preview: [ "github_builder", "tuxfamily" ]
- name: "4.0"
stable: [ "github", "tuxfamily" ]
preview: [ "github_builder", "tuxfamily" ]
- name: "3.6"
stable: [ "github", "tuxfamily" ]
preview: [ "github_builder", "tuxfamily" ]
- name: "3.5"
stable: [ "github", "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "3.4"
stable: [ "github", "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "3.3"
stable: [ "github", "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "3.2"
stable: [ "github", "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "3.1"
stable: [ "github", "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "3.0"
stable: [ "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "2.1"
stable: [ "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "2.0"
stable: [ "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "1.1"
stable: [ "tuxfamily" ]
preview: [ "tuxfamily" ]
- name: "1.0"
stable: [ "tuxfamily" ]
preview: [ "tuxfamily" ]

View File

@@ -2,63 +2,294 @@
flavor: "beta2" flavor: "beta2"
release_date: "14 June 2023" release_date: "14 June 2023"
release_notes: "/article/dev-snapshot-godot-4-1-beta-2/" release_notes: "/article/dev-snapshot-godot-4-1-beta-2/"
releases:
- name: "beta1"
release_date: "8 June 2023"
release_notes: "/article/dev-snapshot-godot-4-1-beta-1/"
- name: "dev4"
release_date: "1 June 2023"
release_notes: "/article/dev-snapshot-godot-4-1-dev-4/"
- name: "dev3"
release_date: "25 May 2023"
release_notes: "/article/dev-snapshot-godot-4-1-dev-3/"
- name: "dev2"
release_date: "09 May 2023"
release_notes: "/article/dev-snapshot-godot-4-1-dev-2/"
- name: "dev1"
release_date: "21 April 2023"
release_notes: "/article/dev-snapshot-godot-4-1-dev-1/"
- name: "4.0.3" - name: "4.0.3"
flavor: "stable" flavor: "stable"
release_date: "19 May 2023" release_date: "19 May 2023"
release_notes: "/article/maintenance-release-godot-4-0-3/" release_notes: "/article/maintenance-release-godot-4-0-3/"
featured: "4" featured: "4"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-3-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-3-rc-1/"
- name: "4.0.2" - name: "4.0.2"
flavor: "stable" flavor: "stable"
release_date: "4 April 2023" release_date: "4 April 2023"
release_notes: "/article/maintenance-release-godot-4-0-2/" release_notes: "/article/maintenance-release-godot-4-0-2/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-2-rc-1/"
- name: "4.0.1" - name: "4.0.1"
flavor: "stable" flavor: "stable"
release_date: "20 March 2023" release_date: "20 March 2023"
release_notes: "/article/maintenance-release-godot-4-0-1/" release_notes: "/article/maintenance-release-godot-4-0-1/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-1-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-1-rc-1/"
- name: "4.0" - name: "4.0"
flavor: "stable" flavor: "stable"
release_date: "1 March 2023" release_date: "1 March 2023"
release_notes: "/article/godot-4-0-sets-sail/" release_notes: "/article/godot-4-0-sets-sail/"
releases:
- name: "rc6"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-rc-6/"
- name: "rc5"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-rc-5/"
- name: "rc4"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-rc-4/"
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-4-0-rc-1/"
- name: "beta17"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-17/"
- name: "beta16"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-16/"
- name: "beta15"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-15/"
- name: "beta14"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-14/"
- name: "beta13"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-13/"
- name: "beta12"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-12/"
- name: "beta11"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-11/"
- name: "beta10"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-10/"
- name: "beta9"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-9/"
- name: "beta8"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-8/"
- name: "beta7"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-7/"
- name: "beta6"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-6/"
- name: "beta5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-5/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-beta-1/"
- name: "alpha17"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-17/"
- name: "alpha16"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-16/"
- name: "alpha15"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-15/"
- name: "alpha14"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-14/"
- name: "alpha13"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-13/"
- name: "alpha12"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-12/"
- name: "alpha11"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-11/"
- name: "alpha10"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-10/"
- name: "alpha9"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-9/"
- name: "alpha8"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-8/"
- name: "alpha7"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-7/"
- name: "alpha6"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-6/"
- name: "alpha5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-5/"
- name: "alpha4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-4/"
- name: "alpha3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-3/"
- name: "alpha2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-2/"
- name: "alpha1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-4-0-alpha-1/"
- name: "3.6" - name: "3.6"
flavor: "beta2" flavor: "beta2"
release_date: "25 May 2023" release_date: "25 May 2023"
release_notes: "/article/dev-snapshot-godot-3-6-beta-2/" release_notes: "/article/dev-snapshot-godot-3-6-beta-2/"
releases:
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-6-beta-1/"
- name: "3.5.2" - name: "3.5.2"
flavor: "stable" flavor: "stable"
release_date: "7 March 2023" release_date: "7 March 2023"
release_notes: "/article/maintenance-release-godot-3-5-2/" release_notes: "/article/maintenance-release-godot-3-5-2/"
featured: "3" featured: "3"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-2-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-2-rc-1/"
- name: "3.5.1" - name: "3.5.1"
flavor: "stable" flavor: "stable"
release_date: "28 September 2022" release_date: "28 September 2022"
release_notes: "/article/maintenance-release-godot-3-5-1/" release_notes: "/article/maintenance-release-godot-3-5-1/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-1-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-1-rc-1/"
- name: "3.5" - name: "3.5"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/godot-3-5-cant-stop-wont-stop/" release_notes: "/article/godot-3-5-cant-stop-wont-stop/"
releases:
- name: "rc8"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-8/"
- name: "rc7"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-7/"
- name: "rc6"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-6/"
- name: "rc5"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-5/"
- name: "rc4"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-4/"
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-3-5-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-5-rc-1/"
- name: "beta5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-5-beta-5/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-5-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-5-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-5-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-5-beta-1/"
- name: "3.4.5" - name: "3.4.5"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-5/" release_notes: "/article/maintenance-release-godot-3-4-5/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-5-rc-1/"
- name: "3.4.4" - name: "3.4.4"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-4/" release_notes: "/article/maintenance-release-godot-3-4-4/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-4-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-4-rc-1/"
- name: "3.4.3" - name: "3.4.3"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-3/" release_notes: "/article/maintenance-release-godot-3-4-3/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-3-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-3-rc-1/"
- name: "3.4.2" - name: "3.4.2"
flavor: "stable" flavor: "stable"
@@ -69,21 +300,70 @@
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-1/" release_notes: "/article/maintenance-release-godot-3-4-1/"
releases:
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-1-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-1-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-1-rc-1/"
- name: "3.4" - name: "3.4"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/godot-3-4-is-released/" release_notes: "/article/godot-3-4-is-released/"
releases:
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-4-rc-1/"
- name: "beta6"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-4-beta-6/"
- name: "beta5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-4-beta-5/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-4-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-4-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-4-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-4-beta-2/"
- name: "3.3.4" - name: "3.3.4"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-4/" release_notes: "/article/maintenance-release-godot-3-3-4/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-4-rc-1/"
- name: "3.3.3" - name: "3.3.3"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-3/" release_notes: "/article/maintenance-release-godot-3-3-3/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-3-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-3-rc-1/"
- name: "3.3.2" - name: "3.3.2"
flavor: "stable" flavor: "stable"
@@ -94,46 +374,262 @@
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-1/" release_notes: "/article/maintenance-release-godot-3-3-1/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-1-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-1-rc-1/"
- name: "3.3" - name: "3.3"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/godot-3-3-has-arrived/" release_notes: "/article/godot-3-3-has-arrived/"
releases:
- name: "rc9"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-rc-9/"
- name: "rc8"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-rc-8/"
- name: "rc7"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-rc-7/"
- name: "rc6"
release_date: ""
release_notes: "/article/release-candidate-godot-3-3-rc-6/"
- name: "rc5"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-4-rc-5/"
- name: "rc4"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-4-rc-4/"
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-4-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-4-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-4-rc-1/"
- name: "beta6"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-4-beta-6/"
- name: "beta5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-4-beta-5/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-4-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-4-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-4-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-4-beta-1/"
- name: "3.2.3" - name: "3.2.3"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-2-3/" release_notes: "/article/maintenance-release-godot-3-2-3/"
releases:
- name: "rc6"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-3-rc-6/"
- name: "rc5"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-3-rc-5/"
- name: "rc4"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-3-rc-4/"
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-3-2-3-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-3-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-3-rc-1/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-3-beta-1/"
- name: "3.2.2" - name: "3.2.2"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-2-2/" release_notes: "/article/maintenance-release-godot-3-2-2/"
releases:
- name: "rc4"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-2-rc-4/"
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-2-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-2-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-2-rc-1/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-2-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-2-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-2-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-2-beta-1/"
- name: "3.2.1" - name: "3.2.1"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-2-1/" release_notes: "/article/maintenance-release-godot-3-2-1/"
releases:
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-1-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-1-rc-1/"
- name: "3.2" - name: "3.2"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/here-comes-godot-3-2/" release_notes: "/article/here-comes-godot-3-2/"
releases:
- name: "rc4"
release_date: ""
release_notes: "/article/release-candidate-3-2-rc-4/"
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-2-rc-1/"
- name: "beta6"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-beta-6/"
- name: "beta5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-beta-5/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-beta-1/"
- name: "alpha3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-alpha-3/"
- name: "alpha2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-alpha-2/"
- name: "alpha1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-2-alpha-1/"
- name: "alpha0-unofficial"
release_date: ""
release_notes: ""
- name: "3.1.2" - name: "3.1.2"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-1-2/" release_notes: "/article/maintenance-release-godot-3-1-2/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-1-2-rc-1/"
- name: "3.1.1" - name: "3.1.1"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-1-1/" release_notes: "/article/maintenance-release-godot-3-1-1/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-1-1-rc-1/"
- name: "3.1" - name: "3.1"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/godot-3-1-released/" release_notes: "/article/godot-3-1-released/"
releases:
- name: "rc3"
release_date: ""
release_notes: "/article/release-candidate-godot-3-1-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/release-candidate-godot-3-1-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/release-candidate-godot-3-1-rc-1/"
- name: "beta11"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-11/"
- name: "beta10"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-10/"
- name: "beta9"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-9/"
- name: "beta8"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-8/"
- name: "beta7"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-7/"
- name: "beta6"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-6/"
- name: "beta5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-5/"
- name: "beta4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-4/"
- name: "beta3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-3/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-beta-1/"
- name: "alpha5"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-alpha-5/"
- name: "alpha4"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-alpha-4/"
- name: "alpha3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-alpha-3/"
- name: "alpha2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-alpha-2/"
- name: "alpha1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-1-alpha-1/"
- name: "3.0.6" - name: "3.0.6"
flavor: "stable" flavor: "stable"
@@ -154,6 +650,16 @@
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-3/" release_notes: "/article/maintenance-release-godot-3-0-3/"
releases:
- name: "rc3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-3-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-3-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-3-rc-1/"
- name: "3.0.2" - name: "3.0.2"
flavor: "stable" flavor: "stable"
@@ -164,16 +670,46 @@
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-1/" release_notes: "/article/maintenance-release-godot-3-0-1/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-1-rc1/"
- name: "3.0" - name: "3.0"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/godot-3-0-released/" release_notes: "/article/godot-3-0-released/"
releases:
- name: "rc3"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-rc-3/"
- name: "rc2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-rc-2/"
- name: "rc1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-rc-1/"
- name: "beta2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-beta-2/"
- name: "beta1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-beta-1/"
- name: "alpha2"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-alpha-2/"
- name: "alpha1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-3-0-alpha-1/"
- name: "2.1.6" - name: "2.1.6"
flavor: "stable" flavor: "stable"
release_date: "" release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-6/" release_notes: "/article/maintenance-release-godot-2-1-6/"
releases:
- name: "rc1"
release_date: ""
release_notes: "/article/dev-snapshot-godot-2-1-6-rc-1/"
- name: "2.1.5" - name: "2.1.5"
flavor: "stable" flavor: "stable"

10
_layouts/mirrorlist.json Normal file
View File

@@ -0,0 +1,10 @@
{
"mirrors": [
{% for mirror in page.version_mirrors %}
{
"name": "{{ mirror.name }}",
"url": "{{ mirror.url }}"
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}

View File

@@ -4,6 +4,7 @@
HOST_TUXFAMILY = "https://downloads.tuxfamily.org/godotengine" HOST_TUXFAMILY = "https://downloads.tuxfamily.org/godotengine"
HOST_GITHUB = "https://github.com/godotengine/godot/releases/download" HOST_GITHUB = "https://github.com/godotengine/godot/releases/download"
HOST_GITHUB_BUILDER = "https://github.com/GodotBuilder/godot-builds/releases/download"
module MakeDownloadFilter module MakeDownloadFilter
def get_download_platforms(input, mono = false) def get_download_platforms(input, mono = false)
@@ -87,9 +88,11 @@ module MakeDownloadFilter
if host == "github" if host == "github"
return "#{HOST_GITHUB}/#{version_name}-#{version_flavor}/#{download_file}" return "#{HOST_GITHUB}/#{version_name}-#{version_flavor}/#{download_file}"
elsif host == "github_builder"
return "#{HOST_GITHUB_BUILDER}/#{version_name}-prerelease-templates/#{download_file}"
elsif host == "tuxfamily" elsif host == "tuxfamily"
if version_flavor == "stable" if version_flavor == "stable"
return "#{HOST_TUXFAMILY}/#{version_name}/#{mono_slug}/#{download_file}" return "#{HOST_TUXFAMILY}/#{version_name}#{mono_slug}/#{download_file}"
else else
return "#{HOST_TUXFAMILY}/#{version_name}/#{version_flavor}#{mono_slug}/#{download_file}" return "#{HOST_TUXFAMILY}/#{version_name}/#{version_flavor}#{mono_slug}/#{download_file}"
end end

View File

@@ -0,0 +1,122 @@
module MirrorlistGeneratorPlugin
class MirrorlistGenerator < Jekyll::Generator
safe true
def generate(site)
site.data["versions"].each do |version|
# Generate files for the current main flavor (stable or latest pre-release).
site.pages << MirrorlistPage.new(site, version, false)
site.pages << MirrorlistPage.new(site, version, true)
# Iterate through previous releases and generate files for them as well.
if version.key?("releases")
version["releases"].each do |release|
prerelease = {
'name' => version["name"],
'flavor' => release["name"]
}
site.pages << MirrorlistPage.new(site, prerelease, false)
site.pages << MirrorlistPage.new(site, prerelease, true)
end
end
end
end
end
class MirrorlistPage < Jekyll::Page
def initialize(site, version, mono)
# Configure static information and path.
@site = site
@base = site.source
@dir = 'mirrorlist'
# Generate the version identificator.
version_name = version["name"]
version_flavor = version["flavor"]
version_id = "#{version_name}.#{version_flavor}"
if version_name == "3.0" # Hack for the only version before the naming scheme has been changed.
version_id = "#{version_name}-#{version_flavor}"
end
if mono
version_id = "#{version_id}.mono"
end
version_bits = version_name.split(".")
version_majmin = "#{version_bits[0]}.#{version_bits[1]}"
# Configure the permalink information.
@basename = version_id
@ext = '.json'
@name = "#{version_id}.json"
# Generate the list of mirrors.
mirrors = []
mirrorlist_configs = site.data["mirrorlist_configs"]
mirrorlist_hosts = mirrorlist_configs["hosts"]
version_defaults = mirrorlist_configs["defaults"].find { |config| config["name"] == version_majmin }
unless version_defaults.nil?
mirror_hosts = version_defaults["stable"]
unless version_flavor == "stable"
mirror_hosts = version_defaults["preview"]
end
mirror_hosts.each do |host_name|
mirror_host = mirrorlist_hosts.find { |host| host["name"] == host_name }
mirror_url = make_download(version, mono, host_name)
unless mirror_url == "#"
mirror = { 'name' => mirror_host["title"], 'url' => mirror_url }
mirrors.push(mirror)
end
end
else
mirror_host = mirrorlist_hosts.find { |host| host["name"] == "tuxfamily" }
mirror_url = make_download(version, mono, "tuxfamily")
unless mirror_url == "#"
mirror = { 'name' => mirror_host["title"], 'url' => mirror_url }
mirrors.push(mirror)
end
end
# Initialize data hash to pass objects to the template.
@data = {
'version_mirrors' => mirrors
}
# Defaults can be configured via the `_config.yml`, same as with normal
# collections.
data.default_proc = proc do |_, key|
site.frontmatter_defaults.find(relative_path, :mirrorlist, key)
end
end
# This is a hack to generate the URL from code. I don't know a better way to hook into Liquid and use its
# registered filters. But it's short and sweet enough for now (or for... ever).
def make_download(version, mono, host)
template = Liquid::Template.parse('{{ version | make_download: "templates", mono, host }}')
assigns = {
'version' => version,
'mono' => mono,
'host' => host
}
# We need to pass the site reference to registers because make_downloads relies on this context being
# present.
return template.render(assigns, registers: { site: @site })
end
def url_placeholders
{
:path => @dir,
:basename => basename,
:output_ext => output_ext,
}
end
end
end

0
build-and-watch.sh Normal file → Executable file
View File