File tree 1 file changed +27
-3
lines changed 1 file changed +27
-3
lines changed Original file line number Diff line number Diff line change 3
3
How to control versions
4
4
=======================
5
5
6
+ There are various ways and places to limit what versions the solver can pick for
7
+ dependencies.
8
+
9
+ Version ranges
10
+ Within a package description, version ranges for dependencies can be; tight
11
+ or loose or missing altogether.
12
+
13
+ Version constraints
14
+ Within a project, version constraints for dependencies limit the versions
15
+ that the solver can pick.
16
+
17
+ Curated sets
18
+ A project can import curated sets of packages and versions that are known to
19
+ work together, such as those Stackage provides for Cabal's use.
20
+
21
+ Pinning Hackage versions
22
+ Adding ``index-state `` to a project limits versions coming from Hackage to
23
+ include only those that were available at the time.
24
+
6
25
Freezing
7
- Pins the versions picked by the solver for all dependencies.
26
+ Pins the versions picked by the solver for all dependencies. This is a way
27
+ to preserve a set of versions found by the solver, a solver-curated set, if
28
+ you will.
29
+
30
+ Freezing versions
31
+ -----------------
8
32
9
33
Pinning adds a version equality constraint for each package in the set of
10
34
project dependencies, explicit and transitive. The ``cabal freeze `` command
@@ -53,8 +77,8 @@ different architecture or a different compiler version and boot libraries.
53
77
that relates to the project environment, like ``cabal.project `` or
54
78
``cabal.project.local ``.
55
79
56
- Common workflows
57
- ^^^^^^^^^^^^^^^^
80
+ Freezing workflows
81
+ ^^^^^^^^^^^^^^^^^^
58
82
59
83
.. Warning ::
60
84
For each of these workflows, you may have to first delete the
You can’t perform that action at this time.
0 commit comments