-
Notifications
You must be signed in to change notification settings - Fork 698
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove sandbox functionality #6445
Comments
Just a question. In my Gitlab CI/CD I used |
@CMCDragonkai yes. And EDIT: so packages |
How? :) I still use them to reproduce GHC issues people submit so I don't mess up my global config but genuinely unsure how to simulate them. The biggest thing I use them for is to have a Since I often repro with ghc development builds I have to run with But new-install 's dist folder only contains a package-db with the package only, not it's dependencies.. so I end up having to use |
Sandboxes are still used by some users and are very robust. Recovering from problems/failure is easy, while with v2-build, it basically boils down to removing the entire store. Semi-reproducible bugs like #6483 are a good example |
My opinion is: people who need sandboxes could keep using old |
I think that's a little quick. In case the code is really a problem, there should at least be a call for maintainers picking that up. We should know clearly whether there is no interest in this feature or not. |
I could.. If new GHC didn't often require bleeding edge Cabal. |
In any case, whatever you guys decide as maintainers I'll live with :) especially if it's getting in the way of new things. |
Also note, you'll probably break tools like https://github.com/haskell-mafia/mafia when removing sandboxes. |
Well, back in 2018 a ticket for "Investigate porting to use cabal new-build" was filed at haskell-mafia/mafia#240 -- but it doesn't seem like there has been much activity looking into how to adapt to cabal's announced v2-style UI. And I've got a hunch this isn't going to change unless there's a forcing function to do so. So I'm for removing these Fwiw, while I haven't used Mafia myself, I believe it should be possible to emulate most of |
So there was no survey or announcement to figure out if sandboxes are still a feature the community wants? |
We did have annoying warnings for all v1-* commands following a generic message-template in cabal 2.4 (released in 2018!) in order to raise some additional awareness (& discussions) that we did want to eventually decomission the v1-* commands, and to give people a chance to speak up...
Moreover, the wording
has been in the user guide since 2018 as well: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html |
The cabal help output is large and confusing. I remember people in
Again, I don't think that is a discussion or even a proper announcement. |
I'm developing new feature: It's development is currently blocked transitively on this issue. One needs to remove legacy local repositories (#6729), as they are unnamed so cannot be specified in However, the above is again blocked on sandboxes, as legacy repositories seems to be used in the sandbox code. One way forward is just to make sandbox code compile, and disable failing tests. It won't be hard removal, but most likely sandboxes will be broken in 3.4. |
I'll proceed with above "just break sandboxes" approach in two weeks, i.e. Wednesday 2020-05-06. |
Shipping a known-broken implementation is probably worse than outright removing sandboxes. |
@phadej thank you for this. I'm 100% in support of your approach! If you need any help, please feel free to direct me towards anything you need done 😄 |
@23Skidoo just to clarify, by
You do mean, that given that sandboxes will be "known-broken" in 3.4 anyway, it's reasonable (i.e. less "worse") to "outright remove" them with cabal 3.4 (which I'd agree with)? |
Yeah, if we don't have the bandwidth to keep supporting sandboxes, let's just remove them. |
Sandboxes are removed, and I send a message to cabal-devel/ |
This message ends up looking really deceptive, referring to a |
I can only repeat that changing to use Also |
From what I see, the decision is made, so I'm saying this with the hope to find a better way to stay on top of these discussions and contribute in a timely manner when and where they happen. And, just in case, I absolutely understand that maintaining these features can be a burden and as a user all I have is gratitude for cabal (and the whole Haskell ecosystem) existing in the first place, and I thank all who make it happen. I saw these warnings years ago and I never interpreted this as "open to discussion", nor did I find a pointer to express an opinion. As in prior occasions, I had to opt to try and "stay alive" in any way I could: the Haskell ecosystem generally changes so, so much that I've always found myself having to choose between creating up to date Haskell tools, or creating real-world applications with (not-so-new) Haskell. However, the burden of doing both has been increasingly higher in any of the environments where I worked. I made a decision to opt for the latter: it is a no-brainer IMO, but my opinion seems to counter that of others. I'd like to inquire about the best way to stay on top of these discussions, and participate sooner if possible. For example, being subscribed to Cabal on github means having to process an average of 2x issues a day, just in case a discussion about a breaking feature comes up, and each issue will be an asynchronous conversation thread on its own. We also have GHC, base, plus the hundreds of libraries that projects tend to depend on these days because the general tendency for fine partitioning and additional levels of abstraction. And just to be clear, I'm not trying to disguise a complaint as a question. I see that people seem to be able to cope with these levels of complexity, and I wonder what I'm missing, or what methods others may have found. In the last 20 years, projects have become much, much harder to maintain IMO. |
@ivanperez-keera I mentioned this in https://mail.haskell.org/pipermail/cabal-devel/2020-May/010482.html and will soon (in July) post a call-for-features for 3.6 with preliminary list of what I know is worked on. |
…3.4 which has removed the v1-sandbox command (haskell/cabal#6445) and all sandbox functionality. cabal v2-install --lib appears unable to provide a local installation in a sandbox-like directory though that functionality may be pursued as an "env" command (haskell/cabal#6481). Support of GHC >= 9.0 will be blocked on cabal-install's ability to use local installations of libraries. Changes based on the current cabal-install support have been added for further improvement. Update Haskell network dependency to 3.1.2.7 . Update Haskell zlib dependency to 0.6.3.0 .
…ox functionality was removed (cabal-install >= 3.4) without replacement functionality (haskell/cabal#6445). cabal-install source code releases are unable to bootstrap with local dependencies due to undependable releases that promote opaque binaries (haskell/cabal#7904). Manually create a Cabal sandbox without cabal-install for Haskell GHC compilation.
Related is e.g. #6444 (comment)
Maybe it's still a bit too early to remove
v1-build
, but sandboxes could IMHO be removed. If someone really needs them, they can be simulated.Yet we need to do some cleanup, as v2-build is the default now.
The text was updated successfully, but these errors were encountered: