Skip to content

Commit 0b9448f

Browse files
committed
Add other ways to control versions
1 parent 66f0d7e commit 0b9448f

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

doc/how-to-freeze-versions.rst

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,32 @@
33
How to control versions
44
=======================
55

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 cutoff time.
24+
625
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+
-----------------
832

933
Pinning adds a version equality constraint for each package in the set of
1034
project dependencies, explicit and transitive. The ``cabal freeze`` command
@@ -53,8 +77,8 @@ different architecture or a different compiler version and boot libraries.
5377
that relates to the project environment, like ``cabal.project`` or
5478
``cabal.project.local``.
5579

56-
Common workflows
57-
^^^^^^^^^^^^^^^^
80+
Freezing workflows
81+
^^^^^^^^^^^^^^^^^^
5882

5983
.. Warning::
6084
For each of these workflows, you may have to first delete the

0 commit comments

Comments
 (0)