-
Notifications
You must be signed in to change notification settings - Fork 724
Description
Per a discussion in #7402, in which @ptkato implemented a solution for #5591, @phadej linked a discussion from #7180 in which there are some differences pointed out between v1-(re)configure and v2-(re)configure. Namely, the following: v2-configure is not a useful command, and therefore v2-reconfigure is similarly not useful. v2-configure does two things: generate a build plan, and create a cabal.project.local with project-local settings. The reasons this is not useful are two-fold:
v2-buildalready generates a build plan autonomously, making thev2-configurebuild plan step redundant- modification of the
cabal.project.localvia command-line args passed tov2-configureis under-specified. One can only pass a subset of validcabal.project.localflags via command line (Oleg points out that you cannot specify remote source repositories, for example). So in that sense, the implementation is under-specified and hides some implementation details.
Here are a few ideas for what we can do here:
-
Deprecate
v2-configureand tell the users why it's not a bad idea, tossing away thev2-reconfigurework from cabal v2-configure #7402. Many people would probably balk at this, since it removes a useful workflow from people's tooling (script-local modifications are faster than hand-editing the local project files) there is a proliferation of content out there that alludes tov1-configure, and we'd have to be very loud and explicit about why that command in particular was deprecated. -
Modify
v2-configureand re-spec it's purpose so that it only does modifications of thecabal.project.local, and see if we can come up with a decent middle ground for what flags we support on command line.
Your thoughts welcome.