packages feed

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 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)