Moving Hedgewars code/bug tracker to GitHub

12 replies [Last post]
KoBeWi
KoBeWi's picture
User offline. Last seen 3 weeks 5 days ago. Offline
Joined: 2010-12-25
Posts: 565

This is probably similar to other of the unrealistic topics I made recently (I mean, few-months-recently).

Right now, Hedgewars is self-hosting on some obscure Mercurial repository. It's also on GitHub, but that's just an illusion - a mirror. That's probably a matter of taste, but still, I found it hard contributing when I written some code. It's impossible to do any useful stuff via the repo interface and sending commit patches is just... well, actually that's more problem for the developers, since they have to fix them and merge them manually. Still it looks like forum/IRC are primary (a.ka. the only) channels for contribution. On the forum there isn't any dedicated section for that. On IRC, not everyone reads the logs (not to mention that discussion isn't organized at all).

Also there's bugzilla. You are supposed to submit bugs there, but the interface isn't really friendly either. You can't edit what you just wrote, there's no formatting, it's awkward to update your submission details and you can only attach files via "attachments" and links.

My point is, I've been using GitHub a lot recently. Created issues, commented issues, made some pull requests. And I have to say I love using it. The interface is amazingly clean and friendly and attracts random contributors simply by being awesome. I mean, Hedgewars is open-source. Open-source software is supposed to have contributors, otherwise we rely on busy developers and the development becomes stale. And right now it's not friendly to contribute, like, at all. Maybe except for some Linux programmers, who are used to obscure interfaces.

But I recently contributed to another open-source project and it's a totally different world. They actively use issues as an easy way for ANY user to submit a bug. The issues are easy to browse, easy to search and labels categorize them really well. Doing pull requests is easy too. It's practically automatic - you just create a fork, do some coding stuff and you can create a PR with a single press of a button. They are categorized the same way as issues, it's even easy to link PR to issue so it's automatically closed on merge. And with the clean interface, developers have it easier to look what the PR does, discuss it, review, request changes and eventually merge. That's infinitely better than posting random patches on the forum, isn't it?
(also, did I mention that you can PASTE an image when writing an issue/pr, so it's automatically attached and displayed? Isn't that cool?)

Well, contributing to Hedgewars has many problems anyways. Like, compiling the game is a trip through hell. It's semi-automatic on Linux, but on Windows it's completely terrible. But putting this aside (and the Pascal code), the official repository and bug tracker doesn't help either. Having them friendlier and more straightforward would at least encourage players to submit bugs on official channels. It could also potentially attract random contributors, as someone could just drop by and leave a PR here and there. This all is achievable if the code is officially moved to GitHub.

Wall of text aside, is there any practical reason why Hedgewars uses self-hosted Mercurial and Bugzilla?

nemo
nemo's picture
User offline. Last seen 22 weeks 3 days ago. Offline
Joined: 2009-01-28
Posts: 1861

Mercurial is pleasant to use, we'd been burnt by two other hosting platforms prior, microsoft owned and not FOSS, diversity in FOSS ecosystems is a good thing (thankfully gitlab is starting to offer some). The only barrier to user bug reporting is fixing SSO with website to avoid creating a second account- we should prioritise that.
Pull requests, kobewi, I offer you and literally anyone who asks access ages ago. You literally just have to commit something and we get alerted in IRC. I mean it's right there in the repo description. Anyone who doesn't even care enough to ask...

--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev

francot514
User offline. Last seen 2 years 6 weeks ago. Offline
Joined: 2015-03-20
Posts: 163

I also would like to have alternative github version of repository that does handles different things and will allow easy people contributions.

nemo
nemo's picture
User offline. Last seen 22 weeks 3 days ago. Offline
Joined: 2009-01-28
Posts: 1861

Easy contributions? You literally just have to click on our repo browser and it tells you to just ask if you want to contribute. Commits are sent straight to our channel Smile

I kinda feel that people who can't even bring themselves to care even a tiny tiny bit about the thing they want to help out with to the extent of looking into it.. Well. Too bad for them.

--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev

Wuzzy
Wuzzy's picture
User offline. Last seen 28 weeks 1 day ago. Offline
Joined: 2012-06-20
Posts: 1304

Nemo summed it up neatly. We like our independence. And it's true, Hedgewars was forced to migrate before. Companies and 3rd-party Git hosters come and go. Hedgewars stays.

I don't want Hedgewars on GitHub.

I like to add that GitHub is a proprietary platform. What I mean with this that some of the site functionality is broken without JavaScript. All (or almost all?) of the site's JavaScript is proprietary. Hedgewars is a free software project. So frankly, I think that depending on GitHub is just ethically incompatible with free software projects.

But being non-free is not the only reason.

GitHub is Git-only. We are using Mercurial. So we would have to switch our entire repository from Mercurial to Git first. Nothing against Git, but the transition is not going to be fun. Personally, I like Git slightly better than Mercurial. But both programs are very good. There is is practically zero benefit from a switch.

Feature-wise, I don't like the GitHub issue tracker, it's too primitive and is pretty poor compared to Bugzilla. The only thing you have for categorizing issues are labels. There are no components, no priorities, no severities and some features are broken without JavaScript. There are no dependencies, no issue groups, no “see also” feature. No input fields for hardware, version. There is no way to sort issues by priority or severity (which I consider to be very important!). GitHub issues leave LOT to be desired. GitHub would actually be step backwards.

The dominance of GitHub is worrying. It is dangerous if so many FOSS projects put all their eggs in a single proprietary basket. It is equally worrying if users become so dependent on GitHub, they never learn how to use anything that is even slightly different.

I agree that GitHub has usability in some areas, but I consider our independence to be more importance.

I also agree that our current method to report bugs is annoying, because you need a separate account.

As for posting features/code, we should probably write at least a workflow in the HWKB. Currently, it's messy, I agree.

Before I became a core dev, I contributed code like this:
- Forked Hedgewars
- Created bookmarks for every new feature (similar to “feature branches” in Git)
- Uploaded my repo on some random hoster (it really doesn't matter which one)
- Poked sheepluva or nemo to take a look

It's not ideal, but it worked.

Quote:
On the forum there isn't any dedicated section for that. On IRC, not everyone reads the logs (not to mention that discussion isn't organized at all).

Well, we have Content Creations. I don't think a new subforum makes sense, we don't have that many coders.

Off-topic, but whatever:

Quote:
Open-source software is supposed to have contributors, (…)

No, this is completely false.
Open source / free software is not about collaboration. It's about user freedom and ethics. Nowhere in the Open Source / Free Software definition it says anything about collaboration (look it up if you don't believe me). Hedgewars just happens to be a collaborative project. But there are tons of free projects that only have 1 developer, i.e. entirely non-collaborative. Besides, big proprietary software suites like MS Office are collaborative, too. Therefore, collaboration is NOT what sets free software apart.

