Hi, the small feature implemented by the attached patches could make it more convenient for people to quickly and easily contribute to hackage packages.
Do you want me to open a ticket for this or can you appl yit right away? Thanks, Joachim 2 patches for repository http://darcs.haskell.org/cabal-install: Sun Nov 7 12:35:32 CET 2010 Joachim Breitner <m...@joachim-breitner.de> * Add a new checkout Command Given a package name, this uses the SourceRepo field of the newest versionf of that pacakge to figure out the repository location and calls the right VCS invocation. Sun Nov 7 12:43:35 CET 2010 Joachim Breitner <m...@joachim-breitner.de> * Add a --dry-run flag to cabal checkout
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 New patches: [Add a new checkout Command Joachim Breitner <m...@joachim-breitner.de>**20101107113532 Ignore-this: 73d20242407e76b84dd1a1b8fe9e01e2 Given a package name, this uses the SourceRepo field of the newest versionf of that pacakge to figure out the repository location and calls the right VCS invocation. ] { addfile ./Distribution/Client/Checkout.hs hunk ./Distribution/Client/Checkout.hs 1 +----------------------------------------------------------------------------- +-- | +-- Module : Distribution.Client.Fetch +-- Copyright : (c) David Himmelstrup 2005 +-- License : BSD-like +-- +-- Maintainer : lem...@gmail.com +-- Stability : provisional +-- Portability : portable +-- +-- +----------------------------------------------------------------------------- +module Distribution.Client.Checkout ( + + -- * Commands + checkout + ) where + +import Distribution.Client.Types + ( UnresolvedDependency (..), AvailablePackage(..) + , AvailablePackageDb(..), Repo(..) + ) +import Distribution.Client.IndexUtils as IndexUtils + ( getAvailablePackages ) +import Distribution.Client.Setup + ( CheckoutFlags(..) ) + +import Distribution.Package + ( packageVersion, Dependency(..) ) +import qualified Distribution.PackageDescription as Available +import qualified Distribution.Client.PackageIndex as PackageIndex +import Distribution.Simple.Utils + ( die, notice, comparing ) +import Distribution.Text + ( display ) +import Distribution.Verbosity + ( Verbosity ) + +import Data.List + ( intercalate, maximumBy, minimumBy) +import System.Cmd + ( rawSystem ) + +checkout :: Verbosity + -> [Repo] + -> CheckoutFlags + -> [UnresolvedDependency] --FIXME: just package names? or actually use the constraint + -> IO () +checkout verbosity _ _ [] = + notice verbosity "No packages requested. Nothing to do." + +checkout verbosity repos _ [UnresolvedDependency (Dependency name _) _ ] = do + AvailablePackageDb available _ <- getAvailablePackages verbosity repos + let pkgs = PackageIndex.lookupPackageName available name + let pkg = Available.packageDescription $ packageDescription $ maximumBy (comparing packageVersion) pkgs + repo <- selectSourceRepo pkg + case fetchCommand repo of + Nothing -> die $ "No repository known for package " ++ display (Available.package pkg) + Just (cmd,args) -> do + notice verbosity $ "Running " ++ intercalate " " (cmd:args) + _ <- rawSystem cmd args + return () + +checkout _ _ _ _ = + die "More than one packages given" + +selectSourceRepo :: Available.PackageDescription -> IO Available.SourceRepo +selectSourceRepo Available.PackageDescription{ Available.package = pn, Available.sourceRepos = [] } = + die $ "No repository known for package " ++ display pn +selectSourceRepo Available.PackageDescription{ Available.sourceRepos = repos } = + return $ minimumBy (comparing Available.repoKind) repos + +fetchCommand :: Available.SourceRepo -> Maybe (String,[String]) +fetchCommand r = do + ty <- Available.repoType r + url <- Available.repoLocation r + case ty of + Available.Darcs -> Just $ ("darcs",["get",url]) + Available.Git -> Just $ ("git",["clone",url]) + Available.SVN -> Just $ ("svn",["checkout",url]) + Available.CVS -> do + m <- Available.repoModule r + Just $ ("cvs",["-d",url,m]) + Available.Mercurial -> Just $ ("hg",["clone",url]) + Available.Bazaar -> Just $ ("bzr",["branch",url]) + _ -> Just $ (display ty,[url]) + hunk ./Distribution/Client/Setup.hs 23 , updateCommand , upgradeCommand , infoCommand, InfoFlags(..) + , checkoutCommand, CheckoutFlags(..) , fetchCommand, FetchFlags(..) , checkCommand , uploadCommand, UploadFlags(..) hunk ./Distribution/Client/Setup.hs 508 } where combine field = field a `mappend` field b +-- ------------------------------------------------------------ +-- * Checkout flags +-- ------------------------------------------------------------ + +data CheckoutFlags = CheckoutFlags { + checkoutVerbosity :: Flag Verbosity + } + +defaultCheckoutFlags :: CheckoutFlags +defaultCheckoutFlags = CheckoutFlags { + checkoutVerbosity = toFlag normal + } + +checkoutCommand :: CommandUI CheckoutFlags +checkoutCommand = CommandUI { + commandName = "checkout", + commandSynopsis = "Creates a checkout of the packages' development repository", + commandDescription = Nothing, + commandUsage = usagePackages "checkout", + commandDefaultFlags = defaultCheckoutFlags, + commandOptions = \_ -> [ + optionVerbosity checkoutVerbosity (\v flags -> flags { checkoutVerbosity = v }) + ] + } + +instance Monoid CheckoutFlags where + mempty = defaultCheckoutFlags + mappend a b = CheckoutFlags { + checkoutVerbosity = combine checkoutVerbosity + } + where combine field = field a `mappend` field b + -- ------------------------------------------------------------ -- * Install flags -- ------------------------------------------------------------ hunk ./Main.hs 27 , updateCommand , ListFlags(..), listCommand , InfoFlags(..), infoCommand + , CheckoutFlags(..), checkoutCommand , UploadFlags(..), uploadCommand , InitFlags, initCommand , reportCommand hunk ./Main.hs 51 import Distribution.Client.Config ( SavedConfig(..), loadConfig, defaultConfigFile ) import Distribution.Client.List (list, info) +import Distribution.Client.Checkout (checkout) import Distribution.Client.Install (install, upgrade) import Distribution.Client.Configure (configure) import Distribution.Client.Update (update) hunk ./Main.hs 133 ,infoCommand `commandAddAction` infoAction ,fetchCommand `commandAddAction` fetchAction ,unpackCommand `commandAddAction` unpackAction + ,checkoutCommand `commandAddAction` checkoutAction ,checkCommand `commandAddAction` checkAction ,sdistCommand `commandAddAction` sdistAction ,uploadCommand `commandAddAction` uploadAction hunk ./Main.hs 245 infoFlags [ UnresolvedDependency pkg [] | pkg <- pkgs ] +checkoutAction :: CheckoutFlags -> [String] -> GlobalFlags -> IO () +checkoutAction checkoutFlags extraArgs globalFlags = do + pkgs <- either die return (parsePackageArgs extraArgs) + let verbosity = fromFlag (checkoutVerbosity checkoutFlags) + config <- loadConfig verbosity (globalConfigFile globalFlags) mempty + let globalFlags' = savedGlobalFlags config `mappend` globalFlags + checkout verbosity + (globalRepos globalFlags') + checkoutFlags + [ UnresolvedDependency pkg [] | pkg <- pkgs ] + + updateAction :: Flag Verbosity -> [String] -> GlobalFlags -> IO () updateAction verbosityFlag extraArgs globalFlags = do unless (null extraArgs) $ do } [Add a --dry-run flag to cabal checkout Joachim Breitner <m...@joachim-breitner.de>**20101107114335 Ignore-this: 3c0ce431f3ea84073d6fa0ab570d52f0 ] { hunk ./Distribution/Client/Checkout.hs 34 import qualified Distribution.Client.PackageIndex as PackageIndex import Distribution.Simple.Utils ( die, notice, comparing ) +import Distribution.Simple.Setup + ( fromFlag ) import Distribution.Text ( display ) import Distribution.Verbosity hunk ./Distribution/Client/Checkout.hs 54 checkout verbosity _ _ [] = notice verbosity "No packages requested. Nothing to do." - -checkout verbosity repos _ [UnresolvedDependency (Dependency name _) _ ] = do +checkout verbosity repos flags [UnresolvedDependency (Dependency name _) _ ] = do AvailablePackageDb available _ <- getAvailablePackages verbosity repos let pkgs = PackageIndex.lookupPackageName available name let pkg = Available.packageDescription $ packageDescription $ maximumBy (comparing packageVersion) pkgs hunk ./Distribution/Client/Checkout.hs 62 case fetchCommand repo of Nothing -> die $ "No repository known for package " ++ display (Available.package pkg) Just (cmd,args) -> do - - notice verbosity $ "Running " ++ intercalate " " (cmd:args) - - _ <- rawSystem cmd args - - return () + if dryRun + then + notice verbosity $ "Would run " ++ intercalate " " (cmd:args) + else do + notice verbosity $ "Running " ++ intercalate " " (cmd:args) + _ <- rawSystem cmd args + return () + where + dryRun = fromFlag (checkoutDryRun flags) checkout _ _ _ _ = die "More than one packages given" hunk ./Distribution/Client/Setup.hs 514 data CheckoutFlags = CheckoutFlags { checkoutVerbosity :: Flag Verbosity + , checkoutDryRun :: Flag Bool } defaultCheckoutFlags :: CheckoutFlags hunk ./Distribution/Client/Setup.hs 520 defaultCheckoutFlags = CheckoutFlags { checkoutVerbosity = toFlag normal + , checkoutDryRun = toFlag False } checkoutCommand :: CommandUI CheckoutFlags hunk ./Distribution/Client/Setup.hs 530 commandDescription = Nothing, commandUsage = usagePackages "checkout", commandDefaultFlags = defaultCheckoutFlags, - - commandOptions = \_ -> [ - - optionVerbosity checkoutVerbosity (\v flags -> flags { checkoutVerbosity = v }) + commandOptions = \_ -> + [ optionVerbosity checkoutVerbosity (\v flags -> flags { checkoutVerbosity = v }) + , option [] ["dry-run"] + "Do not check out the repo, but show which command would have been run" + checkoutDryRun (\v flags -> flags { checkoutDryRun = v }) + trueArg ] } hunk ./Distribution/Client/Setup.hs 543 mempty = defaultCheckoutFlags mappend a b = CheckoutFlags { checkoutVerbosity = combine checkoutVerbosity + , checkoutDryRun = combine checkoutDryRun } where combine field = field a `mappend` field b } Context: [Add an extra note about the http proxy decompression issue Duncan Coutts <dun...@haskell.org>**20101027095034 Ignore-this: d5ac6be96ae78a92f93cf56a9e7b3ccb ] [Use "maybeDecompress" to handle broken proxies that transparenty decompress network streams. Closes #622, #686. Cabal update could fail in some cases, see http://trac.haskell.org/http/ticket/109283 Dmitry Astapov <dasta...@gmail.com>**20101026212606 Ignore-this: 3686236834c6cb56b3a754c36a8d7305 ] [Added GZipUtils to handle .tar files with the same code as .tar.gz Dmitry Astapov <dasta...@gmail.com>**20101026202343 Ignore-this: bef7a20f60de2298fc60759f1ca298d9 ] [Update to use Cabal-1.10.x Duncan Coutts <dun...@haskell.org>**20101016192816 Ignore-this: 86d2b4bd91fe1c33e095b06438f6f972 ] [Add a TODO about fetch --constraint flags Duncan Coutts <dun...@haskell.org>**20100901210351 Ignore-this: 973318ae9ebc87c095935493c446a39d ] [Simplify the bash command completion Duncan Coutts <dun...@haskell.org>**20101010204158 Ignore-this: 6398703acc0702c18141da4ce09d20db Fixes #741. Patch contributed by Jan Braun <janbr...@gmx.net> ] [Do not add lower case .hs files as modules in cabal init Duncan Coutts <dun...@haskell.org>**20100614213536 Ignore-this: 622461952f03fd6f80f0037b7336a676 There's still something wrong with the recursive dir traversal. It fails in some large cases. ] [Disable cabal upgrade and add cabal install --upgrade-dependencies Duncan Coutts <dun...@haskell.org>**20100531130306 Ignore-this: 6469bf32fad573bf3a5c2340bd384ef6 cabal upgrade now gives an error message telling people to use install or, if they know what they're doing, install --upgrade-dependencies ] [Bump version to 0.9.2 Duncan Coutts <dun...@haskell.org>**20100531121422 Ignore-this: 219c5a2d27e6aaa9639ec88265f3a40f ] [Minor tweaks in haddock code Duncan Coutts <dun...@haskell.org>**20100528200326 Ignore-this: 170fda28b6b709efc6c5efd171317e83 ] [Use new simplistic package resolver for cabal unpack Duncan Coutts <dun...@haskell.org>**20100528011523 Ignore-this: 85496633aa154e3601633ea9c6f43038 ] [Add cabal fetch --no-deps and --dry-run flags Duncan Coutts <dun...@haskell.org>**20100528003508 Ignore-this: adfaf937df9f81bdc489c8163651d588 Allows fetching one or more packages but without fetching their dependencies and thus not requiring that a consistent install plan can be found. On the other hand --no-deps means that there is no guarantee that the fetched packages can actually be installed. ] [Use the simplistic available package resolver in cabal fetch Duncan Coutts <dun...@haskell.org>**20100518125509 Ignore-this: 5a1caa0e64772c61dfd71b3567c6b218 Not yet connected up to the user interface. ] [Add a simplistic resolver for available packages that ignores dependencies Duncan Coutts <dun...@haskell.org>**20100518125357 Ignore-this: a31605572aa4485898422a9d29aa6630 Suitable for cabal fetch/unpack but not for installation. ] [Rearrange dependency resolver code slightly Duncan Coutts <dun...@haskell.org>**20100517111624 Ignore-this: ed0d580800ccee9b1065acb559727f3f ] [In fetch code, move dep resolution into separate function Duncan Coutts <dun...@haskell.org>**20100517111336 Ignore-this: 860dfe33f51c1840afb61987e68b27d2 ] [Add initial internal support for more kinds of available package Duncan Coutts <dun...@haskell.org>**20100511030941 Ignore-this: 74c25c42c83819c38608aed18c5ab214 Previously only named packages from a remote package archive, or the unpacked package in the current directory. Now also add unpacked packages in particular directories, local tarballs and remote tarballs. No support in the user interface or dep planning yet. ] [Use non-Char8 ByteString.readFile for reading 00-index.tar.gz Duncan Coutts <dun...@haskell.org>**20100117113849 Ignore-this: b19b19959b7915c202c31337ce2084bc Was showing up on windows as an error decompressing after cabal update. Thanks to Tamar Christina for reporting and helping track down the bug. ] [Remove redundant dry-run support from world file code Duncan Coutts <dun...@haskell.org>**20100510054824 Ignore-this: fbb943e80a9a54673cbdb1805218bd80 ] [Bump version to 0.9.1 Duncan Coutts <dun...@haskell.org>**20100510034013 Ignore-this: 200668c3328194ea707ae61d0d64aa3c New world file feature ] [Workaround for 'cabal install world' problem with empty world file Duncan Coutts <dun...@haskell.org>**20100510033051 Ignore-this: e5bd44421b734dc3246d43d3ed8c17d1 The current dep resolver does not like an empty set of targets along with a non-empty set of constraints. ] [Update a coupld copyright and maintainer notes Duncan Coutts <dun...@haskell.org>**20100510032848 Ignore-this: bdcc380fc8d631e7ff0f2275bd03b81e ] [A bunch of TODOs for the Install module Duncan Coutts <dun...@haskell.org>**20100510032756 Ignore-this: 41711e805de2e5052a8b647722215857 ] [Misc minor tweaks in Main Duncan Coutts <dun...@haskell.org>**20100510032736 Ignore-this: 83ec8d4121c0db0327d14e6058feaf6e ] [Update world file entries ignoring version constraints Duncan Coutts <dun...@haskell.org>**20100510032457 Ignore-this: aa8134bb28d56a32906223a60838f8af Otherwise it is easy to add impossible constraints to the world file. cabal install 'foo > 1' && cabal install 'foo < 1' Would give us a world file with both constraints. ] [Rearrange the code for the world file feature Duncan Coutts <dun...@haskell.org>**20100510032121 Ignore-this: 8ce13765f2ef77bf562a2e1e38c777b Better better organisation of concerns for it to be in the Install module rather than in Main which is mostly concerned with command line handling. ] [Add plumbing in install code for global flags and target list Duncan Coutts <dun...@haskell.org>**20100510031328 Ignore-this: 7a559f8b13f43f724f5796c3f7c2bea3 ] [Make the logs dir a proper config item and pass it to the install code Duncan Coutts <dun...@haskell.org>**20100427011318 Ignore-this: 294ef784ebe8ee374035d182b10a6f5 ] [Rearrange installation code to make it a bit clearer Duncan Coutts <dun...@haskell.org>**20100426005110 Ignore-this: 70f9f1fdaf805eabc75d2cebe70153ed ] [Updated patch for world-file support Peter Robinson <thaldy...@gmail.com>**20091103202927 Ignore-this: 9333ae1f97d44246802504f779efc279 Update 2: now uses writeFileAtomic from Cabal This is a new patch for Ticket #199; it adds the "--one-shot" option. A world file entry contains the package-name, package-version, and user flags (if any). For example, the file entry generated by # cabal install stm-io-hooks --flags="-debug" looks like this: # stm-io-hooks -any --flags="-debug" To rebuild/upgrade the packages in world (e.g. when updating the compiler) use cabal install world Installing package 'foo' without adding it to the world file: # cabal install foo --one-shot ] [Import installDirsOptions from Cabal lib Duncan Coutts <dun...@haskell.org>**20100401165125] [Cope with intra-package deps when constructing install plans Duncan Coutts <dun...@haskell.org>**20100320215331 Ignore-this: 17d34d739024686d2f3a75a01e1e1c48 ] [Don't generate #! lines in Setup.hs files in cabal init Duncan Coutts <dun...@haskell.org>**20100114033501 We don't want to encourage multiple ways of invoking Setup The one true (cross-platform) way is: runghc Setup ] [Fix the display of the license in "cabal list" output Duncan Coutts <dun...@haskell.org>**20100113191913] [Adjust to the change in the type of getInstalledPackages Duncan Coutts <dun...@haskell.org>**20091229212020 It used to return Maybe, now it always gives us a PackageIndex. This depends on an API change in Cabal-1.9.x. ] [Display the exception for failed downloads Duncan Coutts <dun...@haskell.org>**20091222132526 Not great but better than nothing. ] [Remove now-unused compat module Duncan Coutts <dun...@haskell.org>**20091222130959] [Change the default config on Windows to per-user installs Duncan Coutts <dun...@haskell.org>**20091228165411 Ignore-this: afccc874f09efd2b8298ee01163c0462 Slightly experimental. We should look out for unexpected consequences. ] [Move downloadURI to HttpUtils module Duncan Coutts <dun...@haskell.org>**20091222095152 Ignore-this: 6a80342e38c618ed5fe541fc7dfbec08 And use exceptions rather than return codes. ] [Fix a couple more ghc-6.12 -Wall warnings Duncan Coutts <dun...@haskell.org>**20091222075821 Ignore-this: 429818d8b6fc528a155162e0eb67913d ] [Fix cabal sdist --snapshot Duncan Coutts <dun...@haskell.org>**20091222080537 Ignore-this: a1f090e1bae653645cf5d55055deab3d ] [Distribution/Client/InstallSymlink.hs: explicitely import 'catch' and friend tom System.IO Sergei Trofimovich <sly...@community.haskell.org>**20091220220105 Ignore-this: d7a4b304976bc8ce42dfae963d58694c ] [Distribution/Client/Install.hs: removed unused 'compilerTemplateEnv' from import Sergei Trofimovich <sly...@community.haskell.org>**20091220215508 Ignore-this: e850510c11ec648f6fcec6d85ce23a82 ] [Distribution/Client/Unpack.hs: removed redundant import Sergei Trofimovich <sly...@community.haskell.org>**20091220214545 Ignore-this: c1120ee8014c4c1bd3177857798e563d ] [Distribution/Client/Setup.hs: suppress warning (unused variable) Sergei Trofimovich <sly...@community.haskell.org>**20091220214448 Ignore-this: 382010da79af4baf200a406d478cc5ec ] [Distribution/Client/Haddock.hs: removed redundant instances Sergei Trofimovich <sly...@community.haskell.org>**20091220213757 Ignore-this: efffb1cd16256496f70314cce6001c6f ] [Distribution/Client/BuildReports/Anonymous.hs: removed unused import of BuildResult Sergei Trofimovich <sly...@community.haskell.org>**20091220213350 Ignore-this: 50c449c43df34ceb1b13c61788bb0758 ] [Distribution/Client/IndexUtils.hs: fixed warning on -Wall (unused result) Sergei Trofimovich <sly...@community.haskell.org>**20091220211940 Ignore-this: a74aded9f99237229dbfe762fcf20478 ] [Distribution/Client/SrcDist.hs: fixed warning on -Wall (unused result) Sergei Trofimovich <sly...@community.haskell.org>**20091220211717 Ignore-this: d7d4fade7b5e5464d114995efdabb216 ] [Fix fromFlag error in upgrade Duncan Coutts <dun...@haskell.org>**20091221140752 Ignore-this: 82eee01373bf121c1c00a7c5d27bac0f Use the missing defaultInstallFlags. ] [Reorder commands in cabal --help output Duncan Coutts <dun...@haskell.org>**20091219034451] [Use the standard form of copyright statement in BSD3 license template Duncan Coutts <dun...@haskell.org>**20091219031017 See http://www.opensource.org/licenses/bsd-license.php ] [Remove stability feature from cabal init Duncan Coutts <dun...@haskell.org>**20091219030855 The stability field in .cabal files is deprecated since it's mostly useless. ] [Make the cabal init command line flag names follow the normal convention Duncan Coutts <dun...@haskell.org>**20091219030747 Using hyphens rather than upper case. ] [Fix reporting of installed program versions in cabal list Duncan Coutts <dun...@haskell.org>**20091218232501 We do not know if programs are installed or not so report unknown rather than saying it is not installed. ] [Update the README Duncan Coutts <dun...@haskell.org>**20091218173459 Ignore-this: adde7b8406a92837f295ed3d57037827 ] [Bump head to new dev version 0.9.x Duncan Coutts <dun...@haskell.org>**20091218172245 Ignore-this: 378cbb031583940fb4e301d0e640c396 ] [Update various .cabal bits Duncan Coutts <dun...@haskell.org>**20091218171642 Ignore-this: a54518592cf53158e6a01ff7ad8753ef ] [Update the bootstrap script to work with ghc-6.12 Duncan Coutts <dun...@haskell.org>**20091218165234 Ignore-this: b4aca31e814592f1cd6d53cf5a461859 We can no longer expect mtl, network and parsec to be installed. ] [Update the changelog for 0.8 Duncan Coutts <dun...@haskell.org>**20091218165221 Ignore-this: 35f1f722b56c7eec84574e9d4be0d0f3 ] [Fix combination of --global --package-db when compiling Setup.hs scripts Duncan Coutts <dun...@haskell.org>**20091218165119 Ignore-this: 6a78eaf39c21dfc692458f1046d852ce The order of the package db stack is important. ] [Allow numeric fields in tar headers that use binary format Duncan Coutts <dun...@haskell.org>**20091123063734 This is an old non-standard extension that some tar tools still use. ] [Create all parent directories of extraced files Duncan Coutts <dun...@haskell.org>**20091122080446 Previously only created the immediate parent directory. No rely more heavily on the file security check to make sure we are not writing files outside of the target area. ] [Ignore PAX entries when checking for tarbombs Duncan Coutts <dun...@haskell.org>**20091122080255 When checking for tarbombs, ignore PAX entry types 'g' and 'x'. These do not get extracted so their names do not matter. ] [fixed 'cabal sdist' Sergei Trofimovich <sly...@community.haskell.org>**20091113165833 Ignore-this: a9061231f18a00fda66bd73e0d4bac86 ] [Build with ghc-6.6 Duncan Coutts <dun...@haskell.org>**20091110113735 Ignore-this: 939c6d822b78b7966ccc37a0739ecc81 ] [Fix base 4 exceptions in #ifdef WIN32 code section Duncan Coutts <dun...@haskell.org>**20091110112415 Ignore-this: 53ad5959a1964ff8eccf93c17dd1e3d7 ] [Add a couple checks to "cabal unpack" and improve the messages Duncan Coutts <dun...@haskell.org>**20091104142658 Ignore-this: 896cf992e5862393bb5e451a337545fa ] [Fix bootstrap (#599) Robin Green <gree...@greenrd.org>**20091102073414 Ignore-this: 67304fe1c399d679c0c7a7d0d01cff45 ] [Switch to using some Utils from the Cabal lib Duncan Coutts <dun...@haskell.org>**20091102150528 Ignore-this: fe55da37cc85ce495a65949506ac3e42 Remove local copies. Also fixes a bug recently introduced in the writeFileAtomic function, spotted by Peter Robinson. ] [Parly fix building with ghc-6.6 Duncan Coutts <dun...@haskell.org>**20091028163849 Ignore-this: 75f4ae640c2c2d7d46cd4c00d835b618 The new cabal init stuff needs some work. ] [Fix building with ghc-6.12 Duncan Coutts <dun...@haskell.org>**20091028163719 Ignore-this: eb25e32b7696174a4702394ea59e03bc ] [Fix building with ghc-6.8 Duncan Coutts <dun...@haskell.org>**20091028163352 Ignore-this: 9dc502c70fd2e5940729656168030953 ] [Allow building with base 4 Duncan Coutts <dun...@haskell.org>**20091028163148 Ignore-this: 2ac8c966a4a014af94a21b7801331c19 ] [Bump version number a bit Duncan Coutts <dun...@haskell.org>**20091028133527 Ignore-this: e2a10bab1da090c8aeedeb6dba74cb3 ] [Update list of modules (so sdist works) Duncan Coutts <dun...@haskell.org>**20091028133513 Ignore-this: 91abc5688f598cf0a5ecf96855ccfe76 ] [Update new cabal init code for the recent package id changes Duncan Coutts <dun...@haskell.org>**20091028132037 Ignore-this: 83f7b69c2a0727dba37dd7242a4f5791 ] [Initial go at converting to the new Cabal-1.8 installed package system Duncan Coutts <dun...@haskell.org>**20091022123946 Ignore-this: 5e6665609e707de9dc73612b0efd25e9 It works by ignoring the possibility that there could be multiple installed packages sharing the same source package Id. We just pick the "top most" one which is usually ok. We make no attempt to check that we are using consistent installed packages. ] [Update for changes to finalizePackageDescription Duncan Coutts <dun...@haskell.org>**20091018173233 Ignore-this: f60d2b66f9f0e223599ab15ac78d112c ] [add 'init' subcommand for initializing project cabalisation Brent Yorgey <byor...@cis.upenn.edu>**20091011165644 Ignore-this: df51056f9e138d38d64f48c86cdf6376 ] [Collecting some heuristics for creating an initial cabal file benedikt.hu...@gmail.com**20090902160332 Ignore-this: 50eb36690a888529d209f9da5af15078 ] [Apply suggestion for bootstrap failure message Duncan Coutts <dun...@haskell.org>**20091020212319 Ignore-this: 70ed13514b158db7672f5d16a9ed90ea ghc ticket #3602 ] [Fix calculation of paths in check for bindir symlink overwriting Duncan Coutts <dun...@haskell.org>**20090829004959 Ignore-this: d4dd8e12c03d23ce935de94cedbda257 We were doing it wrong, but Linux realpath() C function was letting us get away with it. The Solaris realpath() is stricter. The new implementation is also simpler, relying on the fact that the canonicalizePath function will resolve symlinks. ] [Require Cabal lib version 1.7.3 Duncan Coutts <dun...@haskell.org>**20090707095944 Needs recent api changes. ] [Make the documentation toggle determine if we make the haddock index Duncan Coutts <dun...@haskell.org>**20090707013030 Previously the --haddock-index=template flag controled both the template used and whether it's used at all. When no path was set then it was not used. The problem with that is that since we are not enabling this feature by default then the default is blank. That is the default config file would look like: -- haddock-index: which doesn't help anyone discover what it means or what a sensible setting would be. By having a separate toggle to enable/disable we can have a default for the index file which makes it easy to discover in the config file: -- documentation: False -- doc-index-file: $datadir/doc/index.html All the user has to do is uncomment the first line and use True. ] [Be less noisy about warning about packages with missing docs Duncan Coutts <dun...@haskell.org>**20090707005149] [Use defaultInstallFlags as the defaults Duncan Coutts <dun...@haskell.org>**20090707004836] [Move regenerateHaddockIndex more out-of-line in the Install module Duncan Coutts <dun...@haskell.org>**20090707003722 Also update the code somewhat following the changes in the Cabal API for path templates and substitutions. ] [Use $pkgroot/package/$pkgid.tar.gz as tarball URL Duncan Coutts <dun...@haskell.org>**20090704170602] [#516, maintains a per-user index of haddock docs Andrea Vezzosi <sanzhi...@gmail.com>**20090607170512 Ignore-this: 1114f6b944043781c4bf99620573b1cc If the haddock-index flag is set it keeps an index of the haddock documentation of the packages in the global and user databases ] [Now supporting explicit --user or --global switches in bootstrap.sh with usage feedback for bad args Dino Morelli <d...@ui3.info>**20090613150958 Ignore-this: 490a4fcdd5bc1940d6f32d71b0a042a5 This change was adapted from work submitted to the cabal-devel mailing list by Jason Dusek. ] [add message to 'package not found' error advising to run 'cabal update'. (#497) Brent Yorgey <byor...@cis.upenn.edu>**20090611171233] [Fix sdist Duncan Coutts <dun...@haskell.org>**20090605023441 Fix handling of base dir in tar file creation. ] [Fix use of deprecated version constructors Duncan Coutts <dun...@haskell.org>**20090604180500] [Only report preferred new versions of cabal-install are available Duncan Coutts <dun...@haskell.org>**20090604175726 That is, use the "preferred-versions" mechanism when deciding whether there is a new version available. This would allow us to upload a new version without everyone immediately being told to get it and try it out. ] [Make cabal upload/check print out the error messages reported by the server Duncan Coutts <dun...@haskell.org>**20090604124836 The code to do it was already there but we were checking for the mime type text/plain using just (==) when in fact the server reports text/plain; charset="ISO-8859-1" so we have to parse the field a bit better (still a bit of a hack). ] [Require latest Cabal lib version Duncan Coutts <dun...@haskell.org>**20090603102312] [Improve formatting of cabal check output Duncan Coutts <dun...@haskell.org>**20090603102254] [Only apply preferences to base if its version is unbounded above Duncan Coutts <dun...@haskell.org>**20090603101623 Fixes ticket #485. This means that for constraints like: build-depends: base >= 3 && < 5 we will pick version 4. However we will continue to apply the version 3 preference for things like: build-depends: base >= 3 Where there is no upper bound on the version. Note that we now also ignore preferences for base given on the command line. We should implement #483 to split prefs from shims. ] [Improve the parse error message for package name/deps Duncan Coutts <dun...@haskell.org>**20090321154623 Make it clear that it's the specification of the package name that is at fault rather than the package to which the name refers. ] [Debian in their wisdom decided to build network against parsec 3. Duncan Coutts <dun...@haskell.org>**20090308142925 So checking for parsec 2 fails. We don't strictly need parsec, it's just a dependency of network, so remove the check. ] [Simplify version ranges before printing in error messages Duncan Coutts <dun...@haskell.org>**20090531191346 Part of ticket #369 ] [Use new top handler, should get better error messages Duncan Coutts <dun...@haskell.org>**20090531190318] [Fix uses of deprecated stuff Duncan Coutts <dun...@haskell.org>**20090531190239] [New development branch, version 0.7 Duncan Coutts <dun...@haskell.org>**20090531184336 Update to development version of Cabal ] [Solaris 9 /bin/sh doesn't like the ! syntax in bootstrap.sh Duncan Coutts <dun...@haskell.org>**20090318091730] [Clarify the instructions in the README and bootstrap.sh Duncan Coutts <dun...@haskell.org>**20090315125407 Addresses the complaint in ticket #523. ] [Select Configuration file via env var CABAL_CONFIG. Paolo Losi <paolo.l...@gmail.com>**20090223005251 Ignore-this: 26e5ded85cb69cb3a19cd57680a8a362 ] [Update tar code based on new tar package Duncan Coutts <dun...@haskell.org>**20090301174949] [Actually does compile with unix-1.0 that comes with ghc-6.6 Duncan Coutts <dun...@haskell.org>**20090221154605 ghc-6.6.1 came with unix-2.1 ] [TAG 0.6.2 Duncan Coutts <dun...@haskell.org>**20090219130720] [Update the README Duncan Coutts <dun...@haskell.org>**20090219130705] [Add missing other-modules Duncan Coutts <dun...@haskell.org>**20090218235206] [Add extra assertion into the top down dep planner Duncan Coutts <dun...@haskell.org>**20090218234650] [Bump version to 0.6.2 Duncan Coutts <dun...@haskell.org>**20090218231016] [Update changelog for 0.6.2 release Duncan Coutts <dun...@haskell.org>**20090218230918] [Tweaks to the bootstrap script Duncan Coutts <dun...@haskell.org>**20090218223943 Update Cabal lib version to 1.6.0.2 Implement a couple shell script coding style recommendations. ] [Disable the upgrade command for now. Duncan Coutts <dun...@haskell.org>**20090218221752] [Add warnings in the case that no remote servers have been specified Duncan Coutts <dun...@haskell.org>**20090216181424 It's not strictly an error but it can be rather confusing. ] [Put an explanation of the config file format at the top in comments. Duncan Coutts <dun...@haskell.org>**20090215190817] [Change the field order in the initial config file. Duncan Coutts <dun...@haskell.org>**20090215190727 Also update the name of one excluded field. ] [Put the default logging and reporting setting in the initial config file. Duncan Coutts <dun...@haskell.org>**20090215190524] [Complete the implementation of --build-summary=TEMPLATE Duncan Coutts <dun...@haskell.org>**20090215190254 Actually respect the new flag. It's actually a list of template files and all specified files get written to. This allows us to specify a default build log file and also have the user write to extra ones. The summary file template can contain $pkgid $compiler etc. ] [Rearrange user interface for build logging Duncan Coutts <dun...@haskell.org>**20090215185800 The new options (as described in ticket #501) are: --build-summary=TEMPLATE --build-log=TEMPLATE --remote-build-reporting=LEVEL where LELVEL `elem` [none,anonymous,detailed] ] [always check environment variables for HTTP proxy first Ganesh Sittampalam <ganesh.sittampa...@credit-suisse.com>**20090210230736] [Improve the cabal update notice Duncan Coutts <dun...@haskell.org>**20090209211844] [Don't report that packages are cached at the default verbosity level Duncan Coutts <dun...@haskell.org>**20090209201228 It's just not that useful. Report it at -v verobisty level, and change the text and formatting. ] [Fix #490, unpack now gives a proper error message. Andrea Vezzosi <sanzhi...@gmail.com>**20090208165240 Ignore-this: 358dd291624f8858a52ae2ff27a7e0c2 ] [Use the new withTempDirectory function Duncan Coutts <dun...@haskell.org>**20090202012255 In particular it means that install will unpack packages into different temp dirs on each invocation which means that running install on the same package for different compilers at the same time should not clash. This is quite useful for testing. ] [Add compat withTempDirectory function Duncan Coutts <dun...@haskell.org>**20090202011917 This is already in Cabal HEAD but we cannot use that yet ] [Add homepage and bug-reports fields to .cabal file Duncan Coutts <dun...@haskell.org>**20090201225021] [Remove the prefernece and cabal lib version flags from the InstallFlags Duncan Coutts <dun...@haskell.org>**20090126012412 They are now in the ConfigExFlags instead. ] [Change the install and configure modules to use the extended config flags Duncan Coutts <dun...@haskell.org>**20090126011942] [Add ConfigExFlags into the configure, install and upgrade commands Duncan Coutts <dun...@haskell.org>**20090126010918 Not yet passed all the way through. ] [Add ConfigExFlags and related command Duncan Coutts <dun...@haskell.org>**20090126010132 This is for configure flags that we use in the configure command in the cabal command line tool that are not present in runghc Setup configure command line interface. These are flags that we are moving from the install command, so that we can also use them for the configure command. Initially it's just the flags for specifying package version preferences and the cabal library version. We'll add constraints later. ] [Remove unnecessary qualified use of ConfigFlags Duncan Coutts <dun...@haskell.org>**20090126003951] [Make configure use the dependency resolver Duncan Coutts <dun...@haskell.org>**20090125170951 This means it makes smarter decisions and also decions that are more consistent with those taken by the install command. ] [Update HTTP dep in the bootstrap script Duncan Coutts <dun...@haskell.org>**20090123160700] [Improve error message when ghc or ghc-pkg are mismatched or not found Duncan Coutts <dun...@haskell.org>**20090123160550] [Don't use grep -e, solaris does not like it Duncan Coutts <dun...@haskell.org>**20090123160443] [Fix some FIXMEs and do some TODOs in the list command Duncan Coutts <dun...@haskell.org>**20090123004810 Now properly prints if the haddock docs are installed and if the tarball is cached. It did print them before but it was lying. ] [Add initial implementation of cabal info Duncan Coutts <dun...@haskell.org>**20090119025202 It provides more detailed information on a particular package. Still a few TODOs. Fixes #361, #449 and #456. ] [Only print the config file location for the global --help Duncan Coutts <dun...@haskell.org>**20090116175900] [Update to using HTTP-4000.x Duncan Coutts <dun...@haskell.org>**20090116135646 This should fix a long-standing bug with http proxies (ticket #352) It should also make downloads faster, or at least use less memory. ] [Parse compiler field from old config files correctly Duncan Coutts <dun...@haskell.org>**20090116002851 Really old versions of cabal-install generated a default config containing "compiler: GHC". Sadly the new way we generate the config file parser from the command line parser means we end up with a case-sensitive parser as it only matches the exact command line flags. So we hack it and add in a traditional parser for that field only. Really the command line and config file infrastructure needs rewriting again. Sigh. ] [Improve the printing of config file field parse error messages Duncan Coutts <dun...@haskell.org>**20090116001421] [Read install dirs correctly from old-style .cabal/config files Duncan Coutts <dun...@haskell.org>**20090116001321 Should fix ticket #365 ] [Note in the README that zlib needs the zlib C lib package Duncan Coutts <dun...@haskell.org>**20090116000541] [Traditional /bin/sh portability fixes for bootstrap.sh Duncan Coutts <dun...@haskell.org>**20090115113227] [More improvments to the bootstrap.sh script Duncan Coutts <dun...@haskell.org>**20090115110612] [Rewrite the bootstrap.sh script Duncan Coutts <dun...@haskell.org>**20090115102210 Hopefully more useful and more robust. In particular it does not download and install packages where suitable versions are already installed. It also checks for deps. ] [Don't add installed constraints system packages that are not installed Duncan Coutts <dun...@haskell.org>**20090114143540 In particular fixes a problem (ticket #439) where we required the installed version of ghc-prim with compilers that do not have that package such as ghc-6.8 and older, hugs, nhc, lhc etc. ] [cabal update now reports if a newer version of cabal-install is available Duncan Coutts <dun...@haskell.org>**20090114133220] [Warn if a package index from a remote repo is 15 days or older Duncan Coutts <dun...@haskell.org>**20090114124827 For example it will print: Warning: The package list for 'hackage.haskell.org' is 16 days old. Run 'cabal update' to get the latest list of available packages. ] [Don't display the category in cabal list output Duncan Coutts <dun...@haskell.org>**20090114003549 It is probably not sufficiently useful to justify the space it takes. ] [In cabal list, always display available and installed versions Duncan Coutts <dun...@haskell.org>**20090114003329 Previously we omitted the line if it was not installed, or was not available. However that confused people because it was not obvious that it would list both. Now it shows something like: * foo Latest version available: 1.0 Latest version installed: [ Not installed ] ] [Print the location of the config file in the global --help Duncan Coutts <dun...@haskell.org>**20090113192215 Ticket #413 ] [Improve the cabal --help output Duncan Coutts <dun...@haskell.org>**20090113192058 Put the general info message at the top and make the explanation of installing a hackage package somewhat clearer. ] [Display examples in cabal install --help Duncan Coutts <dun...@haskell.org>**20090113161426 Examples: cabal install Package in the current directory cabal install foo Package from the hackage server cabal install foo-1.0 Specific version of a package cabal install 'foo < 2' Constrained package version ] [Print a newline after entering upload password Duncan Coutts <dun...@haskell.org>**20090113142604 So we end up with: Hackage password: Uploading test.tar.gz... rather than: Hackage password: Uploading test.tar.gz... ] [Respect the --package-db flag when compiling Setup.hs Duncan Coutts <dun...@haskell.org>**20081221184755 Fixes ticket #394. ] [Use a more precise package substitution test in improvePlan Duncan Coutts <dun...@haskell.org>**20081219215922 This is where we take a valid plan and we "improve" it by swapping installed packages for available packages wherever possible. This change is to the condition we use in deciding if it is safe to use the installed package in place of a reinstall. Previously we checked that the dependencies of the installed version were exactly the same as the dependencies we were planning to reinstall with. That was valid but rather conservative. It caused problems in some situations where the installed package did not exactly match the available package (eg when using development versions of a package or of ghc). What we do now is test if the extra constraints implied by selecting the installed version are consistent with the existing set of constraints. This involves threading the constraint set around. In theory this should even cope with adding additional packages to the plan as a result of selecting an installed package. ] [Use installed constraints instead of hiding versions of the base package Duncan Coutts <dun...@haskell.org>**20081219193740 We want to stop cabal-install from accidentally trying to upgrade the base package since this doesn't work in most cases. We used to achieve that by deleting the base package from the available package index. We now do it by leaving the package index as is and instead adding a constraint that we pick only an installed version of base. This is a nicer hack and has the potential to give better error messages. ] [Extend the invariant on the Constraints ADT Duncan Coutts <dun...@haskell.org>**20081219192309 It now carries around the original version of the database purely so that it can do a much more extensive consistency check. Packages are never gained or lost, just transfered between pots in various slightly tricky ways. ] [Fix constraint set handling for installed constraints Duncan Coutts <dun...@haskell.org>**20081219182328 A rather subtle bug. The code was actually correct but the transitionsTo assertion was not accounting for a transition between the case where a package's available version had been excluded and then the whole thing got excluded by a version constraint. It counted one side as a loss without a corresponding gain on the other side. ] [Add a install/upgrade --preference='foo < 2' flag Duncan Coutts <dun...@haskell.org>**20081218213849 This behaves just like the preferred-versions file in the hackage index but it can be specified on the command line or in a config file. ] [Generalise the way preferences are specified to the resolver Duncan Coutts <dun...@haskell.org>**20081218204917 We still provide a default global policy, but now we give a list of per-package preferences which can be on the version or installed state. Later preferences override earlier ones. ] [Workaround for a url parsing bug that breaks http proxies that need auth Duncan Coutts <dun...@haskell.org>**20081218165541 Diagnosis and patch from Valery V. Vorotyntsev. ] [Implement cabal install --constraint= Duncan Coutts <dun...@haskell.org>**20081216235032 Connect up the existing user interface with the new dep resolver api. ] [Have the dep resolver take constraints and targets separately Duncan Coutts <dun...@haskell.org>**20081216233446] [Add PackageInstalledConstraint to the PackageConstraint type Duncan Coutts <dun...@haskell.org>**20081215224538 This should be useful for things like preventing upgrading the base package for ghc. ] [A bit more renaming in the top down resolver Duncan Coutts <dun...@haskell.org>**20081215224324] [Take preferences into account in the bogus resolver Duncan Coutts <dun...@haskell.org>**20081215221728] [Mostly renaming and trivial refactoring Duncan Coutts <dun...@haskell.org>**20081215221034] [Change the dep resolver interface to pass constraints separately from targets Duncan Coutts <dun...@haskell.org>**20081215215634 This lets us specify constraints for packages that are not targets. ] [Rename and rearrange the PackagePreferences type Duncan Coutts <dun...@haskell.org>**20081215204836] [Don't re-export PackageName from Distribution.Client.Dependency Duncan Coutts <dun...@haskell.org>**20081215203617 It used to be a type alias. ] [Use the Platform type rather than passing around the OS and Arch separately Duncan Coutts <dun...@haskell.org>**20081215202856] [Bump version to 0.6.1 Duncan Coutts <dun...@haskell.org>**20081210224713] [Tidy up the unpack code Duncan Coutts <dun...@haskell.org>**20081210223633 Also fix a bug for tar files that contain entries for files without preceding entries for the directories they are in. ] [Clean up the code in Main Duncan Coutts <dun...@haskell.org>**20081210223242 Make the names more regular and set up the various flags in a more regular way. ] [Use (\_ -> []) instead of mempty to avoid funky Monoid instance Duncan Coutts <dun...@haskell.org>**20081210223106 This would let us build with ghc-6.4 or nhc if it were not for other issues. ] [Fix warning aobut -fffi in OPTIONS pragma Duncan Coutts <dun...@haskell.org>**20081203005449] [Mention where files get downloaded to at verbosity level verbose Duncan Coutts <dun...@haskell.org>**20081203004427] [Implement 'cabal unpack' command as in #390 Andrea Vezzosi <sanzhi...@gmail.com>**20081113185923] [Remove use of tabs Duncan Coutts <dun...@haskell.org>**20081122163527] [Put explicit lower bound on version of base Duncan Coutts <dun...@haskell.org>**20081122163151 It does not build with ghc-6.4.2, missing Functor instance for Either. ] [Use a more general fix for "cabal install base" Duncan Coutts <dun...@haskell.org>**20081122163026 It's not specific to LHC. Normally we prevent upgrading of base since it's unlikely to work and would normally be accidental. However when the user explicitly asks to upgrade base then we let them do that and they can keep the pieces when it breaks. ] [Warn about use of tabs Duncan Coutts <dun...@haskell.org>**20081122154309] [Only send the base file name when uploading tarballs Duncan Coutts <dun...@haskell.org>**20080903230334 The server should ignore the dir part anyway but there's no need to send it in the first place. ] [Slightly better lhc support. Lemmih <lem...@gmail.com>**20081121034338 Ignore-this: 9f51f465aa87d1c6677ca492f877ecd6 ] [TAG 0.6.0 Duncan Coutts <dun...@haskell.org>**20081011195420] [Bump version to 0.6.0 Duncan Coutts <dun...@haskell.org>**20081011195314] [Improve the README, better install instructions Duncan Coutts <dun...@haskell.org>**20081011185919 And slightly better intro guide to the main commands. ] [Bump versions of deps in the bootstrap script Duncan Coutts <dun...@haskell.org>**20081011184937] [Add Eq for a couple types in the anon build reports Duncan Coutts <dun...@haskell.org>**20081011184825] [Drop silly export Duncan Coutts <dun...@haskell.org>**20081011184805] [Apparnetly builds with unix-2.0 which is what came with ghc-6.6 Duncan Coutts <dun...@haskell.org>**20081010234836] [Fix the -i dir for compiling Setup.hs when it's the current dir Duncan Coutts <dun...@haskell.org>**20081010234558 map "" to "." ] [Tidy up the preferred-versions file parser Duncan Coutts <dun...@haskell.org>**20081010070105] [Bump version number and dependencies Duncan Coutts <dun...@haskell.org>**20081010065854] [Relax deps to build with ghc-6.10 Duncan Coutts <dun...@haskell.org>**20081007230701] [Handle build reports with missing logs better Duncan Coutts <dun...@haskell.org>**20081007230635] [Add DownloadFailed as a possible failure for installation Duncan Coutts <dun...@haskell.org>**20081007230418 Should now be caught during installing a bunch of packages and not cause immediate overall failure. It should instead be treated like any other package build failure and be reported at the end and only affect other dependent builds. ] [Fix search paths for compiling Setup.hs scrips Duncan Coutts <dun...@haskell.org>**20081007213630 and in particular for bootstrapping the Cabal lib. ] [Fix selecting paired packages Duncan Coutts <dun...@haskell.org>**20081007062930 Previously when we selected base 4 (and as a consequence slected base 3 too) we didn't properly trace the dependencies of base 3 so if nothing actually required base 3 then we ended up with base 3 in the solution but not with syb which it depends on. Consequently the solution was invalid. Now we select the paired package properly (hopefully). ] [Take preferred versions into account in dependency planning Duncan Coutts <dun...@haskell.org>**20081006055129 This means we can now globally prefer base 3 rather than 4. However we need to be slightly careful or we end up deciding to do silly things like rebuild haskell98 against base 3. That would happen because the h98 package doesn't constrain the choice to one or the other and we would prefer base 3. So we have to add that we really prefer whatever it uses currently (if any). ] [Pass the package suggested version constraints through to the resolver Duncan Coutts <dun...@haskell.org>**20081006042758 Not used yet. ] [Fix selection of paired packages Duncan Coutts <dun...@haskell.org>**20081006040616] [Read preferred versions from the package index Duncan Coutts <dun...@haskell.org>**20081006030259 From a file named 'preferred-versions' in the 00-index.tar.gz If there are several they are combined. Contents is like: base < 4 one suggested version constraint per line. ] [Refactor and update the hackage index reading code Duncan Coutts <dun...@haskell.org>**20081005202747] [Print more details about what is to be installed with -v Duncan Coutts <dun...@haskell.org>**20081005075556 Reports if installs are new or reinstalls and for reinstalls prints what dependencies have changed. ] [When finalising paired packages, cope with there being multiple choices Duncan Coutts <dun...@haskell.org>**20081005053821 For ordinary packages we selected a single version which means we added an equality constraint. As a consequence we used to assume there was only one version left when finalising. For paired packages there may be two versions left if the package did not directly constrain the choice to just one. If there is more than one version remaining then we have to pick between them. At the moment we still pick the highest version, but later we can take a global preference or polciy into account. ] [When selecting paired packages, select both. Duncan Coutts <dun...@haskell.org>**20081005053804] [Handle constraints on paired packages Duncan Coutts <dun...@haskell.org>**20081005051919 The trick is that when applying constraints to paired packages, the constraint has to exclude both packages at once. We exclude the pair together or not at all. If it would only exclude one then we discard the constraint. ] [Add the notion of paired packages to the Constraints ADT Duncan Coutts <dun...@haskell.org>**20081005013141 Packages like base-3 and base-4 are paired. This means they are supposed to be treated equivalently in some contexts. Paired packages are installed packages with the same name where one version depends on the other. ] [Make InstalledPackage an instance of PackageFixedDeps Duncan Coutts <dun...@haskell.org>**20081005012741] [Add the glue code to actully report excluded packages Duncan Coutts <dun...@haskell.org>**20081005001400 Now displayed in the output of install --dry-run -v ] [Have Constraints.constrain report the excluded packages Duncan Coutts <dun...@haskell.org>**20081004235006 Each time we apply a constraint we can end up excluding some extra package. Report that list of packages because it is quite interesting information to get insight into what the resolver is actually doing. ] [Separate the construction of the exclusion list from its use Duncan Coutts <dun...@haskell.org>**20081004234421 Previously directly inserted packages into the excluded package list. Now we generate a list of them and then add them. We want the list of newly excluded packages separately because it is interesting information to report to the user when -v is on. ] [Generalise the logging of selected and discarded packages Duncan Coutts <dun...@haskell.org>**20081004232555 Allow for selecting several packages in one go. Currently when we select a package we only list the over versions of the same package that that excludes, and not the other packages we exclude by applying the dependency constraints of the selected package. In future we would like to do that so we now report the package name of discards not just the version. Though we do group by the package name to avoid too much repition. ] [Fix infinite loop in the TopDown dependency resolver Andrea Vezzosi <sanzhi...@gmail.com>**20080925181441 The loop occurred only if a package depended on another one with the same name, e.g. base-3.0.3.0 <- base-4.0.0.0 ] [small improvements to bootstrap Duncan Coutts <dun...@haskell.org>**20080926214828 patch sent in by brian0, ticket #357 ] [Update to the development version of the Cabal lib Duncan Coutts <dun...@haskell.org>**20080831225243 The branch of cabal-install that tracks Cabal-1.4 now lives at http://darcs.haskell.org/cabal-branches/cabal-install-0.5/ ] [Allow use of curl in bootstrap.sh Duncan Coutts <dun...@haskell.org>**20080826233400 Patch from jsnx. Fixes ticket #343. Also, use "cd blah; cd .." instead of "pushd blah; popd" as some shells lack pushd/popd ] [Relax version constraint on unix package Duncan Coutts <dun...@haskell.org>**20080826232851 Allows building with ghc-6.6.1 ] [Use mplus not mappend for combining tar filename checks Duncan Coutts <dun...@haskell.org>**20080826232606 mappend would join the error messages in the case that both checks failed. Also the monoid instance was new in base 3. ] [TAG 0.5.2 Duncan Coutts <dun...@haskell.org>**20080826214238] Patch bundle hash: 9be995fba2f769c83fdc47c8a922fe7e539dca57 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iEYEARECAAYFAkzWkQwACgkQ9ijrk0dDIGzT+ACgkyIOdU9pg+oqG4FiLP9801iV ULgAoNRZaxM5RHoIfk1RODepHyklars1 =03St -----END PGP SIGNATURE-----
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel