Github, Gitlab, or something else?

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
User avatar
Bilbo47
Fanatic
Fanatic
Posts: 238
Joined: 2017-11-18, 04:24

Re: Github, Gitlab, or something else?

Unread post by Bilbo47 » 2020-07-09, 04:12

Off-topic:
... why I am doing a rewrite of Phoebus from scratch instead of modifying the existing codebase. It is plain and simple: the changes needed to take it to the next level are so numerous that to continue down the path I started would literally be more work and the bulk of it would be changed or scrapped anyway.
When writing actually-good non-trivial software, re-writing it two or three times is par for the course, and should be baked in to the roadmap. The only reason people don't know this, is commercial corporate development only needs to be "good enough" which actually means "pretty crappy".

No developer knows what a new system's final code structure is going to look like before writing it. If you already pretty much know, then it's not a new system, and it's one you have basically written before. Only after the system works correctly and efficiently is the developer able to see what code structure would naturally fit the system, because the system didn't exist before it was written.

Like Tobin says, taking a codebase to the next level of functionality usually requires altering its structure, and changing a decent-sized structure is just *more work* than building it "right" from the ground up. When you already know exactly where you're going, it's much easier to get there. With no detours and trackbacks, it's faster too.

I call this development approach "building the architecture to be compatible with the functionality". Another significant benefit of this approach comes in the *next* round of development, where you can more-easily extend the second-round structure to accommodate additional functionality, because that extensibility was built in to the design from the start, and the structure already closely matches the functionality.

This level of code quality and architectural sophistication is impossible during the first round of development, because at that early stage you're just focused on getting the basics to operate without screwing up the data.

So a software's first draft is a hack that should be not used in production. The second draft is a mostly-usable stopgap. The third draft is finally good enough for other people to look at and depend on. Without this scale of iteration, projects tend to collapse under the unstable weight of their own rickety Goldberg-ian structure. If a package costs too much to upgrade, then it's a dead system. Any use it sees after that is just unholy consorting with a zombie. Writing non-contraptions is a basic requirement if you want any hope of ending up with a truly solid system.

This year I wrote a utility (twice) and then discovered I had also written practially the same thing (twice) in 2012. Each second round was a noticable improvment over the first round, and vastly more satisfying as a developer, because the code was correct for the task it performed, not just because the task got performed correctly and the output was useful. This utility is not just a tool. The source code is a work of art on its own, even if it never gets compiled. As its creator, it's not up to me to judge that artistry on its merits, but again as its creator, I am the only one with the need to feel artistically satisfied by the source code. If someone else ever appreciates that code by just reading it, then good on them, but that's an inconsequential side effect.

My rambling points out a constraint of commercial development that I would expect to be *free of* on projects such as this endeavor here. Yes, developers who actually care will make things take longer, but that's okay because their things end up *better*.

New Tobin Paradigm

Re: Github, Gitlab, or something else?

Unread post by New Tobin Paradigm » 2020-07-09, 05:19

Well according to recent posts you assume incorrectly.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Github, Gitlab, or something else?

Unread post by Moonchild » 2020-07-09, 09:58

Off-topic:
New Tobin Paradigm wrote:
2020-07-09, 05:19
Well according to recent posts you assume incorrectly.
No, he doesn't. You explained to me why you wanted to redo it again when I asked because I had my doubts whether it was wise to do so when you yourself said all of us had to focus on getting WebComponents in; you answered my question why you wanted the rewrite. As far as I'm concerned that's that, and you can implement it any way you think it needs implemented to serve its purpose best.
I'm not saying you shouldn't, and I never have.
I guess you missed my entire point mentioning it here in this thread, so never mind. It's not about Phoebus or its rewrite, but rather the issue with communication mentioned.
Maybe when you find the desire to actually have an IM chat again we can talk about it. I'm done here with these off-topic posts.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1535
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Github, Gitlab, or something else?

Unread post by athenian200 » 2020-07-11, 03:13

https://codeberg.org/

This site caught my eye because they run Gitea under the hood, and it seems like if we can get away with using a free hosting service that runs on Gitea rather than paying to host it ourselves, that might be the best option possible. It does mean we don't control the code running ourselves, but we would be relying on upstream somewhat with Gitea anyway. Another potential upside is that we'd be part of a community... a smaller one than GitHub, but a community nonetheless.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Github, Gitlab, or something else?

