From 4f17e77a4bcc58f4024e8ee5e4ff085e63e09fb3 Mon Sep 17 00:00:00 2001 From: Jakub Chrzanowski Date: Mon, 7 Mar 2022 13:27:57 +0100 Subject: [PATCH] Android Studio Releases List: content reformatting --- .../scripts/android_studio_releases.main.kts | 98 +++++++------------ topics/_generated/android_studio_releases.md | 36 +++++-- topics/_generated/android_studio_releases.xml | 2 +- .../android_studio_releases_list.md | 7 ++ 4 files changed, 71 insertions(+), 72 deletions(-) diff --git a/.github/scripts/android_studio_releases.main.kts b/.github/scripts/android_studio_releases.main.kts index ee2ee6004..82ee819a2 100755 --- a/.github/scripts/android_studio_releases.main.kts +++ b/.github/scripts/android_studio_releases.main.kts @@ -27,6 +27,13 @@ val RELEASES_FILE_PATH_MD = "topics/_generated/android_studio_releases.md" val RELEASES_FILE_PATH_XML = "topics/_generated/android_studio_releases.xml" val INTELLIJ_RELEASES = "https://www.jetbrains.com/intellij-repository/releases/" val ANDROID_STUDIO_HOST = "https://developer.android.com" +val CHANNEL_BADGES_LIST = """ + [release]: https://img.shields.io/badge/-release-blue?style=flat-square + [patch]: https://img.shields.io/badge/-patch-orange?style=flat-square + [rc]: https://img.shields.io/badge/-rc-red?style=flat-square + [beta]: https://img.shields.io/badge/-beta-darkred?style=flat-square + [canary]: https://img.shields.io/badge/-canary-lightgrey?style=flat-square +""" val platformBuildToVersionMapping = INTELLIJ_RELEASES.fetch { content -> Jsoup.parse(content, "").select("h2:contains(com.jetbrains.intellij.idea) + table tbody tr").mapNotNull { tr -> @@ -80,74 +87,39 @@ frameUrl.fetch { content -> }.also { Persister().write(it, contentFile) }.also { (_, items) -> - ("" + - """ - + (""" + + """ + items.groupBy { SemVer.parse(it.version).major }.entries.joinToString("\n\n") { + """ + ## ${it.key}.x + ${it.value.renderTable()} + """ + } + """ + $CHANNEL_BADGES_LIST + - """.trimIndent() + - - items.groupBy { - SemVer.parse(it.version).major - }.entries.joinToString("\n\n") { entry -> - """ - ## ${entry.key}.x - - | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | - |--------------|:-------:|--------------|---------|-----------------------| - - """.trimIndent() + entry.value.sortedByDescending { - SemVer.parse(it.version) - }.joinToString("\n") { - val name = it.name.removePrefix("Android Studio").trim() - val channel = it.channel.lowercase().run { "![$this][$this]" } - val date = it.date - val version = "${it.version} (${it.build})" - val platform = "${it.platformVersion} (${it.platformBuild})" - - "| $name | $channel | $date | $version | $platform |" - } - } + - - """ - - - [release]: https://img.shields.io/badge/-release-blue?style=flat-square - [patch]: https://img.shields.io/badge/-patch-orange?style=flat-square - [rc]: https://img.shields.io/badge/-rc-red?style=flat-square - [beta]: https://img.shields.io/badge/-beta-darkred?style=flat-square - [canary]: https://img.shields.io/badge/-canary-lightgrey?style=flat-square - - - - - - - | Release Name | Release Date | IntelliJ IDEA Version | - |--------------|--------------|-----------------------| - - """.trimIndent() + - - items.distinctBy { it.version }.take(5).joinToString("\n") { - val name = it.name.removePrefix("Android Studio").trim() - val platform = "${it.platformVersion} (${it.platformBuild})" - - "| $name | ${it.date} | $platform |" - } + - - """ - - - - - """.trimIndent() - - ).let { - file(RELEASES_FILE_PATH_MD).writeText(it) - } + + ${items.distinctBy(Item::version).take(5).renderTable()} + $CHANNEL_BADGES_LIST + + """).split("\n").joinToString("\n", transform = String::trim).let(file(RELEASES_FILE_PATH_MD)::writeText) } } +fun List.renderTable() = """ + | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | + |--------------|:-------:|--------------|---------|-----------------------| +""" + sortedByDescending { SemVer.parse(it.version) }.joinToString("\n") { + val name = it.name.removePrefix("Android Studio").trim() + val channel = it.channel.lowercase().run { "![$this][$this]" } + val date = it.date + val version = "${it.version} (${it.build})" + val platform = "${it.platformVersion} (${it.platformBuild})" + + "| $name | $channel | $date | $version | $platform |" +} + fun String.fetch(block: (String) -> T) = URL(this).openStream().use { inputStream -> block(inputStream.readBytes().toString(Charsets.UTF_8)) } diff --git a/topics/_generated/android_studio_releases.md b/topics/_generated/android_studio_releases.md index 89cdd597d..7493bf23c 100644 --- a/topics/_generated/android_studio_releases.md +++ b/topics/_generated/android_studio_releases.md @@ -1,7 +1,9 @@ + ## 2021.x + | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | |--------------|:-------:|--------------|---------|-----------------------| | Dolphin (2021.3.1) Canary 5 | ![canary][canary] | March 3, 2022 | 2021.3.1 (AI-213.6777.52.2113.8233036) | 2021.3.2 (213.6777.52) | @@ -42,8 +44,11 @@ | Bumblebee (2021.1.1) Canary 2 | ![canary][canary] | June 7, 2021 | 2021.1.1 (AI-211.6222.4.2111.7407564) | 2020.3.4 (211.6222.4) | | Bumblebee (2021.1.1) Canary 1 | ![canary][canary] | May 18, 2021 | 2021.1.1 (AI-203.7717.56.2111.7361063) | 2020.3.3 (203.7717.56) | + + ## 2020.x + | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | |--------------|:-------:|--------------|---------|-----------------------| | Arctic Fox (2020.3.1) Patch 4 | ![patch][patch] | December 8, 2021 | 2020.3.1 (AI-203.7717.56.2031.7935034) | 2020.3.3 (203.7717.56) | @@ -73,8 +78,11 @@ | 2020.3.1 Canary 2 | ![canary][canary] | December 3, 2020 | 2020.3.1 (AI-202.7319.50.2031.7006259) | 2020.2.2 (202.7319.50) | | 2020.3.1 Canary 1 | ![canary][canary] | December 1, 2020 | 2020.3.1 (AI-202.7319.50.2031.6983675) | 2020.2.2 (202.7319.50) | + + ## 4.x + | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | |--------------|:-------:|--------------|---------|-----------------------| | 4.2.2 | ![release][release] | June 30, 2021 | 4.2.2 (AI-202.7660.26.42.7486908) | 2020.2.3 (202.7660.26) | @@ -144,8 +152,11 @@ | 4.0 Canary 2 | ![canary][canary] | November 7, 2019 | 4.0 (AI-192.6817.14.36.5984562) | 2019.2.3 (192.6817.14) | | 4.0 Canary 1 | ![canary][canary] | October 23, 2019 | 4.0 (AI-192.6817.14.36.5959023) | 2019.2.3 (192.6817.14) | + + ## 3.x + | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | |--------------|:-------:|--------------|---------|-----------------------| | 3.6.3 | ![release][release] | April 17, 2020 | 3.6.3 (AI-192.7142.36.36.6392135) | 2019.2.4 (192.7142.36) | @@ -310,8 +321,11 @@ | 3.0 Canary 2 | ![canary][canary] | May 26, 2017 | 3.0 (AI-171.4041253) | 2017.1.0 (171.4041.0) | | 3.0 Canary 1 | ![canary][canary] | May 17, 2017 | 3.0 (AI-171.4010489) | 2017.1.0 (171.4010.0) | + + ## 2.x + | Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | |--------------|:-------:|--------------|---------|-----------------------| | 2.4 Preview 7 | ![preview][preview] | April 28, 2017 | 2.4 (AI-171.3934896) | 2017.1.0 (171.3934.0) | @@ -321,23 +335,29 @@ | 2.3.3 | ![release][release] | June 8, 2017 | 2.3.3 (AI-162.4069837) | 2016.2.5 (162.4069.0) | | 2.3.2 | ![release][release] | May 11, 2017 | 2.3.2 (AI-162.3934792) | 2016.2.5 (162.3934.0) | + [release]: https://img.shields.io/badge/-release-blue?style=flat-square [patch]: https://img.shields.io/badge/-patch-orange?style=flat-square [rc]: https://img.shields.io/badge/-rc-red?style=flat-square [beta]: https://img.shields.io/badge/-beta-darkred?style=flat-square [canary]: https://img.shields.io/badge/-canary-lightgrey?style=flat-square - -| Release Name | Release Date | IntelliJ IDEA Version | -|--------------|--------------|-----------------------| -| Dolphin (2021.3.1) Canary 5 | March 3, 2022 | 2021.3.2 (213.6777.52) | -| Chipmunk (2021.2.1) Beta 3 | February 28, 2022 | 2021.2.4 (212.5712.43) | -| Bumblebee (2021.1.1) Patch 2 | February 23, 2022 | 2021.1.3 (211.7628.21) | -| Arctic Fox (2020.3.1) Patch 4 | December 8, 2021 | 2020.3.3 (203.7717.56) | -| 4.2.2 | June 30, 2021 | 2020.2.3 (202.7660.26) | +| Release Name | Channel | Release Date | Version | IntelliJ IDEA Version | +|--------------|:-------:|--------------|---------|-----------------------| +| Dolphin (2021.3.1) Canary 5 | ![canary][canary] | March 3, 2022 | 2021.3.1 (AI-213.6777.52.2113.8233036) | 2021.3.2 (213.6777.52) | +| Chipmunk (2021.2.1) Beta 3 | ![beta][beta] | February 28, 2022 | 2021.2.1 (AI-212.5712.43.2112.8184640) | 2021.2.4 (212.5712.43) | +| Bumblebee (2021.1.1) Patch 2 | ![patch][patch] | February 23, 2022 | 2021.1.1 (AI-211.7628.21.2111.8193401) | 2021.1.3 (211.7628.21) | +| Arctic Fox (2020.3.1) Patch 4 | ![patch][patch] | December 8, 2021 | 2020.3.1 (AI-203.7717.56.2031.7935034) | 2020.3.3 (203.7717.56) | +| 4.2.2 | ![release][release] | June 30, 2021 | 4.2.2 (AI-202.7660.26.42.7486908) | 2020.2.3 (202.7660.26) | + +[release]: https://img.shields.io/badge/-release-blue?style=flat-square +[patch]: https://img.shields.io/badge/-patch-orange?style=flat-square +[rc]: https://img.shields.io/badge/-rc-red?style=flat-square +[beta]: https://img.shields.io/badge/-beta-darkred?style=flat-square +[canary]: https://img.shields.io/badge/-canary-lightgrey?style=flat-square diff --git a/topics/_generated/android_studio_releases.xml b/topics/_generated/android_studio_releases.xml index b9caa5c20..4b3a537db 100644 --- a/topics/_generated/android_studio_releases.xml +++ b/topics/_generated/android_studio_releases.xml @@ -1,4 +1,4 @@ - + Android Studio Dolphin (2021.3.1) Canary 5 AI-213.6777.52.2113.8233036 diff --git a/topics/products/androidstudio/android_studio_releases_list.md b/topics/products/androidstudio/android_studio_releases_list.md index 7e4a80ebf..6ba19b1cc 100644 --- a/topics/products/androidstudio/android_studio_releases_list.md +++ b/topics/products/androidstudio/android_studio_releases_list.md @@ -2,4 +2,11 @@ +This page contains a complete list of the Android Studio releases with the relevant IntelliJ IDEA release version specified. + +Android Studio releases are grouped by major versions. +Each entry specifies the exact release channel (like a canary, beta, RC, release, patch), release date, and exact IDE version with build number for the actual IDE and the IntelliJ IDEA platform that Android Studio is based on. + +To get an insight on how to develop a plugin for Android Studio, visit the [Android Studio Plugin Development](android_studio.md) section. +