diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
index 7ecd11db..b77c2bc8 100644
--- a/.github/workflows/publish.yaml
+++ b/.github/workflows/publish.yaml
@@ -16,9 +16,7 @@ jobs:
go: ${{ steps.gem_version.outputs.new_version }}
steps:
- - uses: actions/checkout@v4
- with:
- show-progress: false
+ - uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
@@ -45,14 +43,12 @@ jobs:
contents: write # needed to be able to tag the release
runs-on: ubuntu-latest
needs: pre
- if: needs.pre.outputs.go == 'true'
+ if: ${{ needs.pre.outputs.go == 'true' }}
steps:
- - uses: actions/checkout@v4
- with:
- show-progress: false
+ - uses: actions/checkout@v3
- - uses: actions/setup-node@v4
+ - uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: 'npm'
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index cd5550d8..de8e8c8d 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -1,11 +1,6 @@
name: Test
-on:
- push:
- branches:
- - main
- pull_request:
- workflow_dispatch:
+on: [push, pull_request]
jobs:
test:
@@ -14,14 +9,12 @@ jobs:
strategy:
matrix:
- ruby: ['3.1', '3.2', '3.3']
+ ruby: ['2.7', '3.2']
steps:
- - uses: actions/checkout@v4
- with:
- show-progress: false
+ - uses: actions/checkout@v3
- - uses: actions/setup-node@v4
+ - uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: 'npm'
diff --git a/.rubocop.yml b/.rubocop.yml
index 42227e8e..f2276a6d 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -3,7 +3,7 @@ inherit_gem:
- config/default.yml
AllCops:
- TargetRubyVersion: 3.1
+ TargetRubyVersion: 2.7
Layout/HeredocIndentation:
Enabled: false
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8d5dd97b..cb7f54be 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,10 +2,6 @@
## Unreleased
-- BREAKING: drop support for end-of-life Ruby versions 2.7 and 3.0. The minimum Ruby version is now 3.1.
-- Update gem dependencies.
-- Declare some missing indirect dependencies to prepare for Ruby 3.4. This also resolves some warnings about this at build time.
-
## 3.5.0
### New features
diff --git a/govuk_tech_docs.gemspec b/govuk_tech_docs.gemspec
index e4cf5e18..7b0035a6 100644
--- a/govuk_tech_docs.gemspec
+++ b/govuk_tech_docs.gemspec
@@ -33,30 +33,26 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = %w[lib]
- spec.required_ruby_version = ">= 3.1.0"
+ spec.required_ruby_version = ">= 2.7.0"
spec.add_dependency "autoprefixer-rails", "~> 10.2"
- spec.add_dependency "base64" # TODO: remove once middleman-sprockets declares this itself.
- spec.add_dependency "bigdecimal" # TODO: remove once activesupport declares this itself.
spec.add_dependency "chronic", "~> 0.10.2"
- spec.add_dependency "csv" # TODO: remove once tilt declares this itself.
- spec.add_dependency "haml", "~> 6.0"
+ spec.add_dependency "haml", "< 6.0.0"
spec.add_dependency "middleman", "~> 4.0"
- spec.add_dependency "middleman-autoprefixer", "~> 2.10"
- spec.add_dependency "middleman-compass", "~> 4.0"
+ spec.add_dependency "middleman-autoprefixer", "~> 2.10.0"
+ spec.add_dependency "middleman-compass", ">= 4.0.0"
spec.add_dependency "middleman-livereload"
spec.add_dependency "middleman-search-gds"
spec.add_dependency "middleman-sprockets", "~> 4.0.0"
- spec.add_dependency "middleman-syntax", "~> 3.4"
- spec.add_dependency "mutex_m" # TODO: remove once activesupport declares this itself.
+ spec.add_dependency "middleman-syntax", "~> 3.2.0"
spec.add_dependency "nokogiri"
spec.add_dependency "openapi3_parser", "~> 0.9.0"
- spec.add_dependency "redcarpet", "~> 3.6"
+ spec.add_dependency "redcarpet", "~> 3.5.1"
spec.add_development_dependency "byebug"
spec.add_development_dependency "capybara", "~> 3.32"
- spec.add_development_dependency "jasmine", "~> 3.5"
+ spec.add_development_dependency "jasmine", "~> 3.5.0"
spec.add_development_dependency "rake", "~> 13.0"
- spec.add_development_dependency "rspec", "~> 3.9"
- spec.add_development_dependency "rubocop-govuk", "~> 4.10"
+ spec.add_development_dependency "rspec", "~> 3.9.0"
+ spec.add_development_dependency "rubocop-govuk", "~> 4.10.0"
end
diff --git a/lib/govuk_tech_docs.rb b/lib/govuk_tech_docs.rb
index 696ddb96..d6491ae2 100644
--- a/lib/govuk_tech_docs.rb
+++ b/lib/govuk_tech_docs.rb
@@ -44,7 +44,7 @@ def self.configure(context, options = {})
renderer: TechDocsHTMLRenderer.new(
with_toc_data: true,
api: true,
- context:,
+ context: context,
),
fenced_code_blocks: true,
tables: true,
diff --git a/lib/govuk_tech_docs/redirects.rb b/lib/govuk_tech_docs/redirects.rb
index 21959f94..7788bf18 100644
--- a/lib/govuk_tech_docs/redirects.rb
+++ b/lib/govuk_tech_docs/redirects.rb
@@ -5,7 +5,7 @@ module GovukTechDocs
class Redirects
include GovukTechDocs::PathHelpers
- LEADING_SLASH = %r{\A/}
+ LEADING_SLASH = %r{\A/}.freeze
def initialize(context)
@context = context
diff --git a/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb b/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb
index 99a5d2e7..36cd6f19 100644
--- a/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb
+++ b/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb
@@ -11,7 +11,7 @@ def tree
@headings.each do |heading|
move_to_depth(heading.size)
- @pointer.children << HeadingTree.new(parent: @pointer, heading:)
+ @pointer.children << HeadingTree.new(parent: @pointer, heading: heading)
end
@tree
diff --git a/lib/govuk_tech_docs/table_of_contents/helpers.rb b/lib/govuk_tech_docs/table_of_contents/helpers.rb
index 8e0d34c8..a4ec3ba5 100644
--- a/lib/govuk_tech_docs/table_of_contents/helpers.rb
+++ b/lib/govuk_tech_docs/table_of_contents/helpers.rb
@@ -12,7 +12,7 @@ module Helpers
def single_page_table_of_contents(html, url: "", max_level: nil)
output = "
\n"
- output += list_items_from_headings(html, url:, max_level:)
+ output += list_items_from_headings(html, url: url, max_level: max_level)
output += "
\n"
output
@@ -36,7 +36,7 @@ def list_items_from_headings(html, url: "", max_level: nil)
end
tree = HeadingTreeBuilder.new(headings).tree
- HeadingTreeRenderer.new(tree, max_level:).html
+ HeadingTreeRenderer.new(tree, max_level: max_level).html
end
def render_page_tree(resources, current_page, config, current_page_html)
diff --git a/package-lock.json b/package-lock.json
index eca53594..f656391b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -287,9 +287,9 @@
}
},
"node_modules/cross-spawn/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true,
"bin": {
"semver": "bin/semver"
@@ -1576,9 +1576,9 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -1642,9 +1642,9 @@
}
},
"node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true,
"bin": {
"semver": "bin/semver"
@@ -2252,9 +2252,9 @@
"dev": true
},
"node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
@@ -2662,9 +2662,9 @@
}
},
"node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -2915,9 +2915,9 @@
},
"dependencies": {
"semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
}
@@ -3889,9 +3889,9 @@
"dev": true
},
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -3949,9 +3949,9 @@
},
"dependencies": {
"semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
}
@@ -4385,9 +4385,9 @@
"dev": true
},
"semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"shebang-command": {
@@ -4722,9 +4722,9 @@
}
},
"word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true
},
"wrappy": {
diff --git a/spec/govuk_tech_docs/source_urls_spec.rb b/spec/govuk_tech_docs/source_urls_spec.rb
index 90d5bfff..b40018c5 100644
--- a/spec/govuk_tech_docs/source_urls_spec.rb
+++ b/spec/govuk_tech_docs/source_urls_spec.rb
@@ -25,7 +25,7 @@
def generate_config(repo, host)
{
tech_docs: {
- host:,
+ host: host,
github_repo: repo,
},
}
@@ -33,8 +33,8 @@ def generate_config(repo, host)
def generate_current_page(title, url)
OpenStruct.new(
- data: OpenStruct.new(title:),
- url:,
+ data: OpenStruct.new(title: title),
+ url: url,
)
end
end
diff --git a/spec/govuk_tech_docs/tech_docs_html_renderer_spec.rb b/spec/govuk_tech_docs/tech_docs_html_renderer_spec.rb
index 47f55d04..55acbb4c 100644
--- a/spec/govuk_tech_docs/tech_docs_html_renderer_spec.rb
+++ b/spec/govuk_tech_docs/tech_docs_html_renderer_spec.rb
@@ -4,7 +4,7 @@
let(:app) { double("app") }
let(:context) { double("context") }
let(:processor) do
- Redcarpet::Markdown.new(described_class.new(context:), tables: true, fenced_code_blocks: true)
+ Redcarpet::Markdown.new(described_class.new(context: context), tables: true, fenced_code_blocks: true)
end
before :each do
@@ -59,7 +59,7 @@ def hello_world
context "without syntax highlighting" do
let(:processor) do
- Redcarpet::Markdown.new(described_class.new(context:), fenced_code_blocks: true)
+ Redcarpet::Markdown.new(described_class.new(context: context), fenced_code_blocks: true)
end
it "sets tab index to 0" do
@@ -78,7 +78,7 @@ def hello_world
renderer_class = described_class.clone.tap do |c|
c.send :include, Middleman::Syntax::RedcarpetCodeRenderer
end
- Redcarpet::Markdown.new(renderer_class.new(context:), fenced_code_blocks: true)
+ Redcarpet::Markdown.new(renderer_class.new(context: context), fenced_code_blocks: true)
end
it "sets tab index to 0" do