hackage-cli 0.1.0.1 → 0.1.0.2
raw patch · 10 files changed
+66/−69 lines, 10 filesdep +base-compatdep ~Cabaldep ~basedep ~filepathPVP ok
version bump matches the API change (PVP)
Dependencies added: base-compat
Dependency ranges changed: Cabal, base, filepath, optparse-applicative, time, zlib
API changes (from Hackage documentation)
Files
- CHANGELOG.md +17/−5
- hackage-cli.cabal +28/−24
- lib/Distribution/Server/Util/CabalRevisions.hs +11/−5
- src/Main.hs +8/−7
- stack-8.10.7.yaml +0/−16
- stack-9.0.2.yaml +0/−6
- stack-9.2.5.yaml +0/−3
- stack-9.4.4.yaml +0/−3
- stack-9.6.yaml +1/−0
- stack-9.8.yaml +1/−0
CHANGELOG.md view
@@ -1,10 +1,22 @@ # Changelog for hackage-cli +## 0.1.0.2++_Andreas Abel, 2024-07-02_++- Allow revision of `stability` field+ (`hackage-server` issue [#1182](https://github.com/haskell/hackage-server/issues/1182)).+- Print correct revision in `push-cabal --incr-rev`+ (issue [#66](https://github.com/hackage-trustees/hackage-cli/issues/66)).+- Fix for `Cabal-3.12.0.0`.++Builds with `Cabal 3.4 - 3.12` and `GHC 8.2 - 9.10`.+ ## 0.1.0.1 _Andreas Abel, 2023-02-20_ -- Fix for `Cabal-3.9.0.0`+- Fix for `Cabal-3.9.0.0`. Builds with `Cabal 3.4 - 3.9` and `GHC 8.2 - 9.6`. @@ -12,11 +24,11 @@ _Andreas Abel, 2023-01-15_ -- Skip errors when running `add-bound` on several files.- (PR [#42](https://github.com/hackage-trustees/hackage-cli/pull/42))+- Skip errors when running `add-bound` on several files+ (PR [#42](https://github.com/hackage-trustees/hackage-cli/pull/42)). -- If no version range is given for a dependency, interpret it as `-any` rather than _none_ (`<0`).- (PR [#48](https://github.com/hackage-trustees/hackage-cli/pull/48))+- If no version range is given for a dependency, interpret it as `-any` rather than _none_ (`<0`)+ (PR [#48](https://github.com/hackage-trustees/hackage-cli/pull/48)). Builds with `Cabal 3.4 - 3.8` and `GHC 8.2 - 9.4`.
hackage-cli.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: hackage-cli-version: 0.1.0.1+version: 0.1.0.2 synopsis: CLI tool for Hackage description:@@ -18,9 +18,11 @@ -- Supported GHC versions when building with cabal: tested-with: -- Keep in descending order.- GHC == 9.6.0- GHC == 9.4.4- GHC == 9.2.5+ GHC == 9.10.1+ GHC == 9.8.2+ GHC == 9.6.5+ GHC == 9.4.8+ GHC == 9.2.8 GHC == 9.0.2 GHC == 8.10.7 GHC == 8.8.4@@ -28,16 +30,16 @@ GHC == 8.4.4 GHC == 8.2.2 -extra-source-files:+extra-doc-files: CHANGELOG.md README.md++extra-source-files: fixtures/*.diff fixtures/*.cabal -- Supported GHC versions when building with stack:- stack-9.4.4.yaml- stack-9.2.5.yaml- stack-9.0.2.yaml- stack-8.10.7.yaml+ stack-9.8.yaml+ stack-9.6.yaml source-repository head Type: git@@ -50,10 +52,10 @@ ghc-options: -Wall -Wcompat build-depends:- , base >= 4.10.0.0 && < 4.19- , bytestring >= 0.10.4.0 && < 0.12- , Cabal >= 3.4 && < 3.11- , containers >= 0.5.0.0 && < 0.7+ , base >= 4.10.0.0 && < 5+ , bytestring >= 0.10.4.0 && < 0.13+ , Cabal >= 3.4 && < 3.13+ , containers >= 0.5.0.0 && < 0.8 , mtl >= 2.2.2 && < 2.3 || >= 2.3.1 && < 2.4 , pretty ^>= 1.1.2 @@ -71,10 +73,10 @@ , bytestring , Cabal , cabal-revisions- , tasty >= 1.0 && < 1.5+ , tasty >= 1.0 && < 1.6 -- tasty-1.0 for stack-8.2.2.yaml , tasty-golden ^>= 2.3.2- , filepath ^>= 1.4.0.0+ , filepath >= 1.4.0.0 && < 1.6 executable hackage-cli default-language: Haskell2010@@ -109,26 +111,28 @@ , mtl build-depends:- , aeson >= 1.2.4.0 && < 2.2+ , aeson >= 1.2.4.0 && < 2.3 -- aeson-1.2.4.0 for stack-8.2.2.yaml- , deepseq ^>= 1.4.0.0+ , base-compat >= 0.13.0 && < 1+ -- base-compat for applyWhen (added to base in 4.18)+ , deepseq ^>= 1.4.0.0 || ^>= 1.5.0.0 , directory ^>= 1.2.0.1 || ^>= 1.3.0.0- , filepath ^>= 1.4.0.0+ , filepath >= 1.4.0.0 && < 2 , http-io-streams ^>= 0.1.0.0 , io-streams ^>= 1.5.0.1 , microlens >= 0.4.8.3 && < 4.13 , microlens-mtl >= 0.1.11.1 && < 0.3 , microlens-th >= 0.4.1.3 && < 0.5 , netrc ^>= 0.2.0.0- , optparse-applicative >= 0.14 && < 0.18+ , optparse-applicative >= 0.14 && < 0.19 , process-extras ^>= 0.7.4- , semigroups >= 0.18.3 && < 0.21+ , semigroups >= 0.18.3 && < 0.21 , stringsearch ^>= 0.3.6 , tagsoup ^>= 0.14- , tar ^>= 0.5- , text >= 1.2 && < 2.1- , time >= 1.5.0.1 && < 1.13+ , tar >= 0.5 && < 1+ , text >= 1.2 && < 2.2+ , time >= 1.5.0.1 && < 1.15 , unordered-containers ^>= 0.2.7- , zlib ^>= 0.6.1+ , zlib >= 0.6.1 && < 0.8 ghc-options: -Wall -Wcompat -threaded
lib/Distribution/Server/Util/CabalRevisions.hs view
@@ -12,7 +12,7 @@ -- Copyright : Duncan Coutts et al. -- SPDX-License-Identifier: BSD-3-Clause ----- Maintainer : libraries@haskell.org+-- Maintainer : Andreas Abel -- Stability : provisional -- Portability : portable --@@ -178,8 +178,15 @@ checkPackageChecks :: Check GenericPackageDescription checkPackageChecks pkg pkg' =- let checks = checkPackage pkg Nothing- checks' = checkPackage pkg' Nothing+ let checks = checkPackage pkg+-- The API change of checkPackage happened somewhere between 3.10 and 3.12.+#if !MIN_VERSION_Cabal(3,12,0)+ Nothing+#endif+ checks' = checkPackage pkg'+#if !MIN_VERSION_Cabal(3,12,0)+ Nothing+#endif in case checks' \\ checks of [] -> return () newchecks -> fail $ unlines (map ppPackageCheck newchecks)@@ -341,8 +348,7 @@ changesOk "copyright" fromShortText copyrightA copyrightB changesOk "maintainer" fromShortText maintainerA maintainerB changesOk "author" fromShortText authorA authorB- checkSame "The stability field is unused, don't bother changing it."- stabilityA stabilityB+ changesOk "stability" fromShortText stabilityA stabilityB changesOk' Trivial "tested-with" (show . ppTestedWith) testedWithA testedWithB changesOk "homepage" fromShortText homepageA homepageB checkSame "The package-url field is unused, don't bother changing it."
src/Main.hs view
@@ -31,6 +31,7 @@ import qualified Data.ByteString.Search as BSS import Data.Char (isSpace) import Data.Foldable (toList)+import Data.Function.Compat (applyWhen) import qualified Data.List as List import Data.Maybe import Data.Time.Clock.POSIX (getPOSIXTime)@@ -735,18 +736,18 @@ putStrLn $ "Using Hackage credentials for username " ++ show username forM_ optPsCFiles $ \fn -> do- (pkgn,pkgv,xrev) <- pkgDescToPkgIdXrev <$> C.readGenericPackageDescription C.deafening fn+ (pkgn, pkgv, xrev0) <- pkgDescToPkgIdXrev <$> C.readGenericPackageDescription C.deafening fn+ let xrev = applyWhen optPsCIncrRev (+1) xrev0+ putStrLn $ concat [ "Pushing ", show fn , " (", BS8.unpack pkgn, "-", BS8.unpack pkgv, "~", show xrev, ")" , if not optPsCPublish then " [review-mode]" else "", " ..." ] - let editCab | optPsCIncrRev = cabalEditXRev (xrev+1)- | otherwise = id-- rawcab <- editCab <$> BS.readFile fn- (dt,tmp) <- timeIt $ runHConn (hackagePostCabal (username,password) (pkgn,pkgv) rawcab- (if optPsCPublish then WetRun else DryRun))+ rawcab <- applyWhen optPsCIncrRev (cabalEditXRev xrev) <$> BS.readFile fn+ (dt, tmp) <- timeIt $ runHConn $+ hackagePostCabal (username, password) (pkgn, pkgv) rawcab $+ if optPsCPublish then WetRun else DryRun printf "Hackage response was (after %.3f secs):\n" dt putStrLn (replicate 80 '=')
− stack-8.10.7.yaml
@@ -1,16 +0,0 @@-resolver: lts-18.28-compiler: ghc-8.10.7-compiler-check: match-exact--packages:-- .--extra-deps:-- Cabal-3.4.1.0-- brotli-0.0.0.0-- brotli-streams-0.0.0.0-- http-io-streams-0.1.6.0@rev:0-- netrc-0.2.0.0-- xor-0.0.1.0-# For http-io-streams-0.1.6.0@rev:1-# - base64-bytestring-1.2.1.0
− stack-9.0.2.yaml
@@ -1,6 +0,0 @@-resolver: lts-19.33-compiler: ghc-9.0.2-compiler-check: match-exact--packages:-- .
− stack-9.2.5.yaml
@@ -1,3 +0,0 @@-resolver: lts-20.6-compiler: ghc-9.2.5-compiler-check: match-exact
− stack-9.4.4.yaml
@@ -1,3 +0,0 @@-resolver: nightly-2023-01-14-compiler: ghc-9.4.4-compiler-check: match-exact
+ stack-9.6.yaml view
@@ -0,0 +1,1 @@+resolver: lts-22.27
+ stack-9.8.yaml view
@@ -0,0 +1,1 @@+resolver: nightly-2024-07-01