From f884d1d61108d4942dd02c95bf5fd05daeedf47e Mon Sep 17 00:00:00 2001 From: Ed Slocomb Date: Sat, 11 Nov 2023 16:24:28 -0800 Subject: [PATCH] Bump test environment to Ubuntu 22.04 (#242) This also fixes a few test installers: - rustfmt is available via apt-get in 22.04, use that instead of tarball that's no longer available - brittany now installs cleanly in the default haskell ghc/cabal in 22.04, so just use that - perltidy in 22.04 has slightly different output - nixfmt download url changed (now includes OS/arch). There was initially no binary available when nixfmt was updated, but the devs there were kind enough to provide one: https://github.com/serokell/nixfmt/issues/139 This runs a full `make fmt-build` without errors, though it takes a while ;). All tests pass, too. --- CHANGELOG.md | 3 ++- test/formatters/Dockerfile | 2 +- test/formatters/installers/brittany.bash | 6 +----- test/formatters/installers/fourmolu.bash | 6 +++--- test/formatters/installers/nixfmt.bash | 2 +- test/formatters/installers/ormolu.bash | 6 +++--- test/formatters/installers/rustfmt.bash | 6 +----- test/formatters/samplecode/perltidy/out.pl | 6 +++--- 8 files changed, 15 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50e5f96..ffe01b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ The format is based on [Keep a Changelog]. * The new `scripts/pnp-bin.js` script is standalone minified nodejs built from the [`pnp-bin`](https://github.com/PuddleByteComputing/pnp-bin) repo, extracted from apheleia PR [#200]. +* Test environment bumped from Ubuntu 20.04 to 22.04 ### Bugs fixed * `ktlint` would emit log messages into its stdout when formatting, @@ -76,7 +77,7 @@ The format is based on [Keep a Changelog]. * [`rubocop`](https://github.com/rubocop/rubocop) for [ruby](https://www.ruby-lang.org/en/) ([#176]). * [`ruby-standard`](https://github.com/standardrb/standard) for [ruby](https://www.ruby-lang.org/en/) ([#201]) -* [`ruff`](https://github.com/astral-sh/ruff) for +* [`ruff`](https://github.com/astral-sh/ruff) for [python](https://python.org) ([#236]) * [`rufo`](https://github.com/ruby-formatter/rufo) for [Ruby](https://www.ruby-lang.org/en/) ([#177]). diff --git a/test/formatters/Dockerfile b/test/formatters/Dockerfile index 0098cfe..3535642 100644 --- a/test/formatters/Dockerfile +++ b/test/formatters/Dockerfile @@ -1,5 +1,5 @@ # Ubuntu 20.04 LTS supported until April 2025 -FROM ubuntu:20.04 AS common +FROM ubuntu:22.04 AS common WORKDIR /build COPY install-common.bash /build/ diff --git a/test/formatters/installers/brittany.bash b/test/formatters/installers/brittany.bash index 719e198..b6b0699 100644 --- a/test/formatters/installers/brittany.bash +++ b/test/formatters/installers/brittany.bash @@ -1,10 +1,6 @@ # PPA recommended at https://www.haskell.org/cabal/download.html -apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FF3AEACEF6F88286 -echo "deb [arch=amd64] http://ppa.launchpad.net/hvr/ghc/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/brittany.list -apt-get update -apt-get install -y cabal-install-3.4 ghc -ln -s /opt/cabal/bin/cabal /usr/local/bin/ +apt-get install -y ghc cabal-install cabal v2-update cabal v2-install brittany --reorder-goals diff --git a/test/formatters/installers/fourmolu.bash b/test/formatters/installers/fourmolu.bash index 525b1c4..3b78655 100644 --- a/test/formatters/installers/fourmolu.bash +++ b/test/formatters/installers/fourmolu.bash @@ -1,4 +1,4 @@ -apt-get install -y haskell-platform -cabal update -cabal install fourmolu +apt-get install -y ghc cabal-install +cabal v2-update +cabal v2-install fourmolu --reorder-goals cp "${HOME}/.cabal/bin/fourmolu" /usr/local/bin diff --git a/test/formatters/installers/nixfmt.bash b/test/formatters/installers/nixfmt.bash index 213a59b..d489829 100644 --- a/test/formatters/installers/nixfmt.bash +++ b/test/formatters/installers/nixfmt.bash @@ -1,4 +1,4 @@ ver="$(latest_release serokell/nixfmt)" -wget "https://github.com/serokell/nixfmt/releases/download/${ver}/nixfmt" -O /usr/local/bin/nixfmt +wget "https://github.com/serokell/nixfmt/releases/download/${ver}/nixfmt-x86_64-linux" -O /usr/local/bin/nixfmt chmod +x /usr/local/bin/nixfmt diff --git a/test/formatters/installers/ormolu.bash b/test/formatters/installers/ormolu.bash index 2f4a08f..db6c4d4 100644 --- a/test/formatters/installers/ormolu.bash +++ b/test/formatters/installers/ormolu.bash @@ -1,4 +1,4 @@ -apt-get install -y haskell-platform -cabal update -cabal install ormolu +apt-get install -y ghc cabal-install +cabal v2-update +cabal v2-install ormolu --reorder-goals cp "${HOME}/.cabal/bin/ormolu" /usr/local/bin diff --git a/test/formatters/installers/rustfmt.bash b/test/formatters/installers/rustfmt.bash index 7ce08d8..5d30b88 100644 --- a/test/formatters/installers/rustfmt.bash +++ b/test/formatters/installers/rustfmt.bash @@ -1,5 +1 @@ -ver="$(latest_release rust-lang/rustfmt | sed 's/^v//')" - -wget "https://github.com/rust-lang/rustfmt/releases/download/v${ver}/rustfmt_linux-x86_64_v${ver}.tar.gz" -O rustfmt.tar.gz -tar -xf rustfmt.tar.gz -cp rustfmt*/rustfmt /usr/local/bin/ +apt-get install rustfmt -y diff --git a/test/formatters/samplecode/perltidy/out.pl b/test/formatters/samplecode/perltidy/out.pl index 7cc9d40..b22e297 100644 --- a/test/formatters/samplecode/perltidy/out.pl +++ b/test/formatters/samplecode/perltidy/out.pl @@ -5,7 +5,7 @@ while ( read +STDIN, $_, 2048 ) { $c = 142; $t = 255; @t = map { - $_ % 16 + $_ % 16 or $t ^= $c ^= ( $m = ( 11, 10, 116, 100, 11, 122, 20, 100 )[ $_ / 16 % 8 ] ) & 110; $t ^= ( @@ -15,8 +15,8 @@ while ( read +STDIN, $_, 2048 ) { )[ $_ % 8 ] } ( 16 .. 271 ); if ( ( @a = unx "C*", $_ )[20] & 48 ) { - $h = 5; - $_ = unxb24, join "", + $h = 5; + $_ = unxb24, join "", @b = map { xB8, unxb8, chr( $_ ^ $a[ --$h + 84 ] ) } @ARGV; s/...$/1$&/; $d = unxV, xb25, $_;