Hi, I am a Hedgewars developer. Smile

nemo
nemo's picture
User offline. Last seen 22 weeks 3 days ago. Offline
Joined: 2009-01-28
Posts: 1861

I'd like to note that the workflow is considerably simpler now that I made that hedgewars draft repo. You can literally just commit to the main branch as if it's the main repo, and you don't have to notify us 'cause the bot will tell us about it.

And if you don't like mercurial (shame, it has a ton of awesome features and a way more user-friendly cli IMO) you can just use git-hg - although I would recommend submitting patches in bugzilla then...

--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev

francot514
User offline. Last seen 2 years 6 weeks ago. Offline
Joined: 2015-03-20
Posts: 163

nemo allegedly wrote:

I'd like to note that the workflow is considerably simpler now that I made that hedgewars draft repo. You can literally just commit to the main branch as if it's the main repo, and you don't have to notify us 'cause the bot will tell us about it.

And if you don't like mercurial (shame, it has a ton of awesome features and a way more user-friendly cli IMO) you can just use git-hg - although I would recommend submitting patches in bugzilla then...

Ok i understand your point, and will respect that, so would you mind if theres another game source version out there that is shared in some other stores / sites.

KoBeWi
KoBeWi's picture
User offline. Last seen 3 weeks 5 days ago. Offline
Joined: 2010-12-25
Posts: 565

Thanks for the detailed insight Wuzzy.

Quote:
Nemo summed it up neatly. We like our independence. And it's true, Hedgewars was forced to migrate before. Companies and 3rd-party Git hosters come and go. Hedgewars stays.

I don't want Hedgewars on GitHub.

I like to add that GitHub is a proprietary platform. What I mean with this that some of the site functionality is broken without JavaScript. All (or almost all?) of the site's JavaScript is proprietary. Hedgewars is a free software project. So frankly, I think that depending on GitHub is just ethically incompatible with free software projects.

