nvfetcher 0.8.0.0 → 0.8.1.0
raw patch · 10 files changed
+41/−12 lines, 10 filesdep ~aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aeson
API changes (from Hackage documentation)
+ NvFetcher.Nvchecker: [_prerelase] :: VersionSource -> Bool
+ NvFetcher.PackageSet: sourceGitHub' :: Attach VersionSource (Text, Text, Bool)
+ NvFetcher.Types: [_prerelase] :: VersionSource -> Bool
+ NvFetcher.Types.Lens: prerelase :: Traversal' VersionSource Bool
- NvFetcher.Nvchecker: GitHubRelease :: Text -> Text -> VersionSource
+ NvFetcher.Nvchecker: GitHubRelease :: Text -> Text -> Bool -> VersionSource
- NvFetcher.Types: GitHubRelease :: Text -> Text -> VersionSource
+ NvFetcher.Types: GitHubRelease :: Text -> Text -> Bool -> VersionSource
Files
- CHANGELOG.md +5/−0
- README.md +1/−0
- app/Config/VersionSource.hs +7/−1
- nvfetcher.cabal +2/−2
- src/NvFetcher.hs +1/−1
- src/NvFetcher/Nvchecker.hs +4/−0
- src/NvFetcher/PackageSet.hs +6/−1
- src/NvFetcher/Types.hs +1/−1
- test/CheckVersionSpec.hs +8/−4
- test/Utils.hs +6/−2
CHANGELOG.md view
@@ -1,5 +1,10 @@ # Revision history for nvfetcher +## 0.8.1.0++* Fix git commit message format by adding an empty line after summary+* Add prerelease option for github version source+ ## 0.8.0.0 There is a major rework on Source File Extract, which is a *breaking change* and requires users to update their configuration files and the usage of generated Nix expressions.
README.md view
@@ -185,6 +185,7 @@ Version source -- how do we track upstream version updates? - `src.github = owner/repo` - the latest github release+ - `src.prerelase = true` - optional config: whether to include prereleases when tracking github releases. You need to set GitHub token in nvchecker keyfile to use this option. - `src.github_tag = owner/repo` - the max github tag, usually used with list options (see below) - `src.pypi = pypi_name` - the latest pypi release - `src.git = git_url` (and an optional `src.branch = git_branch`) - **the latest commit** of a repo
app/Config/VersionSource.hs view
@@ -78,7 +78,13 @@ -------------------------------------------------------------------------------- gitHubReleaseDecoder :: Decoder VersionSource-gitHubReleaseDecoder = uncurry GitHubRelease <$> getFieldWith gitHubNameDecoder "github"+gitHubReleaseDecoder =+ uncurry GitHubRelease+ <$> getFieldWith gitHubNameDecoder "github"+ <*> ( getFieldOpt "prerelease" >>= \case+ Just b -> pure b+ Nothing -> pure False+ ) --------------------------------------------------------------------------------
nvfetcher.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: nvfetcher-version: 0.8.0.0+version: 0.8.1.0 synopsis: Generate nix sources expr for the latest version of packages @@ -26,7 +26,7 @@ common common-options build-depends:- , aeson >=1.5.6 && <2.3+ , aeson >=1.5.6 && <2.4 , aeson-pretty , base >=4.8 && <5 , binary
src/NvFetcher.hs view
@@ -128,7 +128,7 @@ changes <- getVersionChanges let commitMsg = case changes of [x] -> Just $ show x- xs@(_ : _) -> Just $ commitSummary <> "\n" <> unlines (show <$> xs)+ xs@(_ : _) -> Just $ commitSummary <> "\n\n" <> unlines (show <$> xs) [] -> Nothing whenJust commitMsg $ \msg -> do putInfo "Commiting changes"
src/NvFetcher/Nvchecker.hs view
@@ -49,6 +49,7 @@ import NvFetcher.Types.ShakeExtras import NvFetcher.Utils import Prettyprinter (pretty, (<+>))+import Control.Monad (when) -- | Rules of nvchecker nvcheckerRule :: Rules ()@@ -140,6 +141,9 @@ "source" =: "github" "github" =: (_owner <> "/" <> _repo) "use_latest_release" =: "true"+ -- Even include_prereleases = false would require github token+ -- So only set it if it's true+ when _prerelase $ "include_prereleases" =: "true" GitHubTag {..} -> do "source" =: "github" "github" =: (_owner <> "/" <> _repo)
src/NvFetcher/PackageSet.hs view
@@ -52,6 +52,7 @@ -- ** Version sources sourceGitHub,+ sourceGitHub', sourceGitHubTag, sourceGit, sourceGit',@@ -383,7 +384,11 @@ -- | This package follows the latest github release sourceGitHub :: Attach VersionSource (Text, Text)-sourceGitHub e (owner, repo) = src e $ GitHubRelease owner repo+sourceGitHub e (owner, repo) = src e $ GitHubRelease owner repo False++-- | Similar to 'sourceGitHub', but allows to specify whether to include prereleases+sourceGitHub' :: Attach VersionSource (Text, Text, Bool)+sourceGitHub' e (owner, repo, prerelease) = src e $ GitHubRelease owner repo prerelease -- | This package follows the a tag from github --
src/NvFetcher/Types.hs view
@@ -240,7 +240,7 @@ -- | Upstream version source for nvchecker to check data VersionSource- = GitHubRelease {_owner :: Text, _repo :: Text}+ = GitHubRelease {_owner :: Text, _repo :: Text, _prerelase :: Bool} | GitHubTag {_owner :: Text, _repo :: Text, _listOptions :: ListOptions} | Git {_vurl :: Text, _vbranch :: Branch} | Pypi {_pypi :: Text}
test/CheckVersionSpec.hs view
@@ -30,7 +30,7 @@ runNvcheckerRule (Pypi "example") `shouldReturnJust` Version "0.1.0" specifyChan "archpkg" $- runNvcheckerRule (ArchLinux "xfce4-artwork") `shouldReturnJust` Version "0.1.1a_git20110420"+ runNvcheckerRule (ArchLinux "intltool") `shouldReturnJust` Version "0.51.0" specifyChan "aur" $ runNvcheckerRule (Aur "ssed") `shouldReturnJust` Version "3.62"@@ -41,9 +41,13 @@ `shouldReturnJust` Version "ddd0f15ae83993f5cb66a927a28673882e99100b" specifyChan "github latest release" $- runNvcheckerRule (GitHubRelease "harry-sanabria" "ReleaseTestRepo")+ runNvcheckerRule (GitHubRelease "harry-sanabria" "ReleaseTestRepo" False) `shouldReturnJust` Version "release3" + specifyChan "github latest release (including prerelease)" $+ runNvcheckerRule (GitHubRelease "dpeukert" "ReleaseTestRepo" True)+ `shouldReturnJust` Version "v0.0.1-pre"+ specifyChan "github max tag" $ runNvcheckerRule (GitHubTag "harry-sanabria" "ReleaseTestRepo" def) `shouldReturnJust` "second_release"@@ -66,8 +70,8 @@ specifyChan "openvsx" $ runNvcheckerRule (OpenVsx "usernamehw" "indent-one-space") `shouldReturnJust` Version "0.3.0" - specifyChan "repology" $- runNvcheckerRule (Repology "ssed" "aur") `shouldReturnJust` Version "3.62"+ -- specifyChan "repology" $+ -- runNvcheckerRule (Repology "ssed" "aur") `shouldReturnJust` Version "3.62" specifyChan "vsmarketplace" $ runNvcheckerRule (VscodeMarketplace "usernamehw" "indent-one-space") `shouldReturnJust` Version "1.0.0"
test/Utils.hs view
@@ -22,6 +22,7 @@ import NvFetcher.Types import NvFetcher.Types.ShakeExtras import qualified System.Directory.Extra as Extra+import System.Environment (lookupEnv) import qualified System.IO.Extra as Extra import System.Time.Extra import Test.Hspec@@ -71,9 +72,12 @@ aroundShake = aroundShake' mempty def aroundShake' :: Map PackageKey Package -> Config -> SpecWith ActionQueue -> Spec-aroundShake' pkgs config = aroundAll $ \f ->+aroundShake' pkgs config = aroundAll $ \f -> Extra.withTempFile $ \fp -> do+ -- for CI+ githubToken <- lookupEnv "GITHUB_TOKEN"+ writeFile fp $ maybe "" (\token -> "[keys]\n" <> "github = \"" <> token <> "\"\n") githubToken bracket- (newAsyncActionQueue pkgs config)+ (newAsyncActionQueue pkgs config {keyfile = Just fp}) (\(_, runnerTask) -> cancel runnerTask) (\(chan, _) -> f chan)