Dear cabal co-developers [3]

A month ago I asked about my plan to remove v1- commands.
There weren't any replies on the mailing list,
I don't remember whether there there where any response on Twitter,
The few comments on Reddit [1] were
- don't remove until v2 functionality complete and bugless
- remove v1-commands immediately, people who need them may keep using old
  cabal-install

I interpret that my conservative "remove eventually, but not immediately"
plan got approval of silent majority. No hot debate = good.

Therefore I'll proceed with the proposed plan. I already made a small
patch to
remove v1-upload [2], and will create patches and issues for the rest.

Cheers, Oleg

[1]
https://www.reddit.com/r/haskell/comments/j0ruyx/rfc_a_plan_to_gradual_removal_of_v1_commands/
[2] https://github.com/haskell/cabal/pull/7151
[3] What is codeveloper, category theoretically?


On 27.9.2020 17.18, Oleg Grenrus wrote:
> Dear development aware cabal users
>
> I request you to comment on a plan to gradually remove `v1-` commands.
>
> Some users have commented about the notice in `v1-` commands' `--help`:
>
>   It is a legacy feature and will be removed in a future release of
>   cabal-install. Please file a bug if you cannot replicate a working v1- use
>   case with the nix-style commands.
>
> This note is vague, and indeed we don't have any concrete plan *when*
> something will be removed.
>
> Lets have one.
>
> At the moment, in upcoming `cabal-install-3.4.0.0` we have following
> commands:
>
>   v1-build          Compile all/specific components.
>   v1-configure      Prepare to build the package.
>   v1-repl           Open an interpreter session for the given component.
>   v1-run            Builds and runs an executable.
>   v1-test           Run all/specific tests in the test suite.
>   v1-bench          Run all/specific benchmarks.
>   v1-freeze         Freeze dependencies.
>   v1-haddock        Generate Haddock HTML documentation.
>   v1-exec           Give a command access to the sandbox package repository.
>   v1-update         Updates list of known packages.
>   v1-install        Install packages.
>   v1-clean          Clean up after a build.
>   v1-doctest        Run doctest tests.
>   v1-copy           Copy the files of all/specific components to install
> locations.
>   v1-register       Register this package with the compiler.
>   v1-reconfigure    Reconfigure the package if necessary.
>
> I propose the following plan:
>
> In 3.4.0.0 (to be officially released in a week from GHC-9.0.1 release,
> i.e. soon)
> we have already removed `v1-sdist`, as `v2-sdist` have completely
> subsumed the
> functionality, yet the interface is slightly different.
>
> In 3.6.0.0 (to be release around GHC-9.2) we will remove
>
>    - v1-update:  the v2-update should already completely subsume the
> functionality
>                  (but this have to be checked)
>    - v1-doctest: is a commeand which never worked properly
>    - v1-exec:    its description mentions sandbox package repository,
>                  as sandbox are already removed, v1-exec has no use
>
> In 3.8.0.0 we will remove what I'd call "interactive" development
> commands:
>
>    - v1-freeze
>    - v1-bench
>    - v1-reconfigure
>    - v1-repl
>    - v1-run
>    - v1-clean
>
> These are commands which I don't expect to be heavily used in scripts.
>
> That would leave us with what I consider essential commands.
> I think these are sufficient if `v1-` commands are used in some
> bigger build process. (Though, I'd suggest to use raw `./Setup`)
> This can be removed in 3.10 (or more conservatively in 3.12).
>
>    - v1-build
>    - v1-configure
>    - v1-haddock
>    - v1-test
>    - v1-install
>    - v1-copy
>    - v1-register
>
> These commands will be removed in 3.12 (skipping the 3.10).
>
> In summary:
>
>   v1-sdist          now          3.4
>   v1-build          two years    3.12
>   v1-configure      two years    3.12
>   v1-repl           one year     3.8
>   v1-run            one year     3.8
>   v1-test           two years    3.12
>   v1-bench          one year     3.8
>   v1-freeze         one year     3.8
>   v1-haddock        two years    3.12
>   v1-exec           6 months     3.6
>   v1-update         6 months     3.6
>   v1-install        two years    3.12
>   v1-clean          one year     3.8
>   v1-doctest        6 months     3.6
>   v1-copy           two years    3.12
>   v1-register       two years    3.12
>   v1-reconfigure    one year     3.8
>
> I should mention that we don't test any of `v1-` commands anymore.
> The code is there, and if it works it is good, but if it doesn't,
> we wont actively pursue fixing it (rather concentrating on whatever
> issues are holding you from migration to v1-build).
>
> I would value comments whether the list for 3.6
> (v1-update, v1-doctest, v1-exec) is found controversial.
> Very rough estimate is that 3.6 will be released early 2021,
> in about a half a year from now.
>
> 3.8 would happen a year from now. (Fall 2021)
> 3.12 where the v1-build is gone would happen in two years from now.
> (Fall 2022)
>
> Disclaimers:
>
> I don't want to set the plan in stone.
> In other words, "All rights reserved",
> but we would avoid removing anything earlier than agreed.
> Yet, it's impossible to predict the future,
> and we might be forced to diverge from that plan.
>
> The version numbers are informative,
> 3.10 could be 4.0, or the release schedule could be accelarated or
> slowed down.
> We will stick to the time based definitions.
>
> - Oleg
>
> _______________________________________________
> cabal-devel mailing list
> cabal-devel@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel
_______________________________________________
cabal-devel mailing list
cabal-devel@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel

Reply via email to