haskell / haskell/cabal

Skip "HEAD is now at HASH" messages

Open
#9,114 2 comments 0 reactions 0 assignees View on GitHub
cabal-install: source-repository-package
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

With a `source-repository-package`, it takes three `cabal build` cycles for the related messages to settle down and this can be a time drain to watch and wait for if some of those packages are big, like amazonka, or if a project has many source repository packages:

1. Verbose download
2. OK acknowledging the hash
3. All good

```
$ cabal build all --enable-tests --enable-benchmarks
Cloning into '/.../dist-newstyle/src/monad-log_-b6a715dfba45a322'...
remote: Enumerating objects: 1376, done.
remote: Counting objects: 100% (336/336), done.
remote: Compressing objects: 100% (130/130), done.
remote: Total 1376 (delta 167), reused 301 (delta 151), pack-reused 1040
Receiving objects: 100% (1376/1376), 187.04 KiB | 3.34 MiB/s, done.
Resolving deltas: 100% (701/701), done.
HEAD is now at bfaad47 monad-logger-aeson-0.4.0.2
...

$ cabal build all --enable-tests --enable-benchmarks
HEAD is now at bfaad47 monad-logger-aeson-0.4.0.2
Up to date

$ cabal build all --enable-tests --enable-benchmarks
Up to date
```

**Expected behavior**
I suggest that after step 1 we skip step and don't mention the hashes if they've not changed.

**Anxiety trigger**
As I'm watching the first verbose message, I see hashes that don't match. Should I care?

```diff
- monad-log_-b6a715dfba45a322
+ bfaad47 monad-logger-aeson-0.4.0.2
```

**Reproduction**
The `source-repository-package` of this example:

```cabal
source-repository-package
type: git
location: https://github.com/jship/monad-logger-aeson.git
tag: bfaad47420dc90e3237cffc718d0b0257cf7c807
subdir:
monad-logger-aeson
```

Contributor guide

Open the contributing guide

Research direction

Use cabal build with the provided source-repository-package reproduction and inspect the source-repository-package checkout or update path that emits “HEAD is now at ...”. Confirm that an unchanged hash is not printed on later builds while the initial clone output and “Up to date” behavior remain correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, haskell
Domain
build-system, cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.