[Oberon] all in one git tree

Charles Perkins chuck at kuracali.com
Fri Dec 25 15:52:58 CET 2020


I have been giving some thought to this. Once again Jörg has identified a
key issue -- Those of us who have an interest in Oberon each may be
interested in different aspects of Oberon, including the language, the core
system, and the user interface/environment presented to the user.

Git gives its users a way to track changes to a codebase. Code review
systems based on git help people working on that codebase to collaborate.

I think we are missing a tool in Oberon that would enable coordinated
development without prescribing a central authority. A source-code
packaging system could fill this need.  What we need is an Oberon-centric
source-code package management system that allows for the completely
independent development that is typical of Oberon coders.

I started sketching the requirements for an Oberon-style package management
system here - https://github.com/io-core/technotes/blob/main/technote008.md.
For example here --https://github.com/io-orig/System/blob/main/Edit.Pkg  is
a package file for the text subsystem part of Oberon that might
receive enhancements independently of other parts of Oberon. A complete
Oberon 'System' corresponding to a Linux 'Distro' could be described in an
index of packages like this -
https://github.com/io-orig/System/blob/main/Packages.Ndx

In the spirit of Oberon the packages descriptions are as simple as
possible, just csv text files. No XML, JSON, etc. required. Simple to parse
even from a minimal system.

The idea is that anybody can have a git repo or even just a local
subdirectory that has Oberon source in it. That directory could have a
complete Oberon system or just a few files. The Oberon Tetris module, for
example, could be a package of its own. An 'ObTris.Pkg' file could report
that it depends on 'at least' the core system (with a 'requires' line like
this: r,[core]/Files,v5.0.0 and provides a single file, like this -
p,ObTris.Mod,cc84a2c0a7c9fa7244a02dbdc7e7f7bd15cfeb7d3903d14950666c95626897e0

I even wrote a go program to manage Oberon source code repositories like
the above but I got distracted by other projects. I intend to return to
https://github.com/io-core/Mod eventually though, if someone else doesn't
prepare a better system sooner.

Best Regards,

Chuck



On Fri, Dec 25, 2020 at 2:38 AM D EMARD <vordah at gmail.com> wrote:

> git/github or any other similar source control thing with web interface
> handles well line-delimited source. It has some language auto-detector
> and syntax highlighter from web interface so if it recognizes
> something, it will report repository like 80% python 15% fortran
> 5% unknown, all have it like this.
>
> Even if it is not a language but a line-delimited stuff like
> kicad PCB design and gerbers, it's also manageable by git.
>
> gIt can of course hold exe binaries or jpegs but repository
> size will then rapidly rise towards GB-"fat" dynosaurus
>
> No mirracles can be expected, git is not having any artifical
> knowledge between branches, it's up to developer A
> to look at other branch from developer B and see if he can
> directly "cherry-pick" some code changes (100% compatible)
> or should he manually rewrite them because API or compiler
> is different.
>
> It's just a collection of all things on one place so you don't
> need may internet connections to see what other developer
> has done, just refresh main tree and switch to whatever branch
> and look at branch history.
>
> Most important thing is giving each change a human-readable
> description why it has been done or what it changes, so other people
> can know what's inside before reading the code itself. Human-reading
> the historic comments should be there help navigation and borrowing
> of the code.
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20201225/d771652b/attachment.html>


More information about the Oberon mailing list