Unread post by Moonchild » 2020-07-11, 09:04

We can't use Codeberg because we can't satisfy their Terms of Service (yes I do read those), specifically:
User-contributed content in all repositories, wikis and issue trackers:
* must only contain code and data compatible with the Open-Source license requirements defined by FSF or OSI,
Our source tree includes code and data under other, incompatible licenses (e.g. proprietary media code with a patent grant, and licenses not listed by the FSF and OSI), and our branding is also not licensed in that way.

In addition, they make a vague statement about that the code tree must be of a "reasonable size" without stating specifics. Since we don't know what resources they use, there's no way to tell if our (large!) projects are of a "reasonable size" or if they will impact other projects on their infrastructure.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
RoestVrijStaal
Moon lover
Moon lover
Posts: 81
Joined: 2019-06-19, 19:18
Location: Dependency Hell

Re: Github, Gitlab, or something else?

Unread post by RoestVrijStaal » 2020-07-31, 22:18

I press an AED on this topic.

So, if I understand correctly, the "software forge" replacing the current GitHub service needs to meet following requirements:
- Self-hosted or "On Premise"; the dev team needs to have full grasp about the "forge" without intervention of the host.
- Written in a programming language which is understood by the dev team. It seems Ruby, Perl, JavaScript/TypeScript on Node.js, Go and Python are ruled out. And C & PHP are endorsed.
- "Cheap" to run and maintain.

Well, the advantage of that amount of requirements is that the amount of choices shrinks down to an digestible amount.

In terms of "all the options are still open", how about:

- Fossil, a git/svn/mercurial competitor but with Bug Tracking, Wiki, Forum, and Technotes in one binary executable. Mostly written in C.
- GitBlit Mostly written in Java.
- Do mouth-to-mouth resuscitation on Gitamin. Mostly written in PHP.
- GitBucket. Mostly written in Java.
- Flyspray. Mostly written in PHP.

Please be aware that I don't have any experience with the ones I mentioned.

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1535
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Github, Gitlab, or something else?

Unread post by athenian200 » 2020-08-01, 00:02

RoestVrijStaal wrote:
2020-07-31, 22:18
- Fossil, a git/svn/mercurial competitor but with Bug Tracking, Wiki, Forum, and Technotes in one binary executable. Mostly written in C.
I actually thought of this, the only problem with it is that it's not based on Git, and I'm not sure if it would support multiple projects.
- GitBlit Mostly written in Java.
That URL doesn't work, but http://gitblit.github.io/gitblit/ does. From what I can tell it seems like it might work.
- Do mouth-to-mouth resuscitation on Gitamin. Mostly written in PHP.
It looks like an abandoned project from some Chinese developers written using frameworks that were trendy about 5 or 6 years ago. Not so sure about this one.
- GitBucket. Mostly written in Java.
This is another one that looks like it might work, pretty similar to GitBlit though.
- Flyspray. Mostly written in PHP.
This looks like it could work for bug tracking, but it doesn't seem to have any repository/code management features. It appears to be just a bug tracker.

So all in all, it looks like GitBlit and GitBucket are the only two worth looking at. Which makes sense because it seems like the only major alternative to something like Node.js + Go on the server side these days would appear to be some sort of Java-based solution.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Github, Gitlab, or something else?

Unread post by Moonchild » 2020-08-01, 10:26

RoestVrijStaal wrote:
2020-07-31, 22:18
- Written in a programming language which is understood by the dev team. It seems Ruby, Perl, JavaScript/TypeScript on Node.js, Go and Python are ruled out. And C & PHP are endorsed.
Not necessarily; we'd be fine with not-understood languages as long as we can count on the devs to be around to help solve issues with it. Java would actually be out otherwise too since none of us are fluent in it (one of the reasons PM4A was discontinued).
RoestVrijStaal wrote:
2020-07-31, 22:18
- "Cheap" to run and maintain.
Mind the quotes. I'm fine with paying some for using it, but not ridiculously-expensive services that aim directly at commercial code development that can afford thousands for something like that. There's a fine line to be drawn there.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Locked