owned this note
owned this note
Published
Linked with GitHub
# Cabal meeting (21/12/2023)
Previous meeting notes at: https://hackmd.io/s/H1dR5FkUp
## Current affairs
<!--
Outstanding things on which we have to adjudicate.
Important, of various degrees of urgency
-->
- 3.10.3: are we missing anything else? Does Julian want anything else?
- [Covered: Hecate voluteers] Mikolaj asks humbly: Could somebody ask Julian?
- [Done: approved for 3.10.3, Javier handled the backport, merged.] this is the only apparent non-merged candidate PR (conditionally recommended by grayjay): https://github.com/haskell/cabal/pull/9550
- [MK: Now merged.] [#9525](https://github.com/haskell/cabal/pull/9525) should be merged too, bot got stuck? —F
- We've agreed to release ASAP and not to block the release on anything else, any backports, etc.
- Hécate: [`cabal path`](https://github.com/haskell/cabal/pull/8879)'s UX is subpar at the moment and I can't sign-off on shipping it. It only serves as a glue command for cabal2nix, but only reads the user-wide config file and environment variables. We can:
- Extend `user-config`, it's just annoying™ (-- Fendor)
- Make `path` aware of cabal projects, and unify `path` and [`status`](https://github.com/haskell/cabal/pull/7500) with user-specified outputs and format to ensure backwards compatibility, and add the ghc location as part of the possible outputs. (-- Fendor)
- Merging the two commands has direct benefits for HLS such as:
* Improved start-up times for cabal projects
* Improved time until diagnostics are displayed to the user
* Inform users about project issues (e.g., no build plan) in the UI
* Fewer hacks to find the compilations options given a FilePath
- Merging the two commands should be rather straight forward:
* Rename #7500 `cabal status` to `cabal v2-path` (Only to disambiguate from current `cabal path` in this context). Maybe a new PR would be good: #7500 is overloaded with old conversations. Also, rebasing #7500 looks like a major undertaking.
- Some other ideas for the name of that command: `cabal info` (Javier), `cabal query` (Mike).
* Copy flags of current `cabal path` to `cabal v2-path`
* Remove resolving FilePath's to Unit-ids from `cabal v2-path`
* Review and Merge :)
- A PR author would benefit from a clarification about our (unwritten? if written, link?) policy for "guarding behind `cabal-version`": https://github.com/haskell/cabal/pull/9535#issuecomment-1866354715
- We must chat with the GHC developers to reflect GHC's reality, see why cabal has a list of architectures, a list of aliases and GHC has a different list. We must reconcile the three. Rodrigo: I think the "canonical" definition should be ghc-platform (previously in ghc-boot), as it is an independent package that exposes ArchOS data type that is used by ghc and ghc-toolchain.
- Should write down somewhere the policy for guarding behind. It has come up several times recently. For example: this applies only to .cabal files, not to cabal.project files. Please volunteer and sign up in https://github.com/haskell/cabal/issues/9552
- The STF funding has just now been granted to Well-Typed for the second 4-month term of cabal work (including a bit for maintenance work)
- Hécate: This is not only to implement https://github.com/haskellfoundation/tech-proposals/pull/60?
- Rodrigo: Not it isn't. Mainly, we intend to build upon the work done there by improving cabal-install accordingly.
## Review needed
<!--
We need to take a look at these PRs and help them move on.
Urgent, of various levels of importance
-->
- @Jasagredo [#9527](https://github.com/haskell/cabal/pull/9527): I was mostly guided by what was arguments were already there and where I could get the extra paths from. Having someone more familiar with how are arguments passed at different levels taking a look would be super nice. And in general I think this PR is a big QoL improvement on Windows. Could even benefit of backporting to 3.10 if we want to, otherwise, it is not urgent.
- It is agreed this shall not block the 3.10.3.0 release, but if it arrives in time, then it would be fine.
- A closure to the "PackageInfo not guarded behind `cabal-version` story": https://github.com/haskell/cabal/pull/9525 (unless somebody can spot anything we missed)
- Rodrigo:
- Update changelog for per-component with coverage [#9542](https://github.com/haskell/cabal/pull/9542)
- Account for .buildinfo in repl when build-type: Configure [#9440](https://github.com/haskell/cabal/pull/9440) (fixes #9401)
- Refactor ProjectBuilding into Package Phases [#9524](https://github.com/haskell/cabal/pull/9524), Andrea said he'd look too.
- curl errors in CI: [#9530](https://github.com/haskell/cabal/issues/9530) (with a link to a PR that possibly fixes it inside) It looks pretty disturbing to devX. <meta: putting here for visibility>. Also occurring in #9542
## Food for thought
<!--
We want to start the thinking process amongst ourselves for things that will take time to unfold.
May be important, but not urgent
-->
- Have we settled the revisions controversy yet? (The urgent part is settled, I think)
- the concrete case is almost settled, but let's discuss (https://github.com/haskell/cabal/pull/9523#issuecomment-1866082009)
- the general policy still lacks our preference for prerequisites for revisions (e.g., a build or a test run, https://github.com/haskell/cabal/issues/9531#issuecomment-1859994178)
- Hecate: please use cabal-head (see the README on how to get it), and if possible, file PRs to https://github.com/haskellfoundation/error-message-index with the Cabal errors. There are none documented yet!
## And lest we forget
```
_________________________________
/ Happy Christmas (or appropriate \
\ festivity) everyone! /
---------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| || -ffaf1
```