Skip to content
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 bzr, cvs, darcs, fossil and svn support #4802

Merged
merged 2 commits into from
Sep 30, 2017
Merged

Conversation

tarsius
Copy link
Member

@tarsius tarsius commented Jun 14, 2017

This isn't the first time that I suggest that Melpa should drop support for little used fetchers. Unfortunately I cannot find those discussions anymore. If I remember correctly, @purcell's position was that he is not opposed on principal, but that he sees no reason to do so until these fetchers start causing issues.

The removal of some fetchers has recently come up again in #4798, where @Fuco1 said:

All complex systems tend to break, this is a given in programming. Reducing complexity promotes experimentation and growth. When rolling out "partial support" is met without much enthusiams, then we should simply drop the support altogether.

I agree with that. I have contributed to package-build.el in the past and the existence of little used fetchers was indeed an issue for me.


This pull requests attempts to demonstrate how we can drop support for three vcs fetchers without losing much. I hope that by making the proposal very concrete, we can actually reach a decision on whether to do this or not.

Please see the commit messages for details. Here is a summary:

  • Drop support for the fossil fetcher. Not a single package used it.
  • Drop support for the bzr fetcher. The two recipes that still used bzr now import from stale repositories on the Emacsorphanage. The upstream repositories have not seen any commits in years. But in the unlikely event that upstream decided to resume work, we would not automatically notice that.
  • Drop support for the darcs fetcher. The two recipes that still used darcs now import from active repositories on the Emacsmirror. These repositories are only updated periodically, so there sometimes will be delays.

So by migrating four packages we can drop support for three fetchers. There are small drawbacks as mentioned, but I think that the reduced complexity outweigh those by far.

Support for cvs and svn cannot be dropped yet because this pr only migrates seven out of the remaining thirteen twelve packages to the Emacsmirror.

  • Two cvs-using packages have not been migrated so far. Both of these packages actually live in the same repository and I have asked upstream to consider a move to git (but have not gotten a reply yet). If that's what it takes, then I am willing to periodically import the cvs repository myself.
  • Four Three svn-using packages have not been migrated so far because they consist of more than one library, which means that the Emacsmirror cannot use its file fetcher.
    • caml last updated two years ago. Let's ask upstream to migrate, but there is a good change that would fail.
    • confluence last updated two years ago. Let's ask upstream to migrate.
    • dic-lookup-w3m actively maintained. Let's ask upstream to migrate.
    • ruby-electric @knu the file in the svn repository contains a link to https://github.com/knu/ruby-electric.el. Is the git repository up-to-date/ahead? Old discussion in Add ruby-additional, elisp files in the CRuby distribution. #1079. [Given that the url in both the svn and git repository points at the git repository, I decided that lacking a response the git repository should be preferred.]

@@ -803,9 +684,6 @@ Optionally PRETTY-PRINT the data."
"--exclude=CVS"
"--exclude=.git"
"--exclude=_darcs"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line can go too, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thanks for catching that.

@@ -12,9 +12,7 @@ sudo ${SUDOENV} apt-get -y install \
bzr \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can kill bzr here too?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

@tarsius
Copy link
Member Author

tarsius commented Jun 15, 2017

Note that the changes to package-build.el should be made in its own repository. I haven't done that yet to make it easier to review all the changes in one place.

@Fuco1
Copy link
Contributor

Fuco1 commented Jun 15, 2017

@tarsius thank you very much for taking up the time, I know you are super busy. Let me know if I can do some work, I will happily donate some time to this as well.

@tarsius
Copy link
Member Author

tarsius commented Jun 17, 2017

Let me know if I can do some work,

You could send friendly mails to the maintainers of packages that still use svn or cvs and offer to help them convert to git. Start by trying to convince the maintainer of w3m. If you succeed in that, then we can drop cvs support.

@purcell
Copy link
Member

purcell commented Sep 9, 2017

