Developer.blender.org - Call for comments and participation

From my perspective, GitLab looks a bit chaotic and cluttered and I had issues with the loading of CSS in the past for parts of GitLab.
UI Wise, Gitea looks like an outdated copy of GitHub, I don’t know much about the features though.
I don’t know about the third option, so no comment on that.
I’ve been thinking about alternatives to GitHub some time ago, and I’ve come to the conclusion, that the only way to avoid GitHub and get what I want/need would be to do it myself. I don’t know whether this would be an option for Blender though since that would be a huge and difficult project (especially security-wise). If the whole community helps in any way possible, that might be an option though, forking GitLab or Gitea and building the features/UI that you need ontop.

1 Like
  • Searching, listing and sorting the bugs functionalities are dismal with developer.blender.org I can never find what I am looking for.

  • Downloading the current main tree or a branch source is not very obvious, there should be generated direct .zip/.tar links to those.

I use Gitea for my local dev efforts, I personally like it a lot.

2 Likes

I can second that, it rarely pays off to use the search usually faster to just punch searchterm site:developer.blender.org into google, however due to our robots.txt preventing indexing of diffs (due to load constraints on the server) you can’t easily search those…

5 Likes

Personally, I love phabricator, and will hate to see it go. I wish it had better features for keeping track of bugs you’ve submited, patches you’ve worked on, etc. I like the Email updates.
I use Gogs on my website. Gitea is a bit more beefy version of Gogs. They’re both written in go. I don’t think the documentation is very good on either.
It will be weird to move from submitting patches with Arcanist to using Pull Requests.
If Blender adopts Gitea (I think they should), then the new features we may add will end up beating Gitlab, anyway. If there’s concern about the ‘niceness’ of competing with a commercial project, I’m not sure the problem goes away by making the completely free (as in free beer) version as good as or better than the competing paid software.
Finally – I’d love for it to be integrated in Blender -Cloud- Studio! That would feel nice!

2 Likes

Small detail: Phabricator the open source project was not developed or maintained by Facebook. That’s where the project started, but once it became publicly available it was Phacility doing the development.

9 Likes

Besides what can be improved on developer.blender.org, there’s a few things in Phabricator we might take for granted. In particular, for bug reporting/triaging and having a single repository with multiple modules/projects.

  • Multiple code reviewers
    • Gitea: yes
    • GitLab: requires a one line modification to the community edition code
  • Custom fields (like type, status, priority)
    • Gitea: no. Has one or more tags + one project.
    • GitLab: no. Has one or more labels. Scoped labels however work similar to custom enum fields.
  • Custom forms for bug reports
    • Gitea: no (edit: issue templates handle some this)
    • GitLab: no (edit: issue templates handle some this)
  • Project (module) page with activity, workboard, custom text
    • Gitea project pages are only a workboard for all issues in that project
    • GitLab has no concept of projects in a repository, but has multiple workboards
  • Easy upload and embed image in issues and comments
    • Gitea supports upload files, and embedding external image links, but no way to embed an uploaded image (edit: it’s possible but can only be done with edit after submission and images are shown a second time at the bottom)
    • GitLab: yes
  • Issues related to multiple projects
    • Gitea has exactly one project per issue, but has multiple tags
    • GitLab does not have projects, but has multiple labels
  • Move issue between repositories, or link to multiple repositories
    • Gitea: no
    • GitLab: move yes, link no
  • Close issue as duplicate
    • Gitea: no
    • GitLab: yes, but only with quick action command, no button
15 Likes

sure, but i have seen somewhere they say that they dont merge the features in community edition which are only available in the paid upper teers. so, it might be one line, but it still can get rejejcted.

We would be hosting our own instance of GitLab or Gitea with custom modifications. Hopefully as few as possible that we’re unable to merge upstream, but we can make them.

I wonder if a modified version of Attract or Kitsu could be used to handle the Project/Module side of things, and then we’d just have to smoosh it together with the git host? I know they’re all written in different languages. Or, of course, just host them as separate services, like Phabricator has separate pages for git hosting, bug tracking, etc… we already have a git.blender.org and a svn.blender.org, after all.
At any rate, I think Kitsu provides an excellent User Interface for project management, and I know you’ve been using it in the Blender Animation Studio for Sprite Fright. If nothing else, it may give us something nice to use to mockup pictures and stuff.

my thoughts are a bit unorganised and a bit ramble-like. so, sorry for that.
where am i coming from:

  • i have only used these three,
    • gitlab (gl hereafter) the most,
    • github (gh) the second most,
    • and phabricator (blender) for very less time.
  • and i know phabricator has many things that both of these lack
  • a repo in gl is called a “project”, and a group can contain several subgroups or “project” (similar to an “organisation” on gh)

i would not recommend gitlab.

  1. issue management:
    1. Extremely unflexible issue search
      • No way to search across specified repos
      • Doesnt search in comments
    2. No good way to organize a collection of tasks (called “project” in blender)
      Boards can be used as a workaround i guess
    3. Lack of “custom fields for status” hurts a lot
      • Mentioned above by @ brecht
      • ∴ No filter available for whether the closed issue was resolved, archived, moved, or duplicated
      • Any other than “closed (moved)” isn’t mentioned upfront in the issue list either
    4. Lack of notification panel
      So, no way to access the notifications/updates at one place if you turn off email notifications
  2. git tasks
    0. even the basic git tasks are very very unintuitive and unfriendly to “git beginners”:
    1. No way to “sync with upstream” in single click like in gh
      • Requires setting up mirroring which requires fiddling in the settings,
      • and there, sometimes the “pull mirroring” is grayed out without any indication why.
      • this makes making contributions very hactic and difficult even for the “familiar with git through ui” people.
    2. No way to rename the branches (like seriously? such basic thing)
    3. Even small q-o-life notices like “add commits to this pr by adding commits to your branch” aren’t shown - super small stuff, but helps the beginners a lot
  3. meta-level:
    1. The stuff working today easily breaks tomorrows
      like the mermaid module, the bio previews, the issue description diff history, etc etc
    2. gl team is very very bad at addressing and resolving issues
    3. Development of features
      • feels like everything is done in haste, as
      • features are not well thought out, and
      • the ironing out process takes months/years.
      • so, the users are stuck with half baked products most of the time

Some things that gitlab has good in my opinion, are:

  1. comment capabilities - really aced it - yes,
    • Embeddable {images, videos, svgs} and Attachable other files,
    • Support for mermaid/katex for flowcharts/equations (though, mermaid’s flowcharts currently broken when it contains hyperlinks)
    • Thread feature (1 level nested comment)
    • Complete emoji set as the reaction
  2. automatic issue search from title while filing it in a new issue
  3. /commands for issue related actions which can be used even via emails
  4. Comments made from emails are totally editable, and not restricted like in gh
  5. related issues section
    Was implemented around a yr ago or so, so is just functional, not consistent
    • UI wise: “related”, “blocked by”, “blocks” issues are shown as grouped at one place in the description as “Linked issues” widget
    • command wise: /relate and /duplicate are available for issues,
    • that is, no indication of duplicate in that “linked issues” widget, and no availability of blocking status via commands
    • the issues mentioned in the comments are not picked up to be shown in that widget
    • the merge requests mentioned anywhere in any comment gets picked up and shown as a widget for “related merge requests”

as for the automatic prefilling of the data from the link as done currently in blender (while clicking “report issue” from blender’s UI) - i will check and update on that

4 Likes

As someone who doesn’t have a lot of experience contributing to open source projects, Arcanist was really intuitive and easy to use, would be sad to see that functionality disappear.

3 Likes

Bugs/Tasks

  • The API/UI needs a way to list bugs sorted by how many duplicates have been associated with them. Needed for prioritization and help with searching for really bad known issues etc.
  • Phab does a really nice job of listing “mentions”/“duplicates”/“revisions” in one place instead of strewn throughout a task’s history. Would be nice to still have a “Related Objects” section in each task.
  • There absolutely needs to be a way to limit the size of attached files on tasks. Really. Don’t pick a system that allows randos to attach an 11gb file to tasks… yeah, it’s happened.
  • I like Phab’s landing page showing recent opened bugs, dev activity, task activity etc. It’s often more useful than just landing on the repository browser showing the code
  • Auto-filling the bug form, using URL parameters or otherwise, like what’s done with the “Report a bug” button from inside Blender should still work in some fashion.
  • Mentioned before: Yes, absolutely need ability to embed images inline with text in Tasks/bugs. Not as files to be opened separately.
  • Mentioned before: Yes, allowing each “module” to have their own portal into their tasks and WorkItems is really nice for organization and finding things sometimes

Side note: Before the transition, please make a call for folks to cleanup their ‘dead’ branches. There’s 570 branches hosted under Blender. Over 210 of those are origin/temp* or origin/tmp* and they don’t seem very temporary.

11 Likes

If you end up with something minimal, you can check out
openproject as project management software.

Just found it an alternative open source for Notion and from the demo:
It works as self-hosted with docker-compose
it seems to support multi-project and hierarchical tasks,
and you can setup multiple code reviewers, custom fields etc.GitLab OpenProject integration

Custom forms for bug reports

Unless I’m missing something this is issue/pull request templates?
Seems like both Gitlab and Gitea has them and it isn’t too different from what we are currently using in phabricator

https://docs.gitlab.com/ee/user/project/description_templates.html
https://docs.gitea.io/en-us/issue-pull-request-templates/

Gitea supports upload files, and embedding external image links, but no way to embed an uploaded image

Seems like this is false?
An example of showing an attached image in an issue/comment:
https://codeberg.org/dnkl/fuzzel/issues/72
(Codeberg uses gitea)

2 Likes

After all, Github is the most familiar UI. it will help new contributors fill at home.

1 Like

Seems indeed similar. Not sure if there is a way to show a custom text that’s not part of the issue contents, or to hide fields that users are not expected to edit.

Seems it is possible but the UI is poor. You have to submit the message and then go back and edit the image in by copying the URL? And it shows the image a second time at the bottom.

I’m unsure too. What I do know is that github supports that (if I understand you correctly) with their new YAML issue templates:
https://github.com/neovim/neovim/blob/master/.github/ISSUE_TEMPLATE/bug_report.yml

Ah, you are right. I guess that is what is happening.
Seems like it wouldn’t be too hard to solve. But then again, someone needs to put in the work to solve it.

If you are looking for a complete opensource project management software. I suggest to take a look at https://www.tuleap.org.

I’m DevOps expert for an Open source company and I installed and used both gitlab and gitea for years.

What I can say, gitea is very easy to scale (especially on kubernetes) and I really appreciate that I can use others CI/CD tools like drone.io (self hosted) with more ease. Gitlab is able to use external CI/CD but it’s a bit more tricky. I consider that having the choice to externalize this is more efficient and add freedom.

Gitlab is very hard to maintain in comparison of gitea. Gitea is also lighter and faster to start (very interesting if you use an elastic scaling).

Gitlab has got more add-ons like scrum board for example. But I prefer to not centralize everything in one service (same argument that CI/CD).

Gitlab offers more options like internal pipelines, kubernetes manager, or docker registry… Do you really need it inside the git manager?

Gitea is, IMHO, the best choice.

7 Likes

Don’t undervalue the benefits of exposing the “black box” of development to a wider audience. Everyone is super familiar with GitHub, it’s the de-facto standard. Everyone has a GitHub account. It is rough around the edges in terms of some of its workflows but I think those will be true for any GitHub clone (GitLab, Gitea, Gogs, etc.). I don’t love everything about the community development experience of GitHub but making it widely accessible by millions of visitors will be seriously beneficial to the momentum of the project. Lots of new developers who were intimidated by Phabricator will try to set up the project and start tinkering with it. I assume the reason it wasn’t mentioned in this video as a contender is because of the “Microsoft cooties” but Microsoft has truly shown that they are keeping a hands-off approach, except in beneficial ways where they throw money at defending takedown requests (the FFmpeg scandal) or matching sponsorship donations. GitHub is a platform, not part of the Blender product, so it doesn’t have to be open source directly because you are using it, not developing it. Blender is the product, not the platform it’s built with. I also believe Blender is at a scale where GitHub would be happy to work with Blender to alleviate any concerns and develop small-to-moderate-sized features requested by the Blender Foundation. So while it can be tempting to self-host a GitHub clone, stability and approachability by a massive audience is way more important than “saving face” by using the de-facto standard that has the unfair stigma of being owned by a company that used to be evil, a decade ago, but has shown to be only benevolent to the GitHub platform.

2 Likes