From 14166933c5cc1185b060810895db1227989e1003 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Tue, 9 Feb 2021 15:35:26 +0100 Subject: [PATCH] chore: use standard-version directly instead of sync-version.hs --- .versionrc.js | 18 +++++++++++ package-lock.json | 9 ++++++ package.json | 11 +------ sync-versions.hs | 81 ----------------------------------------------- 4 files changed, 28 insertions(+), 91 deletions(-) create mode 100644 .versionrc.js delete mode 100755 sync-versions.hs diff --git a/.versionrc.js b/.versionrc.js new file mode 100644 index 000000000..16262e6be --- /dev/null +++ b/.versionrc.js @@ -0,0 +1,18 @@ +const standardVersionUpdaterYaml = require.resolve('standard-version-updater-yaml'); + +module.exports = { + scripts: { + // postbump: './sync-versions.hs && git add -- package.yaml', // moved to bumpFiles + postchangelog: 'sed \'s/^### \\[/## [/g\' -i CHANGELOG.md' + }, + bumpFiles: [ + { + filename: 'package.yaml', + updater: standardVersionUpdaterYaml + } + ], + commitUrlFormat: 'https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/{{hash}}', + compareUrlFormat: 'https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/{{previousTag}}...{{currentTag}}', + issueUrlFormat: 'https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/{{id}}', + userUrlFormat: 'https://gitlab2.rz.ifi.lmu.de/{{user}}' +}; diff --git a/package-lock.json b/package-lock.json index 4c4b33028..beb83a639 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19531,6 +19531,15 @@ } } }, + "standard-version-updater-yaml": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/standard-version-updater-yaml/-/standard-version-updater-yaml-1.0.2.tgz", + "integrity": "sha512-hTaNAnsQ7HznYbt489qVPYs4lvZ5q6pVwZJ7kmPMhYmvNzq7hZnQoImTYvEB9hgkx/moBJkqF38Dp82xy+dqvw==", + "dev": true, + "requires": { + "yaml": "^1.10.0" + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", diff --git a/package.json b/package.json index fd3664b4b..583e8abc2 100644 --- a/package.json +++ b/package.json @@ -41,16 +41,6 @@ "git add" ] }, - "standard-version": { - "scripts": { - "postbump": "./sync-versions.hs && git add -- package.yaml", - "postchangelog": "sed 's/^### \\[/## [/g' -i CHANGELOG.md" - }, - "commitUrlFormat": "https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/commit/{{hash}}", - "compareUrlFormat": "https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/compare/{{previousTag}}...{{currentTag}}", - "issueUrlFormat": "https://gitlab2.rz.ifi.lmu.de/uni2work/uni2work/issues/{{id}}", - "userUrlFormat": "https://gitlab2.rz.ifi.lmu.de/{{user}}" - }, "browserslist": [ "defaults" ], @@ -108,6 +98,7 @@ "sass-loader": "^7.3.1", "semver": "^6.3.0", "standard-version": "^9.1.0", + "standard-version-updater-yaml": "^1.0.2", "style-loader": "^0.23.1", "terser-webpack-plugin": "^2.3.8", "tmp": "^0.1.0", diff --git a/sync-versions.hs b/sync-versions.hs deleted file mode 100755 index 3fec57df5..000000000 --- a/sync-versions.hs +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env stack --- stack runghc --package libyaml --package aeson --package unordered-containers --package text - -{-# LANGUAGE OverloadedStrings - , LambdaCase - , PackageImports - , NamedFieldPuns - , RecordWildCards - #-} - -import "libyaml" Text.Libyaml -import Control.Monad.Trans.Resource -import Data.Conduit -import qualified Data.Conduit.List as C - -import qualified Data.Aeson as JSON - -import qualified Data.ByteString as BS -import qualified Data.ByteString.Char8 as CBS -import qualified Data.ByteString.Lazy as LBS - -import qualified Data.HashMap.Lazy as HashMap - -import Data.Text (Text) -import qualified Data.Text as Text -import qualified Data.Text.IO as Text -import qualified Data.Text.Encoding as Text - -import Text.Printf -import System.IO (stderr) - -main :: IO () -main = do - Just packageJSON <- JSON.decode <$> LBS.readFile "package.json" - let - newVersion :: Text - Just (JSON.String newVersion) = HashMap.lookup ("version" :: Text) packageJSON - - updatePackageYaml newVersion - - -updatePackageYaml :: Text -> IO () -updatePackageYaml newVersion = do - (oldVersion, start, end) <- runResourceT . runConduit . (.|) (decodeFileMarked "package.yaml") $ do - awaitUntil $ \case - MarkedEvent{ yamlEvent = EventMappingStart _ _ _ } -> True - _ -> False - awaitUntil $ \case - MarkedEvent{ yamlEvent = EventScalar s _ _ _ } - | s == "version" -> True - _ -> False - _ <- await -- Throw away "version: " - Just MarkedEvent{ yamlEvent = EventScalar oldVersion' _ _ _, .. } <- await - let oldVersion = Text.decodeUtf8 oldVersion' - return (oldVersion, yamlStartMark, yamlEndMark) - - encNewVersion <- runResourceT . runConduit . (.| encode) $ C.sourceList - [ EventStreamStart - , EventDocumentStart - , EventScalar (Text.encodeUtf8 newVersion) NoTag Any Nothing - , EventDocumentEnd - , EventStreamEnd - ] - - hPrintf stderr "package.yaml: %s -> %s\n" oldVersion newVersion - - packageYaml <- BS.readFile "package.yaml" - BS.writeFile "package.yaml" . mconcat $ - [ BS.take (fromIntegral $ yamlIndex start) packageYaml - , Text.encodeUtf8 . Text.strip $ Text.decodeUtf8 encNewVersion - , BS.drop (fromIntegral $ yamlIndex end) packageYaml - ] - where - awaitUntil :: Monad m => (i -> Bool) -> ConduitM i o m () - awaitUntil pred = do - nextIn <- await - case nextIn of - Nothing -> error "Ran out of input in awaitUntil" - Just inp - | pred inp -> leftover inp - Just _ -> awaitUntil pred