caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Opam improvement request
@ 2018-12-24 21:10 Kenneth Adam Miller
  2018-12-25  9:00 ` SF Markus Elfring
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Kenneth Adam Miller @ 2018-12-24 21:10 UTC (permalink / raw)
  To: caml users

[-- Attachment #1: Type: text/plain, Size: 3354 bytes --]

I'm not sure if opam already does this, and I'm not unhappy with opam at
all about it, but I'd like to be able to have installation or upgrade
commands have fast rollback/forward capability. Let me explain what I mean.

So far as I've seen or know about, if an install fails then opam will give
a file that describes the state it had and which you can execute using a
command it also gives. I'm too lazy to look that up, but that's a different
functionality than what I'm describing - and more importantly, it
represents part of the problem because it requires building all of the
packages from source and because it itself suffers from the fragility that
I'm trying to get around.

What I'd like is, if opam could quickly snap back and forth between
combinations of package versions. I don't want to manage specification
files, I'd kind of like a docker like interface where I could just put
notes by dated, named package selection options and have a command manage
it for me. I don't want to track files manually.

I've had some scenarios where opam tells me how to restore my state, after
attempting to do an install or upgrade but in the process had an error.
What has actually happened then was, I had had a working version of
packages, which then broke or went away on the possibility of some version
change. opam packages can change rather quickly too, so I remember I once
just had to quit and come back, and doing an opam update got the changes to
take successfully because someone pushed a change that fixed it. It would
nice if, if there are any errors, I could keep my old state without even
having to re-install that. And that's because I don't care if I have even
20 times as much space consumed by opam because opam is keeping old states.
I just want to always have some working system.

I hope it doesn't sound like I'm complaining or being negative. All I'm
saying is I don't want to have some dependency version mismatch cause the
current system to become inoperable, and I know that opam can maintain
multiple compilers and all of that, and that there are other levels where I
could apply this, even using docker I can entirely get rid of it. But if
opam were to use snapshotting as the default behavior and exchanging
snapshots merely meant swapping out folder names within the opam directory,
that would be really fantastic.

Often, doing an update or upgrade means that all the packages that depend
on it have to get rebuilt. OCaml is fantastic for having such a fast build
time, but this still takes hours if you have large dependencies. Again,
opam packages change all the time, and if you don't regularly stay up to
date, it's really easy to get downwind of drastic changes; leaping many
versions for a given package can trigger the kinds of unexpected breaks
that I'm talking about.

It makes sense to me to think of opam package installs as being in a kind
of git staging area, where I can consider them tentatively and test it
against a particular package, but easily and quickly revert back to other
built packages (without needing to rebuild something again unnecessarily)
that I know are working.

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list https://inbox.ocaml.org/caml-list
Forum: https://discuss.ocaml.org/
Bug reports: http://caml.inria.fr/bin/caml-bugs

[-- Attachment #2: Type: text/html, Size: 3353 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-01-03 16:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-24 21:10 [Caml-list] Opam improvement request Kenneth Adam Miller
2018-12-25  9:00 ` SF Markus Elfring
2018-12-25  9:50 ` katherine
2018-12-25 17:42   ` Kenneth Adam Miller
2019-01-03 16:35 ` Louis Gesbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).