Gerph <
ge...@gerph.org> wrote:
> On Sunday, 14 June 2020 13:40:16 UTC+1, druck wrote:
> > I'm thinking of open sourcing some of my RISC OS software such as
> > TimerMod. As I see it there are three questions, which I'd appreciate
> > your thoughts on.
> >
> > 1) How to handle RISC OS file types
>
> NFS-style encoding is the only way to go, really.
>
> This form is also supported by the InfoZip tools (`zip` and `unzip`) and
> can be used to construct RISC OS file information from the filesystem, and
> vice-versa.
It's also supported by HostFS on RPCEmu and I think VRPC too.
> > 3) What licence to use
>
> BSD or MIT, is my preference.
+1 Unless you want to make strong copyleft statements, I'd stick with BSD.
> IF you want to host on a public git repository, and would like people to
> be able to check out the code, and build it, git's a fine choice.
+1 I think git has 'won', over SVN, P4, bzr, Mercurial, etc etc.
> GitHub seems to be more popular. I use GitLab, self hosted, for all my
> RISC OS and non-RISC OS things. They're equally useful and workable.
> There are differences in presentation and each has their own quirks. Then
> there's BitBucket. I've only found a couple of RISC OS things on
> BitBucket, and having had experience with using it at previous jobs, I shy
> away, myself.
Agreed. RPCEmu using Mercurial is the only thing that made me use Bitbucket,
and I can't say I'm that keen.
> > The main problem with either of those at the moment is the the RISC OS
> > version of git can't do SSL yet, so wont be able to access them
> > directly, and I ultimately want to allow a RISC OS end to end solution.
>
> Strictly that's a problem that is aside from the issue of making it open
> source. Eventually someone will address that beyond what's already
> present. But, the point is that both GitLab and GitHub (and BitBucket,
> and others) will allow you to download a copy of the source. I've worked
> with open source projects that despite using git, and having a front end
> for Pull requests/merge requests, still insist on diffs by mailing list
> for review. So it's hardly uncommon for that to happen. PLUS, both
> GitLab and GitHub offer in browser editors so that people can make changes
> and create branches without actually downloading the source, etc.
To expand on that, it's worth listing a few features these provide on top of
basic git hosting:
- .zip downloads of your source (so no need to run a git client on a RISC OS
or other machine)
- 'forks': someone can 'fork' your repository, creating a copy on their
account. This links back to your repository, and github will show you who
has forked your repo. This is good for keeping track of people who have
made their own changes to your code but not committed them back
- 'issue tracking': bug reports etc can be recorded against on your project
- 'pull requests': if a contributor makes changes, they can commit them to a
branch (either on their fork of the repo or, with your permission, a branch
in your repo). They then request the changes are merged by creating a pull
request, which is a bit like an item on the issue tracker but attached to
that branch. You can accept the request, when it'll get merged into your
tree automatically, or you can say 'I like it but could you change...' and
the conversation can go on until the code is ready to merge.
- CI integration: you can have commits and pull requests automatically built
and tested so it makes sure they work before you approve them
- teams, so you can control who can access which repos for what purposes
(read/write/manage/admin). Since many developers have a github account,
it's a few clicks to give them access
- previews: rendering of common file types (documents, images, etc) in the
web interface. In particular, Markdown is a popular way to write text
documentation that is readable as-is but can be pretty-printed on the
webpages; if a folder has a README.md file in it it will be displayed as
part of the folder listing.
- wikis: for editable documentation
- releases: for allowing users to download generated binaries, linked to
particular versions of the source
- Git LFS: for hosting large files (>50MB) in the repo without forcing
everyone to download the entire history of them when they clone
(handy for things like images)
Oh, and backups :) One nice thing about git is that every who checks out
has the full history of the repo at all times, so if this happens:
https://www.theregister.com/2014/06/18/code_spaces_destroyed/
you still have the full history (although not necessarily your issue tracker
etc unless you backed those up). I think if either gitlab or github did that
the software engineering industry would have much bigger problems.
> It used to be the case that you could only have a few 'private'
> repositories on GitLab and GitHub, but I believe that GitLab allowed
> unlimited, and after MS bought GitHub, they did the same, some time last
> year if I remember right. (my history may be off there, but I'm pretty
> sure they both offer private). So you can always start out using the
> repositories in private to get the feel for things, and then open them up
> later if you wish.
2018. The limits are now based on the number of CI execution time and
package storage for private repos - not likely to bother RISC OS projects
very much
> For selfhosting, GitHub offer GitHub enterprise, but I believe that's
> expensive and probably not a sane option for an individual. GitLab, on
> the other hand, offer the community edition - which I think is what you
> see on RISC OS Open's site, and is what I run for myself. ISTR you could
> also selfhost through AWS marketplace if that was your thing. I run
> selfhosted myself because I would prefer to keep my things local to me,
> and I have sufficient server space to do so - I suspect that most people
> don't, and the cloud hosted servers are sufficient.
I'd suggest starting with the cloud versions, and moving on-prem if you have
a strong need to do so. Due to the way git works, 'what if it disappears
tomorrow' concern of cloud services is much less of a worry. The main reason
to go on-prem is security of data that can't be held in the public cloud,
and possibly cost if you need some of the enterprise-y features (which is
very unlikely for a RISC OS project).
> GPL is not a nice license for reuse, unless you want to force people to
> buy into your ideology. To me, that's not free. IMO. BSD or MIT,
> depending on your preference are far freer license, without hinderance for
> reuse (and without a great big manifesto behind it). Or there's the zlib
> license which is more wordy, but about as suitable.
I'd suggest copyleft should be a decision you actively take. If you don't
really care that much, slap a BSD or MIT licence on there. If you've
thought more about the issues, GPL or EUPL (noting that EUPL is less
understood in the USA).
https://choosealicense.com/
Theo