<div dir="ltr">Hi everyone, here are the minutes of the meeting:<br><div>---</div><div># Cabal meeting (17/08/2023)<br><br>Previously: <a href="https://hackmd.io/2EPSwwg8QqqZ96cFdW2wTQ">https://hackmd.io/2EPSwwg8QqqZ96cFdW2wTQ</a><br><br>## Next Release<br><br>- Help needed with [#9088](<a href="https://github.com/haskell/cabal/pull/9088">https://github.com/haskell/cabal/pull/9088</a>).<br> - Hécate: If we can't get it through, we'll skip it for this backport.<br><br>## Cabal exact-printing in HLS<br><br>* HLS has a cabal plugin: <a href="https://discourse.haskell.org/t/hsoc-hls-cabal-file-support/7331/2">https://discourse.haskell.org/t/hsoc-hls-cabal-file-support/7331/2</a><br> * Establishing a context for completions (Value Context, Keyword Context, ...) is not easily possible<br> * Custom parsing that works 95% of the time is used.<br> * Fitting .cabal intermediate structures would improve the code and reduce maintenance burden for HLS team.<br>* Often requested feature in HLS: <a href="https://github.com/haskell/haskell-language-server/issues/3595">https://github.com/haskell/haskell-language-server/issues/3595</a><br> * Requires parsing and modifying .cabal files without modifying the rest of the cabal file<br> * GenericPackageDescription insufficient due to loss of Source Positions<br> * Intermediate representations of .cabal files are unknown / hard to discover<br> * Custom megaparsec parser used for POC of Code Action "Add module to exposed-modules" field.<br> * FYI, this code action is working for a lot of use-cases already<br> * Explicit goal of being an exactprinter<br>* See [megaissue](<a href="https://github.com/haskell/cabal/issues/7544#issuecomment-934009792">https://github.com/haskell/cabal/issues/7544#issuecomment-934009792</a>) (and there is a whole github project, linked to in the issue).<br>* While the HLS's custom parser serves a different purpose, it'd be much nicer if we could re-use Cabal directly<br>* In a dicussion, @fendor and @andreabedini talked about a way forward:<br> * Let's make `[Field ann]` roundtripping by modifying the lexer<br> * Trailing whitespace needs to be handled<br> * Comments need to be handled<br> * Are braces currently handled in the lexer or are they a part of `ann`?<br> * POC branch by @andreabedini available<br> * `Field ann` gives us enough information to implement the Code Action for HLS<br> * Ideally, we also make `Fields ann` (note: different intermediate representation) roundtrip with `[Field ann]`<br><br>Pros:<br>* We are relatively close to achieving roundtrips of `[Field ann] <-> .cabal`<br>* Immense help for tooling already<br><br>Cons:<br>* No field analysis, further parsing required.<br><br>Proposed roadmap:<br>1. HLS releases with the Code Action using a custom parser<br>2. The custom parser is replaced by `[Field ann]` internally, but still permitting an interface HLS can use<br>3. Improve the lexer and enable roundtripping of `[Field ann] <-> .cabal file`<br>4. Evaluate what Code Actions and IDE features can be implemented on top of that<br><br>## Cabal nix integration<br><br>- [Users’ survey](<a href="https://discourse.haskell.org/t/community-survey-removing-cabals-nix-integration/7201/12">https://discourse.haskell.org/t/community-survey-removing-cabals-nix-integration/7201/12</a>).<br>- tl;dr: most people do not use it, with some exceptions (see message by neil.mayhew).<br>- Some use *stack* nix integration, but I am not sure it is actually the same thing as `cabal`.<br> (I am told it is by various `stack` users. *++bsa*)<br> *Action Item: We kill it.*<br><br>## Other topics<br><br>- GHC 9.8<br><br>Hécate: 3.10.2.0 release will also be shipped with GHC 9.8. It needs to be patched in order to recognise it as a legal version.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 12 Aug 2023 at 15:53, Theophile Hécate Choutri <hecate@haskell.foundation> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi everyone,</div><div>You'll find below the link to the agenda and minutes: </div><div><br></div><div><a href="https://hackmd.io/78RP9BOAQFiq_GM1qNRpYQ?both" target="_blank">https://hackmd.io/78RP9BOAQFiq_GM1qNRpYQ?both</a></div><div><br></div><div>Please do take the time to add the topics you want to raise. We already have a discussion about the exact-print parser that is being developed for HLS, and this would be an appropriate moment to determine our current legacy in terms of parsers within the code base.</div><div><br></div><div>See you next week,</div><div>Hécate<br></div></div>
</blockquote></div>