The right way to update tidal on linux

Don't know, I've been using tidal for years, but I'm not able to update it!

The combination:

cabal update
cabal install --lib tidal

tells me:

Resolving dependencies...
Up to date

While if i try the "classic" cabal install tidal I get:

Downloading  tidal-1.7.8
Downloaded   tidal-1.7.8
Starting     tidal-1.7.8 (lib)
Building     tidal-1.7.8 (lib)
Installing   tidal-1.7.8 (lib)
Completed    tidal-1.7.8 (lib)
Warning:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: Installation might not be completed as desired! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Without flags, the command "cabal install" doesn't expose libraries in a
usable manner. You might have wanted to run "cabal install --lib tidal".

But if I try again cabal install --lib tidal I get the same result as before.
Seems like with the --lib flag it can't see the new version.

I know I can clear everything from ghc and cabal but I'm really curious how it works so we can improve the documentation

Which distro/version?

ubuntu 21.04
cabal 3.4.0.0
ghc 9.0.1

I tried specifying the version and I got:

cabal install --lib tidal-1.7.8
          
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] next goal: tidal (user goal)
[__0] rejecting: tidal-1.7.8 (constraint from user target requires ==1.7.7)
[__0] rejecting: tidal-1.7.7, tidal-1.7.6, tidal-1.7.5, tidal-1.7.4,
tidal-1.7.3, tidal-1.7.2, tidal-1.7.1, tidal-1.7, tidal-1.6.1, tidal-1.6.0,
tidal-1.5.2, tidal-1.5.1, tidal-1.5.0, tidal-1.4.9, tidal-1.4.8, tidal-1.4.7,
tidal-1.4.6, tidal-1.4.5, tidal-1.4.4, tidal-1.4.3, tidal-1.4.2, tidal-1.4.1,
tidal-1.4.0, tidal-1.3.0, tidal-1.2.1, tidal-1.2.0, tidal-1.1.2, tidal-1.1.1,
tidal-1.1.0, tidal-1.0.14, tidal-1.0.13, tidal-1.0.12, tidal-1.0.11,
tidal-1.0.10, tidal-1.0.9, tidal-1.0.8, tidal-1.0.7, tidal-1.0.6, tidal-1.0.5,
tidal-1.0.4, tidal-1.0.3, tidal-1.0.2, tidal-1.0.1, tidal-1.0.0, tidal-0.9.10,
tidal-0.9.9, tidal-0.9.8, tidal-0.9.7, tidal-0.9.6, tidal-0.9.5, tidal-0.9.4,
tidal-0.9.3, tidal-0.9.2, tidal-0.9.1, tidal-0.9, tidal-0.8.2, tidal-0.8.1,
tidal-0.8, tidal-0.7.1, tidal-0.7, tidal-0.6, tidal-0.5.3, tidal-0.5.2,
tidal-0.5.1, tidal-0.5, tidal-0.4.36, tidal-0.4.35, tidal-0.4.34,
tidal-0.4.33, tidal-0.4.32, tidal-0.4.31, tidal-0.4.30, tidal-0.4.29.1,
tidal-0.4.29, tidal-0.4.28, tidal-0.4.27, tidal-0.4.26, tidal-0.4.24,
tidal-0.4.23, tidal-0.4.21, tidal-0.4.20, tidal-0.4.19, tidal-0.4.17,
tidal-0.4.16, tidal-0.4.15, tidal-0.4.14, tidal-0.4.13, tidal-0.4.12,
tidal-0.4.11, tidal-0.4.10, tidal-0.4.9, tidal-0.4.8, tidal-0.4.7,
tidal-0.4.6, tidal-0.4.5, tidal-0.4.4, tidal-0.4.3, tidal-0.4.2, tidal-0.4.1,
tidal-0.4, tidal-0.3.9, tidal-0.3.8, tidal-0.3.7, tidal-0.3.6, tidal-0.3.5,
tidal-0.3.4, tidal-0.3.3, tidal-0.3.2, tidal-0.3.1, tidal-0.3, tidal-0.2.13,
tidal-0.2.11, tidal-0.2.10, tidal-0.2.9, tidal-0.2.7, tidal-0.2.6,
tidal-0.2.4, tidal-0.2.3, tidal-0.2.2.8, tidal-0.2.2.7, tidal-0.2.2.6,
tidal-0.2.2, tidal-0.2.1, tidal-0.2, tidal-0.1.0.1, tidal-0.1 (constraint from
user target requires ==1.7.8)
[__0] fail (backjumping, conflict set: tidal)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: tidal

What does constraint from user target requires ==1.7.7 mean?

Resolved.

I removed the row referencing tidal-1.7.7 from .ghc/x86_64-linux-9.0.1/environments/default
Ran cabal install --lib tidal again.
Happiness!

Would be interesting find a way to make cabal do that automatically.

The problem is that the new cabal install doesn't really work for our use case (installing a library and using it in an interpreter). It also gets confused if you mix the old v1-install commands. There is a lot of discussion and work about how to fix this, but so far there isn't a fix without installing extra experimental commands etc. So for now I stick with the v1- commands.

Sorry for the late reply - I've had no dramas sticking with the cabal install tidal usage in my installer, I suspect that @yaxu 's comment about keeping it consistent is probably key (which I do, cause the installer does the work for me)