Moving Hedgewars code/bug tracker to GitHub
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?
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
I also would like to have alternative github version of repository that does handles different things and will allow easy people contributions.
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
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
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.
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:
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.
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
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.
Thanks for the detailed insight Wuzzy.
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.
Anyways, I'm not saying the transition must happen, but would make some things easier for other users IMO >_>
My themes / Theme Editor / Code contributions /
Dank
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.
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
Diss of the Year award.
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.
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
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.
Hello, I am author of Typewriter Hedgewars Lua library.
Will be happy to contribute in some HW campaign or mission!
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