I really don't understand the hostility towards Javascript. And towards proprietary platforms. Also, GitHub doesn't look like it's disappearing anywhere, seeing how it's the most popular VCS host. (and don't mention Google Code, Google just shuts down stuff)

Quote:
GitHub is Git-only. We are using Mercurial. So we would have to switch our entire repository from Mercurial to Git first. Nothing against Git, but the transition is not going to be fun. Personally, I like Git slightly better than Mercurial. But both programs are very good. There is is practically zero benefit from a switch.
GitHub can import Mercurial repository without any problems. I actually did it for my first fork. Going back would be the only problem, if you ever wanted it.

Quote:
Feature-wise, I don't like the GitHub issue tracker, it's too primitive and is pretty poor compared to Bugzilla. The only thing you have for categorizing issues are labels. There are no components, no priorities, no severities and some features are broken without JavaScript. There are no dependencies, no issue groups, no “see also” feature. No input fields for hardware, version. There is no way to sort issues by priority or severity (which I consider to be very important!). GitHub issues leave LOT to be desired. GitHub would actually be step backwards.
Lots of things you mentioned are already possible, but in different ways. Components/priorities/severities are possbile with proper labels. Dependencies and "see also" is possible with issue linking (you just need write the #issue number and it will be automatically parsed and linked, leaving a link CC in the mentioned issue). Embedding code is very easy too.

The whole idea about transition came from my experience with Godot Engine's GitHub (this again xd). It's A LOT bigger project than Hedgewars, with tens of issues/PRs being opened/closed each day. And it works really well without the features you mentioned as really important. I don't see why would that fail for Hedgewars. But well, I could understand that you are just used to the current system.

Quote:
The dominance of GitHub is worrying. It is dangerous if so many FOSS projects put all their eggs in a single proprietary basket. It is equally worrying if users become so dependent on GitHub, they never learn how to use anything that is even slightly different.

I agree that GitHub has usability in some areas, but I consider our independence to be more importance.

Well, I don't get it. It's just a service. It's not like they are going to steal all the projects one day or whatever.

Quote:
Well, we have Content Creations. I don't think a new subforum makes sense, we don't have that many coders.
Not many coders is a fair point here xd

Quote:
No, this is completely false.
It might be, but makes more sense together with the following sentence. There's a lot more players than developers (at least used to). The feature requests and bug reports will just pile up and unless you attract more contributors, this is never going to be fixed.

Anyways, I'm not saying the transition must happen, but would make some things easier for other users IMO >_>

ultrasuperworm
User offline. Last seen 4 years 35 weeks ago. Offline
Joined: 2020-04-05
Posts: 1

This might be a bit belated but I would like to add my own two cents to the convo here.

I won't get into the above but I think that KoBeWi stated some sensible points in the discussion.

Thing is... most devs know what GitHub is and know how to git. I personally have never heard of Mercurial. It might be good, might not be good, but most people won't know about it which creates a barrier for entry to start contributing to Hedgewars whereas if you had a simple Git Repository every dev and open-source contributor who'd like to contribute to the project could do so without a lot of overhead.

I am just speaking from my perspective. I was going to start contributing to Hedgewars because I know how much love goes into it but not using GitHub is a deal-breaker for me when it comes to open-source contributions.

nemo
nemo's picture
User offline. Last seen 22 weeks 3 days ago. Offline
Joined: 2009-01-28
Posts: 1861

I fail to see how the domain of the game itself is "obscure" for the game. Hell. You managed to find this forum.
We've outlasted 2 major code hosting sites before switching to self-hosting, and joining the facebook of code is not an interest for anyone here. Feel free to maintain your own fork if you wish, and submit patches upstream...

You're more than welcome to start contributing immediately if your request was serious. Which... I suspect it is not.
Much like people complaining about the choice of programming language(s).

If it is, please drop by the channel, and I'll give you immediate access.

And yes, Mercurial is pretty awesome, which is probably why Google, Facebook and Mozilla use it. It had functional HTTPS long before git, functional large file support long long before git, a sane commandline, a great history query syntax. The only thing it didn't have was Linus and github.

--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev

Wuzzy
Wuzzy's picture
User offline. Last seen 28 weeks 1 day ago. Offline
Joined: 2012-06-20
Posts: 1304

Quote:
the facebook of code

Diss of the Year award. Big Grin

But yeah, a switch to Git, let alone GitHub, is not going to happen. And I don't think there is anything wrong with that.
Even if Git is superior, a switch to a different version control is a risky and painful process, in which many things can go wrong, and even if everything goes right, there isn't much of a benefit.

Personally, I like both Git and Mercurial. I like Git slightly more but they're both pretty decent systems. I never had a problem that this project uses a version control unfamilar to me (when I started). I just learned it instaed of complaining. Besides, Mercurial and Git are very similar. It should not be hard to learn, if you already know Git well. There are even cheat sheets out there to “translate” Git commands to Mercurial commands.

When I joined the project, I had to learn many things that were unfamiliar to me: Mercurial, Pascal. Also my (small) Haskell skills needed a refresher. It's easier for anyone involved if I just improve my skills to match the project, rather than trying to change the project to match my skill levels. IMHO, the latter approach feels a little bit arrogant as well.

Hi, I am a Hedgewars developer. Smile

vint
vint's picture
User offline. Last seen 2 weeks 3 days ago. Offline
Joined: 2018-07-28
Posts: 31

If anyone tried Phabricator, yeah, you know the thing. Self-hosted, full-featured, has Mercurial support, etc. Few big FOSS projects already use this and grow in peace Smile
But it takes some time to actually fill the database with previous intelligence, even though it's worth it. If high crew finds it necessary, I can be of help with migration. Wink Smiley





Hello, I am author of Typewriter Hedgewars Lua library.
Will be happy to contribute in some HW campaign or mission!

Wink Smiley

nemo
nemo's picture
User offline. Last seen 22 weeks 3 days ago. Offline
Joined: 2009-01-28
Posts: 1861

phabricator is ok I 'spose. I did install it locally once while we were trying out various solutions at work.
But, eh, it's not like it really wins us anything. mercurial has built in serving, the wiki works well enough, and our main issue with bugzilla is needing to sit down and integrate auth with drupal which phabricator would not really help out with.

--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev

User login

Copyright © 2004-2024 Hedgewars Project. All rights reserved. [ contact ]