On 09.06.2021 14:45, Harald Oehlmann wrote:
> with all respect, the issue here is not an issue of willingness of "the"
The issue is an issue of not-awareness, I think. Or has anyone already
proposed a TIP for moving all the Tcl, Tk and extension sources to
Github? Has it already been discussed?
> Many individuals have tried that and a Batteries Included version
> was always a dream. Many initiatives raised and dissappeared.
The point here is not a batteries included sort of distribution. The
point here is to get the Tcl sources and Tcl package sources to a
mainstream infrastructure that almost every developer uses today, for
the following purposes:
- single point of entrance for everything around the sources, the
development, the issues, the binary releases, etc.
- low to zero learning curve for people who want to use Tcl / extensions
in terms of "how and where do I get stuff"
- low to zero learning curve for people who like to contribute. Fixes,
enhancements, TIPs and so on.
- modern infrastructure for *collaborating* on the sources. Especially
pull requests for code reviews about code changes.
- and especially: a *well known* infrastructure
Will that be enough to "make Tcl great again"? No, certainly not! And
that is far from what can be expected.
But it will at least throw in some points to "make Tcl *visible* again".
And it will certainly add many points to "make Tcl better usable" for a
variety of people who want to use it, contribute to it, distribute it,
write their own extensions etc.
And then let me come back to the "batteries included" distro discussion.
Every language has nowadays some kind of package manager. Pip for
python, cargo for rust, maven for java.... you name a language and
you'll find a package manager that can pull and manage development
dependencies. Tcl had such a thing, called teacup. It was part of
ActiveTcl, but it apparently has disappeared... anyway.
The point is, that such a package manager can be much more easily
implemented, when the sources and binary releases for packages are in
one place, in one standard format and the package manager knows where to
pull them. That's where the scattering and split brain situation, that
we have today, is really debilitating... It's almost impossible for
anyone to implement a package manager when the packages are too
scattered around the net.
> The issue
> is the lack of constant manpower.
If you want to aggregate all the man power in a few men, yes, there will
always be a lack. But if you create the infrastructure for many men who
can *easily* contribute and spend as little manpower as they can, the
situation is different.
> It is not a question of "GIT" or "Fossil" nor money.
I disagree. I think it is this question of git or fossil, really. As I
wrote elsewhere, fossil is good and nice, and it has it's niches. But
Git is well known to every developer, as is github. And that means that,
if we used git/github, new and old developers:
- have a single entry point to everything (which is github)
- have a low to zero learning curve in terms of "how and where do I get
- have a low to zero learning curve for contributing
- have a modern infrastructure for collaborating on the sources.
- and especially: have a *well known* infrastructure
Using fossil instead does set Tcl always somewhat apart from the
mainstream and makes things harder. And therewith creates a higher entry
threshold for newcomers and some headaches for old users like me. That's
the sad truth.
Remarkably: Its not about "not use fossil because fossil is bad". Fossil
is very good. But it's not as popular as we need a VCS and collaboration
platform to be, imo.
> But before you do that, please
> investigate the current fossil infrastructure. Have you checked
fossil? It is a BI of highest quality with many packages
> requested by Ole.
But the problem is: I am one of the many. I work with git the whole day
and I am busy with other languages. I use Tcl mainly in my spare time.
And sometimes I want to contribute something, i.e. a small fix in some
tcllib code (happened recently). Not more. So all I want to do is:
- fork the project on the platform that I know and work with anyway
- make my fix
- create a PR for the maintainer of the project to review
- discuss that PR and hope it will be merged
That's all. All that should be necessary, and all for what I have time.
It works like that flawlessly, for many other projects.
And I certainly do not want to spend time to learn a completely
different ecosystem around a different VCS tool, creating accounts on
various different servers, etc. just to contribute a few lines of code
to a project.
If contributing a fix means that I have to go down that road, I'd rather
stay out. That in turn means, that my fix is _not_ contributed. And you
can imagine what it means if many such small fixes from many people like
me are _not_ contributed.