GNOME's Existing Development Infrastructure
A short overview of some of the issues with GNOME's cgit/Bugzilla setup.
General
There is virtually no integration between cgit and Bugzilla. Tools like GitHub demonstrate how valuable and important this is. Specific abilities we miss:
- Referencing between commits and the issue tracking tool: being able to easily link to commits, branches or repos from issues
- Issue management (closing, reopening, filing) using specific words in commit messages (i.e. Closes #234)
- Single user account system for both tools
- No CI integration.
Cgit
Features we are missing:
- No graphical UI for common tasks, such as:
- Create pull requests/patches
- File editing
- Branch creation
- Cherry-picking patches from one branch to another
- Adding tags
- Commenting on commits
- Link to the commiter/author
- Download projects or part of projects as a zip
- Not small-factor friendly (small laptopts, tablets)
Bugzilla
Bugzilla is quite powerful, but is also complex and hard to use and maintain. The biggest problems are:
- Code review is extremely poor. GNOME currently uses a plugin called Splinter, but it has many problems:
- The UI is really bad. It probably isn't necessary to go into details here.
- Integration with Bugzilla less than ideal: Bugzilla comments are shown as plain text and it fails to point to the correct line.
- Essentially unmaintained
- Not small-factor friendly (small laptopts, tablets)
- Because it doesn't integrate with code hosting, it doesn't provide a clear workflow for contributors. The result is that we have to explain a mix of different tools for a single contribution (cgit, Bugzilla, git-bz, splinter, account system).
- git-bz is used an attempt to bridge some of these issues, but it's CLI only, requires browser cookies, and needs to be discovered and installed by the contributor.
- It is extremely complicated
- Searching is too complex, to the point it is almost unusable.
- There are far too many fields, whose purpose is often obscure.
- The look and feel is very poor: which doesn't help when trying to attract new contributors, and makes GNOME look quite backward when compared to other modern tools.
- Lack basic modern features: eg. inline previews of images.
Missing visibility for not being inside a hosting where people can search for projects, like GitHub or GitLab does.
- Maintenance has also been quite hard, due to the complexity of the project and the customizations we had in place. Also the sparse updates made it difficult to update to recent versions.