Moving Hedgewars code/bug tracker to GitHub

7 replies [Last post]
KoBeWi
KoBeWi's picture
User offline. Last seen 8 hours 23 min ago. Offline
Joined: 2010-12-25
Posts: 508

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 2 hours 25 min ago. Offline
Joined: 2009-01-28
Posts: 1744

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 23 weeks 5 days ago. Offline
Joined: 2015-03-20
Posts: 161

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 2 hours 25 min ago. Offline
Joined: 2009-01-28
Posts: 1744

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 9 hours 47 min ago. Offline
Joined: 2012-06-20
Posts: 1113

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 I accept personal donations in bitcoin. Heart 17fsUywHxeMHKG41UFfu34F1rAxZcrVoqH

nemo
nemo's picture
User offline. Last seen 2 hours 25 min ago. Offline
Joined: 2009-01-28
Posts: 1744

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 23 weeks 5 days ago. Offline
Joined: 2015-03-20
Posts: 161

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 8 hours 23 min ago. Offline
Joined: 2010-12-25
Posts: 508

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 >_>

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