From cd52a83b241fcda100f95e60ff46e48000e2c827 Mon Sep 17 00:00:00 2001 From: Florent Maitre Date: Tue, 24 Jan 2023 18:35:36 +0100 Subject: [PATCH 1/3] [#258] Update project to deploy documentation on Netlify --- docs/.gitignore | 5 +++ docs/Gemfile | 36 +++++++++++++++ docs/Gemfile.lock | 94 ++++++++++++++++++++++++++++++++++++++++ docs/_data/data_menu.yml | 40 ++++++++--------- 4 files changed, 155 insertions(+), 20 deletions(-) create mode 100644 docs/.gitignore create mode 100644 docs/Gemfile create mode 100644 docs/Gemfile.lock diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..f40fbd8ba --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,5 @@ +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +vendor diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 000000000..6f2d16bff --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,36 @@ +source "https://rubygems.org" +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +gem "jekyll", "~> 4.3.2" +# This is the default theme for new Jekyll sites. You may change this to anything you like. +gem "minima", "~> 2.5" +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +# gem "github-pages", group: :jekyll_plugins +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.12" + gem "jekyll-relative-links" + gem "jekyll-remote-theme" + gem "jekyll-sass-converter", "~> 2.0" +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem +# do not have a Java counterpart. +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 000000000..065eda5ff --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,94 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.0) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.15.5) + forwardable-extended (2.6.0) + http_parser.rb (0.8.0) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + jekyll (4.3.2) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-relative-links (0.7.0) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (2.2.0) + sassc (> 2.0.1, < 3.0) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.1) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (4.0.1) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sassc (2.4.0) + ffi (~> 1.9) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.4.2) + webrick (1.7.0) + +PLATFORMS + ruby + +DEPENDENCIES + http_parser.rb (~> 0.6.0) + jekyll (~> 4.3.2) + jekyll-feed (~> 0.12) + jekyll-relative-links + jekyll-remote-theme + jekyll-sass-converter (~> 2.0) + minima (~> 2.5) + tzinfo (>= 1, < 3) + tzinfo-data + wdm (~> 0.1.1) + +BUNDLED WITH + 2.1.2 diff --git a/docs/_data/data_menu.yml b/docs/_data/data_menu.yml index b800058a5..e4f13f908 100644 --- a/docs/_data/data_menu.yml +++ b/docs/_data/data_menu.yml @@ -2,48 +2,48 @@ toc2: - title: Getting Started subfolderitems: - page: Instructions - url: /ods-android/index.html + url: /index.html - title: Guidelines subfolderitems: - page: Colors - url: /ods-android/guidelines/Colors_docs + url: /guidelines/Colors_docs - page: Typography - url: /ods-android/guidelines/Typography_docs + url: /guidelines/Typography_docs - title: Components subfolderitems: - page: "App bars: bottom" - url: /ods-android/components/AppBarsBottom_docs + url: /components/AppBarsBottom_docs - page: "App bars: top" - url: /ods-android/components/AppBarsTop_docs + url: /components/AppBarsTop_docs - page: Buttons - url: /ods-android/components/Buttons_docs + url: /components/Buttons_docs - page: Cards - url: /ods-android/components/Cards_docs + url: /components/Cards_docs - page: Checkboxes - url: /ods-android/components/Checkboxes_docs + url: /components/Checkboxes_docs - page: Chips - url: /ods-android/components/Chips_docs + url: /components/Chips_docs - page: Dialogs - url: /ods-android/components/Dialogs_docs + url: /components/Dialogs_docs - page: Floating action buttons - url: /ods-android/components/FloatingActionButtons_docs + url: /components/FloatingActionButtons_docs - page: Lists - url: /ods-android/components/Lists_docs + url: /components/Lists_docs - page: "Navigation: bottom" - url: /ods-android/components/NavigationBottom_docs + url: /components/NavigationBottom_docs - page: Progress indicators - url: /ods-android/components/ProgressIndicators_docs + url: /components/ProgressIndicators_docs - page: Radio buttons - url: /ods-android/components/RadioButtons_docs + url: /components/RadioButtons_docs - page: Sliders - url: /ods-android/components/Sliders_docs + url: /components/Sliders_docs - page: Snackbars - url: /ods-android/components/Snackbars_docs + url: /components/Snackbars_docs - page: Switches - url: /ods-android/components/Switches_docs + url: /components/Switches_docs - page: Tabs - url: /ods-android/components/Tabs_docs + url: /components/Tabs_docs - page: Text fields - url: /ods-android/components/TextFields_docs + url: /components/TextFields_docs From c90c0ccdb3eabfc3ce63620fe9ec4ae854b6acaf Mon Sep 17 00:00:00 2001 From: Florent Maitre Date: Fri, 27 Jan 2023 18:21:36 +0100 Subject: [PATCH 2/3] [#258] Add a Gradle task to prepare a new release --- build.gradle.kts | 12 ++--- buildSrc/src/main/kotlin/release.gradle.kts | 51 +++++++++++++++++++++ 2 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 buildSrc/src/main/kotlin/release.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts index 0dcec8e1e..6aa3a3a2f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,9 @@ * / */ -import com.orange.ods.gradle.execute +plugins { + id("release") +} buildscript { repositories { @@ -37,11 +39,3 @@ tasks.register("clean") { group = "cleanup" delete(rootProject.buildDir) } - -tasks.register("tagRelease") { - doLast { - val tag = version.toString() - execute("git", "tag", tag) - execute("git", "push", "origin", tag) - } -} diff --git a/buildSrc/src/main/kotlin/release.gradle.kts b/buildSrc/src/main/kotlin/release.gradle.kts new file mode 100644 index 000000000..f09ba7507 --- /dev/null +++ b/buildSrc/src/main/kotlin/release.gradle.kts @@ -0,0 +1,51 @@ +/* + * + * Copyright 2021 Orange + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * / + */ + +import com.orange.ods.gradle.execute +import java.text.SimpleDateFormat +import java.util.* + +tasks.register("prepareRelease") { + doLast { + val version = project.gradle.startParameter.projectProperties["version"] + if (version == null) { + throw GradleException("Please set the \"version\" project property.") + } + + // Get previous version from gradle.properties + val previousVersion = execute("sed", "-En", "s/^version=(.*)/\\1/p", "gradle.properties").trim() + + // Update version in gradle.properties + execute("sed", "-Ei", "", "s/^(version=).*/\\1$version/", "gradle.properties") + + // Update dependencies in docs/home_content.md and DEVELOP.md + val substituteDependencyArg = "s/(com\\.orange\\.ods\\.android:ods-[^:]*:)[[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+/\\1$version/" + execute("sed", "-Ei", "", substituteDependencyArg, "docs/home_content.md") + execute("sed", "-Ei", "", substituteDependencyArg, "DEVELOP.md") + + // Update unreleased section title in changelog.md + val date = SimpleDateFormat("yyyy-MM-dd").format(Date()) + execute( + "sed", + "-Ei", + "", + "s/^## \\[Unreleased\\].*/## [$version](https:\\/\\/github.com\\/Orange-OpenSource\\/ods-android\\/compare\\/$previousVersion...$version) - $date/", + "changelog.md" + ) + } +} + +tasks.register("tagRelease") { + doLast { + val tag = version.toString() + execute("git", "tag", tag) + execute("git", "push", "origin", tag) + } +} From 17dd80d0c345ea47ace5802f8a8beadfe849c32d Mon Sep 17 00:00:00 2001 From: Florent Maitre Date: Fri, 27 Jan 2023 18:26:07 +0100 Subject: [PATCH 3/3] [#258] Add documentation versioning --- .idea/codeStyles/Project.xml | 3 + buildSrc/src/main/kotlin/release.gradle.kts | 74 +++++++++++++++------ docs/_config.yml | 5 ++ docs/_layouts/main.html | 9 ++- 4 files changed, 67 insertions(+), 24 deletions(-) diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index fc35d2aab..9ddf43779 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -8,6 +8,9 @@ + +