I feel a bit weird about relying on Emacsmirror, but I'd be happy to merge this if the conflicts get resolved. Would you then sync the changes back to the package-build repo, @tarsius?

@tarsius
Copy link
Member Author

tarsius commented Sep 9, 2017

I am now importing the full history of most of these packages into git repositories using a simple Makefile again. More on that later -- this response is about two of the four packages that I do not import again (yet?).

debian-bug and debian-changelog-mode are only interesting to Debian users, who actually contribute to Debian, and who probably would not mind installing them using apt-get install debian-el dpkg-dev-el (which has the added benefit that these packages come with other closely related Emacs libraries).

debian-bug has been downloaded only 69 times from Melpa and debian-changelog-mode only 168 times.

So my suggestion is that those two packages are removed from Melpa.

@purcell
Copy link
Member

purcell commented Sep 9, 2017 via email

@tarsius
Copy link
Member Author

tarsius commented Sep 9, 2017

Okay will do it.

@@ -802,10 +583,6 @@ Optionally PRETTY-PRINT the data."
"--exclude=.svn"
"--exclude=CVS"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can go too, probably.

@@ -1524,7 +1301,7 @@ If FILE-NAME is not specified, the default archive-contents file is used."
(list (intern (read-string "Package name: "))
(intern (completing-read "Fetcher: "
(list "github" "gitlab" "bitbucket"
"git" "wiki" "bzr" "hg" "cvs" "svn")
"git" "wiki" "hg" "cvs" "svn")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't also drop cvs and svn from this list?

tarsius added a commit that referenced this pull request Sep 9, 2017
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 hours ago           |                 1 |

Now we do it for these too:

| Package (12)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| caml              | svn    | 1 year, 11 months ago |                 0 |
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 4 hours ago           |                 1 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 4 hours ago           |                 1 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... well as `shimbun', which is part of the `w3m' repository.
tarsius added a commit that referenced this pull request Sep 9, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
tarsius added a commit that referenced this pull request Sep 9, 2017
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 hours ago           |                 1 |

Now we do it for these too:

| Package (12)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| caml              | svn    | 1 year, 11 months ago |                 0 |
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 4 hours ago           |                 1 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 4 hours ago           |                 1 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... as well as `shimbun', which is part of the `w3m' repository.
tarsius added a commit that referenced this pull request Sep 9, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
tarsius added a commit that referenced this pull request Sep 10, 2017
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 weeks ago           |                 1 |

Now we do it for these too:

| Package (12)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| caml              | svn    | 1 year, 11 months ago |                 0 |
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 3 years, 4 months ago |                 0 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 1 year, 4 months ago  |                 0 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... as well as `shimbun', which is part of the `w3m' repository.
tarsius added a commit that referenced this pull request Sep 10, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
tarsius added a commit that referenced this pull request Sep 10, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
tarsius added a commit to melpa/package-build that referenced this pull request Sep 10, 2017
@tarsius tarsius changed the title Remove support for bzr, darcs, and fossil fetchers; prepare removal of cvs and svn fetchers Remove bzr, cvs, darcs, fossil and svn support Sep 10, 2017
@alphapapa
Copy link
Contributor

Just a thought: developers who run other distros (or even, e.g. OS X) but also package their software for Debian may find debian-changelog-mode useful, and installing it manually by extracting it from the deb would be a pain.

tarsius added a commit that referenced this pull request Sep 11, 2017
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 weeks ago           |                 1 |

Now we do it for these too:

| Package (12)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| caml              | svn    | 1 year, 11 months ago |                 0 |
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 3 years, 4 months ago |                 0 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 1 year, 4 months ago  |                 0 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... as well as `shimbun', which is part of the `w3m' repository.

A more or less up-to-date version of this table can be found at
https://emacsmirror.net/stats/melpa.html.
tarsius added a commit that referenced this pull request Sep 11, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
tarsius added a commit that referenced this pull request Sep 13, 2017
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 weeks ago           |                 1 |

Now we do it for these too:

| Package (11)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 3 years, 4 months ago |                 0 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 1 year, 4 months ago  |                 0 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... as well as `shimbun', which is part of the `w3m' repository.

A more or less up-to-date version of this table can be found at
https://emacsmirror.net/stats/melpa.html.
tarsius added a commit that referenced this pull request Sep 13, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
@joewreschnig
Copy link
Contributor

joewreschnig commented Sep 16, 2017

I think it would be worthwhile to split off parts of this for each VCS, as each has different issues:

  • Fossil is literally unused, and could go right away right now and no one would notice.
  • CVS is fundamentally insecure, and at some point the bullet must be bit and we drop w3m (the only remaining repository) because of that alone.
  • Bzr is dead, unofficially for certain if not officially yet. (Even its official download page no longer works did not work when I wrote this.)
  • Darcs and Subversion should probably be discouraged, but are secure and actively maintained. The only reason to remove them is the maintenance burden on MELPA.

@joewreschnig
Copy link
Contributor

Just a thought: developers who run other distros (or even, e.g. OS X) but also package their software for Debian may find debian-changelog-mode useful, and installing it manually by extracting it from the deb would be a pain.

This is the situation I'm in now, but what the removal is probably going to do is get me off my butt to fork and modernize the package, so I think it's win/win (other than my free time).

@tarsius tarsius closed this Sep 18, 2017
@tarsius tarsius deleted the remove-fetchers branch September 18, 2017 16:37
@tarsius tarsius restored the remove-fetchers branch September 19, 2017 07:43
@tarsius tarsius reopened this Sep 19, 2017
@tarsius
Copy link
Member Author

tarsius commented Sep 19, 2017

Ups...

tarsius added a commit that referenced this pull request Sep 19, 2017
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 weeks ago           |                 1 |

Now we do it for these too:

| Package (11)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 3 years, 4 months ago |                 0 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 1 year, 4 months ago  |                 0 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... as well as `shimbun', which is part of the `w3m' repository.

A more or less up-to-date version of this table can be found at
https://emacsmirror.net/stats/melpa.html.
tarsius added a commit that referenced this pull request Sep 19, 2017
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
The upstreams of these packages use some version control system
other than Git or Mercurial.  As you can see there are very few
such packages, which is why support was removed from Melpa (not
having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.

Before this commit this was already done for these packages:

| Package (2)       | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| swbuff            | cvs    | 10 years ago          |                 0 |
| vc-fossil         | fossil | 4 weeks ago           |                 1 |

Now we do it for these too:

| Package (11)      | Vcs    | Last commit           | Commits last year |
|-------------------+--------+-----------------------+-------------------|
| cg                | svn    | 7 months ago          |                 2 |
| clang-format      | svn    | 4 weeks ago           |                26 |
| color-theme       | bzr    | 8 years ago           |                 0 |
| confluence        | svn    | 6 weeks ago           |                 1 |
| darcsum           | darcs  | 3 years, 4 months ago |                 0 |
| dic-lookup-w3m    | svn    | 5 weeks ago           |                 4 |
| dsvn              | svn    | 6 weeks ago           |                 1 |
| helm-ls-svn       | svn    | 2 years, 2 months ago |                 0 |
| ruby-additional   | svn    | 3 weeks ago           |                12 |
| tex-smart-umlauts | darcs  | 1 year, 4 months ago  |                 0 |
| w3m               | cvs    | 3 weeks ago           |                74 |

... as well as `shimbun', which is part of the `w3m' repository.

A more or less up-to-date version of this table can be found at
https://emacsmirror.net/stats/melpa.html.
Not having to support five vcs for the benefit of a handful of
packages makes it more appealing to improve the remaining code).

See #4802.
@purcell purcell merged commit 30de78c into master Sep 30, 2017
@purcell purcell mentioned this pull request Sep 30, 2017
3 tasks
@tarsius tarsius deleted the remove-fetchers branch September 30, 2017 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants