@@ -186,33 +186,42 @@ Freezing workflows
186186 with. Alternatively, you can run ``cabal update
187187 --ignore-project ``.
188188
189- Freeze
190- If the ``cabal.project.freeze `` file doesn't exist, generating one is a
191- great way to see what versions of dependencies are currently being used even
192- if you choose to discard the ``.freeze `` file after inspecting it.
189+ For the versions of all dependencies at once:
190+
191+ - To check solver-chosen versions - cold snap
192+
193+ With this workflow we freeze, inspect then discard ``cabal.project.freeze ``,
194+ always leaving the solver free to choose other versions. This is great way
195+ to see what versions of dependencies are currently being used.
196+
197+ - To update versions of all dependencies - thaw and freeze
193198
194- Thaw, Freeze
195199 If you changed the version ranges of any of the dependencies in any of your
196200 project's package descriptions, in any ``.cabal `` file, then delete the
197201 ``cabal.project.freeze `` file if it already exists and run ``cabal freeze ``
198- to generate fresh version of ``cabal.project.freeze ``.
202+ to generate fresh version of ``cabal.project.freeze ``. The steps of this
203+ workflow are delete and freeze. The solver is let free to choose versions of
204+ all dependencies but once it has decided, those versions are immediately
205+ pinned.
199206
200- Freeze, Freeze (Freezing Harder)
201- You might in some cases want to skip deletion of ``cabal.project.freeze ``,
202- but keep in mind that in that case ``cabal freeze `` will use existing
203- ``cabal.project.freeze `` when resolving dependencies, therefore not updating
204- any existing dependencies, only adding new ones.
207+ This is "thaw and freeze" workflow is the simplest way to work with a
208+ ``cabal.project.freeze `` file committed to source control.
205209
206- Partial Thaw, Freeze
207- If you want to a pick up a different version of a single dependency, you can
208- delete its constraint from ``cabal.project.freeze `` and then run ``cabal
209- freeze `` again.
210+ For the version of a single dependency:
211+
212+ - To pin the version of a new dependency
210213
211- .. Note ::
214+ The steps of this workflow are add the new dependency and freeze. The solver
215+ is free to chose its version for the new dependency while retaining the
216+ already pinned versions for the rest of the dependencies.
217+
218+ - To update the version of one dependency
212219
213- If not sure, pick the "thaw, freeze" workflow, as it is the safest, the
214- simplest and the most common. Finally, you will always want to commit the
215- changed ``cabal.project.freeze `` to version control.
220+ If you want to a pick up a different version of a single dependency, you can
221+ delete its constraint from ``cabal.project.freeze `` and then run ``cabal
222+ freeze `` again. The steps of this workflow are delete one line and freeze.
223+ It gives the solver the chance to choose another version for the unpinned
224+ dependency.
216225
217226Ensuring everything is frozen
218227^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0 commit comments