Moving Blender’s development forge from Phabricator to Gitea

7 Likes

This should blow another hole in the idea that the BF has become corporate in its nature and is doing the bidding of its big donors. The reason they are looking at this platform and not others like Github or Gitlab (not even sticking with Phabricator) is primarily because of its FOSS libre nature (as in, not even ‘open’ or ‘source available’).

I do not think the BF’s strong commitment to the FOSS ethos is going to change as long as Ton is around, and this move shows that.

7 Likes

That’s one of the very few instances where I am not convinced that the resources might be spent in the most efficient way. To develop Blender, a development platform is certainly needed. But investing so much (likely including ongoing investments) because of ideological reasons is a bit much in my opinion.

FOSS licensing isn’t about ideology, but about CONTROL over code your work on and by extension everything that it touches, so both the code and its metadata (bugreports, patches, etc) cannot be controlled by other parties that might dictate different development models and practices. This is pragmatic-to-the-core argument. Especially if you are non-profit organization like BF.

Blender as a project isn’t primarily about development efficiency! Blender is about creating 3D tool that is accessible for everyone both as a working tool and as a code. This is main Blender mission, everything else is second. Once again - moving to proprietary platform can potentially violates freedom of development. Going with FOSS development platform is the best long term solution here. No mater how bumpy the transition might be.

Please stop with your ‘ideology’ argumentation. It’s not serving any useful purpose once you understand licensing models at least a little bit. If you don’t get how important is that you have full control over the work you are doing that is your problem unfortunately.

If you don’t like it you are free to develop your own Blender on whatever platform you want as long as you respect the license under which Blender is released.

10 Likes

Now now. We don’t need to be jumping at anyone here for voicing an opinion. I don’t think @anon98372585 lacks any understanding, as you’ve implied. It’s more about knowing history and goals of the Blender development team. No need to get snippy.

You (@silex) are correct that this is primarily about control and independence. It’s a forward-thinking, long-term decision that the Blender developers have adhered to for years. Building on someone else’s platform is still digital sharecropping and you’re ultimately left to the whims another controlling interest (or whomever buys that interest). In the time since Blender set up Phabricator, GitHub changed leadership and was bought by Microsoft. Gitlab pivoted more in the direction of open core (though you can still self-host). Either of these changes could’ve caused pause in the Blender dev team… even just to consider the ramifications and come up with contingencies if things went south. The team didn’t have to do that, though, because they remained self-hosted and independent.

So, looking at this through the lens of longevity and continuity, this is a wise investment of time and energy, despite not necessarily being an easy move.

9 Likes

Sorry for sounding harsh @anon98372585 and @Fweeb

I jumped because I don’t like when such basic thing as having control over your work gets ‘ideology’ label.

It’s wrong.

2 Likes

That word can be negatively connotated but is not necessarily. It has several meanings and and people often don’t differentiate between them sufficiently which can lead to misunderstandings. It looks like it is the case here.

I’m aware of this. The reason why I’m avoiding such language is because it leaves enough ambiguity to mask real issues. Labeling whole set of problems with one convenient word could be an example.

Sometimes it’s good to talk about high level philosophy, but the definitions and argumentation should be made clear. Same goes for discussion of any high level of abstractions.

‘Low level’ semantics (like avoiding words that have multiple meanings) are better for expressing particular concrete problems.

3 Likes

What I meant by ideology is that they insisted, it should be open source as a basic requirement. Even though I know it can have a somewhat negative connotation, I didn’t intend it to be as negative as it seems to have come across. (English is not my mother tongue and because of that I looked up the definition. Unfortunately definitions don’t always mention the everyday nuances.)
As it is not their core mission to develop or co-develop a development platform, I highly question that decision. Yes, if the goal is to have control, that’s the way to go.
I was a bit surprised they were being so strict about the open source requirement and wanting the control, because as an example they don’t have it when it comes to the Open Image Denoise. In theory, it is open source. But it is impossible to change anything without having their dataset to train the denoiser. When it comes to machine learning, usually the most important part is the data. Meaning, they have no control. Because they were not and never mentioned to be strict in that regard, my incorrect assumption was that they wouldn’t be very strict overall and when a pragmatic standpoint exists. I was obviously wrong.

2 Likes

Ah, ok, no problem. English is my second language too. That would explain confusion.

Isn’t Open Image Denoiser an external library developed by Intel? AFAIK Blender only integrated OIDN not developed it. Common sense dictates that external libs are treated differently than main code when it comes to making platform requirements.

I don’t remember all the details how GPL projects can integrate other open source code (from libraries for example), but from what I remember the main requirement is that final product is shipped with GPL license a a whole.

If a library used for certain Blender features see dubious changes or the plug gets pulled, it only impacts a single area of the Blender app. and the devs. have a lot of flexibility on how to move forward.

If the BF signed on to an online development platform, and features suddenly get paywalled, broken, or removed (not to mention if the server has an outage or the platform itself is discontinued), the development of Blender as a whole could come to a screeching halt with no indication as to when it will resume (not only that, but also leave users with no way to report bugs as well).

1 Like

OIDN is open source and compatible with the GPL, no issues regarding that. But if Intel announced tomorrow that they accidentally used copyrighted material for the training, Blender would need to remove OIDN from Blender (or remove the neural network weights, which is basically the same). They literally have given up the control on an important part of Blender to another company. They are not fine with the extreme case they could loose their development platform from one day to another, but it is not that important when an important part of Blender would need to be removed from one day to another.
If it is fine to be at a risk regarding their own tool, I don’t understand why it is so critical for a tool they are using for the development. I would understand it, if they wanted to have the maximum control over the tool they are developing and giving up some control for a tool they are using.

To make it clear, I have not problem that OIDN is being used, just as it would be fine for me if they used even a closed source development platform. The priorities in that regard feel very off to me.

Just to clarify for anyone who might be confused: We are discussing extreme cases here, which are unlikely to take place.

No Blender user would be legally allowed to use OIDN in the worst case. A replacement of the same quality would be very far away. This would heavily impact every studio using OIDN, the closer to a deadline, the worse the situation would be.

The development would continue, even though it would be quite annoying, but Git could still be used without issue. The coordination and several other aspects would be problematic though. However, there would be no halt for sure, because the developer know what they are currently working on and what the near term plans are.

Edit: To me it literally is: It is not okay if the Blender developers might be negatively impacted in their work. But it is okay if the Blender users might be negatively impacted in their work. If at all, it should be the other way around.

As @Ace_Dragon said above - Blender can remove problematic code and carry on. There are more denoisers out there. I don’t see this as giving other company ruling over what is inside Blender or not.

1 Like

I know that OIDN is being used within many companies and it is the default denoiser for Cycles. Unless you have an Nvidia card (which provides a worse denoiser when it comes to quality), there is no replacement with comparable quality.

Why is it okay that Blender users might be negatively impacted, but it is not okay of the developers might be impacted. This is highly inconsistent to me and doesn’t make sense at all.

The talking point is that it is important to have the control. And with respect to OIDN, they have given it away and there is no similar replacement.

We are talking about libraries here, right?

Last I checked there is no always always-online component for OIDN that automatically updates the neural network when new training material is added, so copyrighted content being added would not mean the library is immediately removed for the next round of buildbot builds.

Then I read before that Intel also opened the training data at some point, so the BF should be able to deal with problematic material (that is assuming Intel somehow does not know how to vet material for training data).

It’s really the difference between a platform and a library. While OIDN is included in Cycles, it can be commented out and even disabled at compile time. Such an easy switch does not exist for a development platform that hosts your version control, CI/CD, bug reporting, and general development tasks.

Yes, if the extreme case were to happen and OIDN would need to be removed from Blender, it would inconvenience users. Of course, even if it wasn’t removed from Blender, but was deemed to have infringing data, users would have to disable the feature on their own anyway. There are inconveniences all around when someone upstream screws up. It’s happened it other projects and I’m sure it’ll happen to Blender at some point. And as you noted, such an extreme case would affect more than just Blender since it’s not the only application that uses OIDN… so it really is very much out of everyone’s control. Let’s hope that extreme case doesn’t happen.

Getting back to the core of things, though, let’s go back to the library vs. platform thing with a stacking metaphor example. Imagine that Blender is a house of cards, a pyramid formed by carefully leaning and balancing each card upon the other. Technically, any card can be removed… it might be a pain in the butt, especially for the cards at the bottom of the pyramid, but it is possible. OIDN is one of those cards. The development platform, however, is that table that you’re building that house of cards upon. You want that thing stable and as much under your control as possible. Otherwise, the whole pyramid crashes.

Yes, it’s a contrived and overly simplified example, but hopefully that illustrates what’s going on here. It’s all about weighing out the trade-offs. A problem with OIDN would certainly be a bad thing… but the alternative to the current situation would be not using it at all… even more of an inconvenience to users. A problem with the development platform, though… the extreme version of that would slow Blender development considerably.

11 Likes

That’s the point I don’t agree with.
The development platform is just the tool for developers. Even if you took it away from one day to another, all the individuals could still continue with their work, because they all have the code, they know what they have been working on.
All the coordination would need to be improvised for a while and might be replaced with ugly sheets and the like. It is also reasonable to assume that all tasks and bug reports would still be available, but couldn’t be updated.
From my point of view, nothing would collapse. It would be very annoying. Possibly comparable to a situation where the rendering pipeline has to be changed in the middle of the production, because one piece can’t be used anymore. In a production, if such a time and money saver was removed, it would also be more than inconvenient.

It’s not just a development platform it’s a whole development infrastructure.
Even switching from a compiler like gcc to clang would be somekind of not easy.
And picking up the (not very well suited) chardhouse metapher:
Imagine changing every card form time to time and even switching image sets.. and doing this with a team of different persons with different task from looking if the card has to be switched to the one who changes cards or get new decks and what ever.. and an etablised workflow to organize this.

And now make everthing in french communicating on papyrus written in greek letters.

What a change.. Picking up your post:

  • ..spent in the most efficient way..
    – What do you propose and on what experience?
  • ..investing so much..
    – Because a development and management system is big and complex and the old system is discontinued (migration plans for blender may have been started before Phorge) this investment has to be planed (see WikiPedia: System Migration) and done..
    What do you suppose? Using commercial services and being dependend on this (and investing money too)?

Don’t get me wrong but i thing your opinion is based on incorrect reasoning or knowledge about the complexity of this subject.

4 Likes

If a company knows they are legally not allowed to use it anymore, it is the same as if it was removed.

I haven’t seen that, feel free to provide a link where the training data can be downloaded.

1 Like