Permalink
Switch branches/tags
v2.2.0.1-tgt ghc-8.4.1-rev-gitlink ghc-7.6.3-release ghc-7.6.2-release ghc-7.6.1-release dist/cabal-install-v1.20.0.6 checkpoint cabal-install_merged cabal-install-v2.4.0.0 cabal-install-v2.2.0.0 cabal-install-v2.0.0.1 cabal-install-v2.0.0.0 cabal-install-v1.24.0.2 cabal-install-v1.24.0.1 cabal-install-v1.24.0.0 cabal-install-v1.22.9.0 cabal-install-v1.22.8.0 cabal-install-v1.22.7.0 cabal-install-v1.22.6.0 cabal-install-v1.22.5.0 cabal-install-v1.22.4.0 cabal-install-v1.22.3.0 cabal-install-v1.22.2.0 cabal-install-v1.22.0.1 cabal-install-v1.22.0.0 cabal-install-v1.22.0.0-rc cabal-install-v1.20.2.0 cabal-install-v1.20.1.0 cabal-install-v1.20.0.5 cabal-install-v1.20.0.4 cabal-install-v1.20.0.4-rc cabal-install-v1.20.0.3 cabal-install-v1.20.0.2 cabal-install-v1.20.0.1 cabal-install-v1.20.0.0 cabal-install-v1.20.0.0-rc2 cabal-install-v1.20.0-rc cabal-install-v1.18.2.0 cabal-install-v1.18.1.0 cabal-install-v1.18.0.8 cabal-install-v1.18.0.7 cabal-install-v1.18.0.6 cabal-install-v1.18.0.6-rc cabal-install-v1.18.0.5 cabal-install-v1.18.0.4 cabal-install-v1.18.0.3 cabal-install-v1.18.0.2 cabal-install-v1.18.0.1 cabal-install-v1.18.0 cabal-install-v1.16.1.0 cabal-install-v1.16.0.2 cabal-install-v1.16.0.1 cabal-install-v.1.16.0 cabal-install-v1.16.0 cabal-install-v0.14.1 cabal-install-0.14.0 GHC_6_12_3_release GHC_6_12_2_release GHC_6_8_3_release Cabal_1_8_0_6_release Cabal_1_8_0_2_release Cabal-v2.4.0.1 Cabal-v2.4.0.0 Cabal-v2.2.0.1 Cabal-v2.2.0.0 Cabal-v2.0.1.1 Cabal-v2.0.1.0 Cabal-v2.0.0.2 Cabal-v2.0.0.1 Cabal-v2.0.0.0 Cabal-v1.24.2.0 Cabal-v1.24.1.0 Cabal-v1.24.0.0 Cabal-v1.22.8.0 Cabal-v1.22.7.0 Cabal-v1.22.6.0 Cabal-v1.22.5.0 Cabal-v1.22.4.0 Cabal-v1.22.3.0 Cabal-v1.22.2.0 Cabal-v1.22.1.1 Cabal-v1.22.1.0 Cabal-v1.22.0.0 Cabal-v1.22.0.0-rc Cabal-v1.20.0.4 Cabal-v1.20.0.3 Cabal-v1.20.0.3-rc Cabal-v1.20.0.2 Cabal-v1.20.0.1 Cabal-v1.20.0.0 Cabal-v1.20.0.0-rc Cabal-v1.20.0-rc Cabal-v1.18.1.6 Cabal-v1.18.1.5 Cabal-v1.18.1.5-rc Cabal-v1.18.1.4 Cabal-v1.18.1.3 Cabal-v1.18.1.2 Cabal-v1.18.1.1 Cabal-v1.18.1
Nothing to show
Commits on Jul 14, 2018
  1. Add support for source repos in project files.

    dcoutts authored and typedrat committed Jun 23, 2018
    The human readable error reporting still needs to be completed.
    
    This only supports one package per repo declaration, not multiple in
    different subdirs. This will have to be extended to support a git
    submodule repo type.
  2. Rename selectSourceRepoVCS to validateSourceRepo

    dcoutts authored and typedrat committed Jun 23, 2018
    Since that better describes what it does. Also return more information
    from it as that turns out to be convenient.
  3. Add a RemoteSourceRepoPackage case to PackageLocation

    dcoutts authored and typedrat committed Jun 23, 2018
    The PackageLocation is used for tracking where a package is now and what
    kind of package it came from. This is used within building.
  4. Give SourceRepo an Ord instance

    dcoutts authored and typedrat committed Jun 23, 2018
    So we can use it as a key in Maps (or more specifically continue to use
    PackageLocation as a key in maps, but add SourceRepo into a new package
    location constructor).
  5. Add distDownloadSrcDirectory to DistDirLayout

    dcoutts authored and typedrat committed Jun 23, 2018
    The directory under dist where we download tarballs and source control
    repos to.
  6. Add some extra utils for the Rebuild monad

    dcoutts authored and typedrat committed Jun 23, 2018
    Surrisingly handy and avoids much nastier approaches.
  7. Record the file name in .cabal parse exceptions

    dcoutts authored and typedrat committed Jun 23, 2018
    Including the file name of .cabal files within tarballs.
  8. fixup: rename location' back to location

    dcoutts authored and typedrat committed Jun 23, 2018
  9. Fix -Werror warnings with cpp

    dcoutts authored and typedrat committed Jun 10, 2018
  10. Add support for project packages from local tarballs

    dcoutts authored and typedrat committed Jun 6, 2018
    Local .tar.gz tarball files can be listed in the 'packages:' field in
    the cabal.project file. These are expected to be in the normal Cabal
    source tarball format containing a single package.
  11. Refactor: add readSourcePackageCabalFile parser wrapper

    dcoutts authored and typedrat committed Jun 6, 2018
    We need a wrapper that takes the file by value, to cover the tarball
    case. While we're at it, we report warnings on higher verbosity levels
    and use proper exceptions to make error handling more consistent.
  12. Refactor: introduce mkSpecificSourcePackage helper

    dcoutts authored and typedrat committed Jun 6, 2018
    Avoid duplication in each of the helpers for fetchAndReadSourcePackages
    (of which there will be several in the end).
  13. Try yet again with the windows file lock problem

    dcoutts authored and typedrat committed Jun 6, 2018
    Try the "retry N times on permission errors" strategy.
  14. Bump up the delay again

    dcoutts authored and typedrat committed Jun 5, 2018
  15. Correct the git config cli syntax

    dcoutts authored and typedrat committed Jun 5, 2018
    Apparently I misread the man page bit about omitting the '='.
  16. Handle git version numbers on windows

    dcoutts authored and typedrat committed Jun 5, 2018
    It reports things like 'git version 2.17.1.windows.2'
  17. Try to fix the VCS tests: git commit on windows

    dcoutts authored and typedrat committed Jun 4, 2018
    Needs extra (fake) config to be supplied on the command line otherwise
    it complains it doesn't know the author name or email.
  18. Tweak the windows file locking hack

    dcoutts authored and typedrat committed Jun 4, 2018
    Put it in the cleanup handler so it always runs, exception or not.
  19. Attempt to fix VCS tests on Windows

    dcoutts authored and typedrat committed May 30, 2018
    On Windows, file locks held by programs we run (in this case VCSs) are
    not always released prior to completing process termination! Obviously
    this is total madness since we can't know what files the child process
    had locks on, and so we cannot wait for those locks to be released.
    
    https://msdn.microsoft.com/en-us/library/windows/desktop/aa365202.aspx
    
    This means we run into stale locks when trying to delete the test
    directory. There is no sane way to wait on those locks being
    released, we just have to wait and hope. Lets hope 1 second is enough.
  20. Refactor (and rename) fetchAndReadSourcePackages

    dcoutts authored and typedrat committed May 29, 2018
    In preparation for adding support for additional target types (local and
    remote tarballs, local and remote source repos), refactor the existing
    readSourcePackage action so it can be more easily extended to support
    the extra target types.
    
    In particular, having to download things means there are advantages to
    handling all the packags in a batch. Indeed for source repos there will
    be quite a bit of sharing, so they must be handled as a batch.
  21. Add tests for the new 'get -s' implementation

    dcoutts authored and typedrat committed May 29, 2018
    It covers all the failure modes, and currently includes one actual
    network test where we fetch a git repo. There is a new testsuite feature
    flag to disable network tests, and we probably want to use that in CI.
  22. Change 'get -s' impl to use new VCS abstraction

    dcoutts authored and typedrat committed May 29, 2018
    This replaces the previous Brancher abstraction. It improves the error
    messages.
    
    There is a very slight change of behaviour: previously if a package
    specified multiple source repos with different types (e.g. git/darcs)
    and only one of those VCS tools was installed on the system, it could
    fall back to selecting the other repo using the other tool. The new
    behaviour is that it picks the repo to use deterministically, and then
    simply fails if the VCS program is not available. This situation is very
    rare, and arguably the new behaviour is more predictable.
  23. Preparation: rename fork/clone within the Get module

    dcoutts authored and typedrat committed May 29, 2018
    The standard term seems to be 'clone' rather than 'fork' for the action
    of downloading a VCS repo.
  24. Add QC tests for the VCS abstraction

    dcoutts authored and typedrat committed May 29, 2018
    This is a hopefully rather comprehensive approach: we generate an
    arbitrary description of how to make a repo, and model what content we
    would expect for every tag/commit. Then we can compare with executing
    the description for the real VCS and comparing the actual file content
    for any tag/commit.
    
    This is then the basis for checking for the various VCS drivers that we
    can (construct and) clone and sync repos properly. In particular for
    syncing this gives some confidence that we can sync for any plausible
    cached previous repo state.
  25. Add a new VCS abstration

    dcoutts authored and typedrat committed May 29, 2018
    This is intended for two things:
     * replacing the Brancher abstraction backing the current 'get -s' impl
     * the basis for source repo support in cabal.package files
    
    The latter is a bit more complex as it requires not just fetching a
    fresh repo, but syncing a repo to a specific tag, commit or branch. The
    approach assumes that we keep a cached copy so that most changes are
    cheap and it optimises things by allowing sharing data between multiple
    commits of the same repo, and multiple packages within the same repo.
    
    For example, it will be possible to specify the same repo in the
    cabal.project file for more than one package, and have those packages
    either in separate subdirs of the same commit, or on different
    commits/tags/branches. In the former case we use a single checkout
    while in the latter case we use two checkouts, but share repo data as
    far as possible.
Commits on Dec 24, 2017
  1. Add documentation for 'all-packages'

    dcoutts committed Dec 24, 2017
    In the user guide, changelog and add a few code comments.
  2. Add 'all-packages' section to cabal.project files

    dcoutts committed Dec 24, 2017
    Prior to this we had options that apply to all local packages, or
    options that apply to specific named packages. This new section allows
    all the same options but applies them to all packages local or not.
Commits on Nov 21, 2017
  1. Update the test CLI output in one case

    dcoutts committed Nov 21, 2017
    Trivial change, but actually a wording improvement.
Commits on Nov 20, 2017
  1. Fix compat for various ghc versions

    dcoutts committed Nov 20, 2017
Commits on Nov 14, 2017
  1. Remove a couple done TODOs for target selection

    dcoutts committed Nov 14, 2017