-
Notifications
You must be signed in to change notification settings - Fork 697
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cabal and HLS should coordinate the cabal-version
generated by cabal init
#10457
Comments
A possibly relevant prior discussion: |
I realised the behaviour of For interactive, the default version is In the last cabal meeting, it was suggested to synchronise the default In practice, this would mean that the default As another data point, perhaps we want to also consider the recommended version of GHCup? Since the assumption is that the recommended cabal-install version is the most used one, and we likely want to have the best support in the ecosystem, so the default cabal-the-spec version shouldn't be newer than what the Both these data points (HLS support and the version recommended by GHCup) give a good upper bound of what the default Anyone some opinions? |
Agreed on all points except GHCup: I always recommend using latest cabal, and I think GHCup's policy for recommended is too conservative and very subjective. Also, adding more players in the mix may make the whole process more complicated for unclear benefits: unlike HLS, ghcup doesn't really suffer from "too new" versions of cabal-versions (unless I'm missing something). |
I actually agree with @hasufell re default cabal version: it's actively bad if the default cabal version is known unstable, much less actively broken, on some platform(s) (in this case Windows). We let some Windows bugs sit unfixed for too long, granting that a large part of that was that we didn't have anyone capable of debugging and fixing them until @jasagredo joined the team. |
+1 @geekosaur, the "recommended" label on a cabal release is actual valuable feedback on the quality of a release as perceived by our end-users, and I wouldn't want this mechanism to be altered, as it would shelter us (the cabal team) from reality. |
I guess the question I'm asking: what does "default cabal version" has to do with "default |
I agree there's still some confusion here: @fendor mentioned making the default version 3.12 in the future, but AFAICT the question is the spec version and there is no 3.12 spec version (there will be a 3.14, though). @fendor: the spec version controls what features are available in cabal files. No new features were added to cabal files in 3.12, so there is no 3.12 spec version. 3.14 will have a new spec version because the |
@geekosaur I think there is a And by coordinating with |
Could the VSCode haskell extension manipulate this setting? GHCup could do that in the bootstrap process, but I'm not to keen about it. GHCup isn't a proper cabal config file manager. Purely from a cabal perspective it seems to make sense to have "latest spec" as default, to expose all available features. |
You can set anything, it just doesn't mean anything special. The actual |
You cannot set anything, |
Hm. I don't recall any changes but it appears that there is indeed a |
Describe the feature request
HLS is about to add support for
.cabal
files, displaying errors and warnings, offering completions, etc...The
.cabal
file generated bycabal init
has the latest availablecabal-version
.For example:
This poses a problem for HLS, as HLS depends on ghc, we have to use the
Cabal
version linked against the ghc version the HLS binary supports. This means that thecabal-version
produced bycabal init
is by default virtually always newer than what any HLS version supports.This leads to an ugly error message and most features not working in the
hls-cabal-plugin
:My suggestion, after talking to @Kleidukos, is to coordinate the default
cabal-version
produced bycabal init
with the support window of HLS.As the HLS-2.9.0.1 release supports GHC 9.4 - 9.10, we consequentially need the defaultcabal-version
to be3.6
(assuming, ghc-9.4 is linked against Cabal-3.6) for a better UX.EDIT: incorrect assumption of mine.
HLS 2.9.0.1 ships with
Cabal-3.10
, socabal-version: 3.8
would work for us.Additional context
HLS issue: haskell/haskell-language-server#4401
The issue is softened once private dependencies allow us to depend on a newer, private Cabal version for the cabal plugin: #9743
The text was updated successfully, but these errors were encountered: