docker-library / buildpack-deps

MIT License
445 stars 113 forks source link

FR: add Fossil to scm #87

Closed hxzhao527 closed 3 years ago

hxzhao527 commented 5 years ago

https://github.com/docker-library/buildpack-deps/blob/99a1c33fda559272e9322b02a5d778bbd04154e7/stretch/scm/Dockerfile#L4-L12

Now image buildpack-deps:stretch-scm does not contains fossil-scm. Is there any plan to support this scm.

root@7df1b43b2150:/# apt search fossil
Sorting... Done
Full Text Search... Done
fossil/xenial 1:1.33-3 amd64
  DSCM with built-in wiki, http interface and server, tickets database
tianon commented 5 years ago

Do you have any examples of projects which are using it? (This is the first I've ever heard of it, to be honest.)

Even better would be pointing to code in something like pip, gem, npm, etc which supports it, or a build of one of those modules which requires it, since those are the primary focus of this image.

tianon commented 5 years ago

From their website, it doesn't seem to be an SCM at all, but rather a management interface for hosting Git, etc repos, is that correct?

tianon commented 5 years ago

If https://github.com/goproxyio/goproxy/issues/35 (and thus https://github.com/golang/go/issues/10010 + https://github.com/golang/go/blob/ed15e82413c7b16e21a493f5a647f68b46e965ee/src/cmd/go/internal/modfetch/codehost/vcs.go#L226) is the rationale, then I'd point to https://github.com/docker-library/buildpack-deps/pull/66 which removes bzr from all newer Debian-based variants due to it being so esoteric (which from what I can tell, Fossil is as well -- only a small handful of public projects appear to be using it).

hxzhao527 commented 5 years ago

Indeed, Fossil is not as famous as git or svn. If no golang/go, I won't know this scm tool either.

Accoding to Wiki, SQLite is hosted on Fossil, and it does.

You can find many repos from chiselapp, a website provide free source code hosting for Fossil repositories.

hxzhao527 commented 5 years ago

If goproxyio/goproxy#35 (and thus golang/go#10010 + https://github.com/golang/go/blob/ed15e82413c7b16e21a493f5a647f68b46e965ee/src/cmd/go/internal/modfetch/codehost/vcs.go#L226) is the rationale, then I'd point to #66 which removes bzr from all newer Debian-based variants due to it being so esoteric (which from what I can tell, Fossil is as well -- only a small handful of public projects appear to be using it).

I am not sure whether Fossil is just a small handful tool based on Git. Here is a comparison between Fossil and Git.

tianon commented 3 years ago

Coming back to this, I can't say I've seen the popularity of Fossil increase, nor the popularity of high-profile projects using it.

Additionally, I'm not aware of anyone besides Go who actually supports it (or at least, haven't seen anyone asking for it explicitly anywhere else), so I don't think it fits the use case of these images:

The main tags of this image are the full batteries-included approach. With them, a majority of arbitrary gem install / npm install / pip install should be successful without additional header/development packages.

As a final thought, (and as you're well aware :sweat_smile:) with Go Modules, the VCS is even less important to most users, since now Go can properly download the appropriate snapshot/version of each dependency from the GOPROXY (even more convenient, reproducible, and less dependent on third party tooling), so IMO, https://github.com/goproxyio/goproxy is the right place for this dependency to be installed, and should cover most users possible need for it against modern Go versions. :heart: