You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/support/ghc-version-support.md
+37-11
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,11 @@ Major versions of GHC which are not supported by HLS on master are extremely unl
65
65
66
66
## GHC version deprecation policy
67
67
68
-
### Major versions
68
+
### Base policy
69
+
70
+
This is the static part of the policy that can be checked by a machine.
71
+
72
+
#### Major versions
69
73
70
74
A major GHC version is a "legacy" version if it is 3 or more major versions behind the latest GHC version that is
71
75
@@ -76,12 +80,43 @@ For example, if 9.2 is the latest major version fully supported by HLS and used
76
80
77
81
HLS will support all non-legacy major versions of GHC.
78
82
79
-
### Minor versions
83
+
####Minor versions
80
84
81
85
For the latest supported major GHC version we will support at least 2 minor versions.
82
86
83
87
For the rest of the supported major GHC versions, we will support at least the latest minor version in Stackage LTS (so 1 minor version).
84
88
89
+
### Extended policy
90
+
91
+
This is the part of the policy that needs evaluation by a human and possibly followed
92
+
by a discussion.
93
+
94
+
#### Ecosystem factors
95
+
96
+
To establish and apply the policy we also take into account:
97
+
98
+
- Completeness: support includes all plugins and features
99
+
- The most recent [stackage](https://www.stackage.org/) LTS snapshot
100
+
- The GHC versions used in the most popular [linux distributions](https://repology.org/project/ghc/versions)
101
+
- The reliability of different ghc versions on the major operating systems (Linux, Windows, MacOS)
102
+
- The [Haskell Survey results](https://taylor.fausak.me/2022/11/18/haskell-survey-results/#s2q4)
103
+
104
+
### Supporting a GHC version beyond its shelf life
105
+
106
+
In cases where the base policy demands a deprecation, but ecosystem factors
107
+
suggest that it's still widely used (e.g. last [Haskell Survey results](https://taylor.fausak.me/2022/11/18/haskell-survey-results/#s2q4)), the deprecation should be suspended for the next release and the situation be re-evaluated for the release after that.
108
+
109
+
In case of maintenance burden concerns, the following process should be followed:
110
+
111
+
1. open a ticket on HLS issue tracker wrt discussing to deprecate said GHC version
112
+
- explain the reason the GHC version wasn't deprecated (context)
113
+
- explain the maintenance burden it causes (reason)
114
+
- evaluate whether it impacts the next HLS release (impact)
115
+
2. discuss whether ecosystem factors changed
116
+
- e.g. if Haskell Survey results show that 25% or more of users are still on the GHC version in question, then dropping should be avoided
117
+
3. if dropping is still undesired, but maintenance burden is also high, then set out a call-for-help and contact HF for additional funding to support this GHC version
118
+
4. if no help or funding was received within 2 releases (say, e.g. 3-6 months), then drop the version regardless
119
+
85
120
### Announcements
86
121
87
122
We will warn users about the upcoming deprecation of a GHC version in the notes of the release *prior* to the deprecation itself.
@@ -97,12 +132,3 @@ We will warn users about the upcoming deprecation of a GHC version in the notes
97
132
So we need to limit the GHC support to save maintainers and contributors time and reduce CI resources.
98
133
99
134
At same time we aim to support the right balance of GHC versions to minimize the impact on users.
100
-
101
-
### What factors do we take into account when deprecating a version?
102
-
103
-
To establish and apply the policy we take into account:
104
-
105
-
- Completeness: support includes all plugins and features
106
-
- The most recent [stackage](https://www.stackage.org/) LTS snapshot
107
-
- The GHC versions used in the most popular [linux distributions](https://repology.org/project/ghc/versions)
108
-
- The reliability of different ghc versions on the major operating systems (Linux, Windows, MacOS)
0 commit comments