My little advice to blender contributors

It’s becoming a reoccurring theme to see some amazing work been done for blender and people getting excited about it, only for it to get abandoned, and the reason is almost always the same.

THE REVIEW PROCESS

Since the review process is not some automated testing, but rather relies on other human beings, it is necessary to avoid falling into the same trap over and over again.

There are 100s of people who contribute to blender but only a handful of reviewers.

There are guidelines for contributing to blender, but I guess not all people have taken the time to read them, one very important point is buried deep inside these guidelines:

People tend to fall into the trap of starting a new branch and working there alone for a couple months/years, and when it’s time for review they dump the whole branch on the reviewer expecting it to be automatically accepted.

The current and previous happenings in the sculpt mode, the fracture modifier, and other projects are good examples.

One of the projects that initially fall into the same trap but managed to come out of it is the first iteration of “everything nodes” when Jacques Lucke was working alone for quite some time before going with the approach of “1 small step at a time of geometry nodes”

Another example is Lukas stockner and his work on principled BSDF V2

Quote from his devtalk thread:

Instead of working in the principled-v2 branch, which had ballooned into a massive changeset and would have grown even larger, the new approach is to do development in the main branch in chunks. Through the previous work in the branch, the overall direction and plan for the new Principled node is clear enough that we can do it this way instead of constantly going back and tweaking previous changes.

TLDR; My advice for future contributors, don’t branch off for too long and keep your PRs small.

11 Likes

But, if the small PR doesn’t get reviewed in timely manner, the whole project just stalls.

The fundamental problem is that BF is not allocating enough resource for reviews.

4 Likes

So… and how should “they” change that… ?? Spending more time on code reviews than on developing i guess… but then again people complain abotu the stall of development…

Or recruit more people… then again more people more overhead… (and you need money for that of course…)

Also there are this Good first issues… to “introduce” yourself as a contributor…

“They” are also just humans how have to get trust or fatih in any programmers actions…

[ Don’t take this personal… i just heard something like that so often: they should, they have to, it’s so easy.… big developments project eat up most of the time of the developers not by coding… ]

So i think that those arguments about not reviewed code in one area of the wide spread blender platform… are exaggerated…

4 Likes

Well, I’m not a developer but this seems quite obvious :smiley:

But it’s not always appropriate, sometime without a clear battle plan it’s probably better to work in a branch and experiment there.
Then this work can be split in small chunks for review and integration.

Some project end up not being integrated because they don’t fit blender goal. Two examples comes to mind :
First some work done by tangent animation on their first movie, they added many feature to cycles , like light linking, but their first goal was to make the movie.
When they shared their changes there was too many constraints that made some part of their work impossible to integrate. For instance , the light linking didn’t support indirect light since their first movie wasn’t using GI.

Another example is someone who tried to integrate a script language for Geometry nodes, but according to developper that something they need to put much more thoughts into, and it’s way to early to start working on that.

As a result, both PR will completely fail the review process because they don’t fit blender design even though these two feature are probably going to be in blender at some point.

similar stuff happened with fracture modifier which was very much awaited but never managed to be integrated.

I’m not sure this is completely avoidable, I’m sure this is also useful at some point and it helps refine some concepts before they eventually end up being integrated …

That’s also a result of the software being opensource and collaborative.

5 Likes

Reading the first couple of paragraphs I thought you were leading up to suggest some sort of automated system for reviewing.

1 Like

An automated review system will open the flood gates for many new features for sure, but will also create a nightmare for the few poor devs responsible for maintaining such amount of code later on.

Maybe sometime in the foreseeable future when/if blender is employing 100s of devs, but certainly not today.

This only makes it more clear that not all contributors even bother reading the “contributing code” wiki page since it clearly stats:

Screenshot from 2023-07-23 21-58-21

What’s the point of creating that scripting language for blender if the contributor didn’t even bother contacting the main devs and asked if it’s something they need “right now” ?

Just reading this wiki page should help everyone avoid unnecessary confusion/waste of precious time.

https://wiki.blender.org/wiki/Process/Contributing_Code

we could even go further and make it a mandatory step to confirm that you read it before being able to create a developer account…

2 Likes

BF and users need to understand the review is an important part of development process. If more review means less features, BF and users need to accept that. There is no way around.

2 Likes

If you know what review is, you know it can’t be automated unless you let ChatGPT to take over Blender development.

Yeah, it’s very likely that some users got a need a code their own solution, then submit a patch but then it doesn’t get included. I don’t think every contribution on the tracker need to be included, and we shouldn’t prevent people from doing them.
Maybe that can be useful to someone who can build their own version of blender.

Anyway, if the goal is to find solution on how to improve the review process, maybe the first step could be to ask contributors about their experience and what they think can be improve, where did they find wasted time.
It can be interesting to ask the same questions to reviewers, and maybe in all that some ideas will emerge.

But I’m pretty sure that’s something already happening among developers…

If you think ChatGPT can review code, you haven’t used ChatGPT for code much :sweat_smile:

5 Likes

The majority of people in the creative space at least are being pretty realistic about the capabilities of AI. So far, I have not heard absurd claims such as AI unlocking the secrets to making Cycles have current Ryzen 9 performance on a Pentium 4.

Reviewing will always be a bottleneck, even two people working on something creates immediate overhead that one person working alone doesn’t have. Using my addon as an example, which took several months, if instead of making it an addon I created it within Blender’s core it probably would have never happened because it would take 2 or 3 times longer to get anything done (maybe even worse than that). That’s why I advocate for Blender to open up the API beyond Python and stop putting artificial limitations on what people can add outside the review process.

2 Likes

That’s the point. The review need to be done by humans who know the Blender code inside out.

I think BF know that code reviews are very (very) important… to secure the codebase…
…but it seems some users doesn’t understand this…
It’s not that someone does some code and inform the devs about it and they just think: oh that’s fine… and if it even doesn’t compile… then the devs were already wasting their time…
Also if someone just wants to implement some “feature” where the devs consider the compatibility on another platform ( which some “programmer” doesn’t understand at all… even that programms aren’t always in C:\Programs\ … it’s called different in different languages… and there is a system variable for this… but… some never heard of this… and of thr other OS’es… :wink: )

Code review is sometimes more intensive then actual coding

…some people think that the amount of new (good and bad) code and proposals or even “bug” reports ( just read some… sometimes not even reproducable. . but takes time to answer… ) do take not so much time and this seems to be the basic scenario which is talked over and over again because it’s more complex than you think and it also seems to be that some people forget that blender did evolved over the years and it’s downfall was predicted already several times…

Yes of course because all the devs and submitters over the years are just too stupid…
( Also may have a look here ( slashdot.org story workers-complain-ai-is-actually-increasing-the-intensity-of-their-work)… )

Again… use the source luke…

…but beware of the dark side…

So the submitters have to qualify first… to be reviewed… for example…

The problem is actually: if we talk of blender users… then this aren’t customers like in the AAA high production software blender is compared all the time… of course there are some… but then again some companies already paid for some feature… and others do donate… even if it sometimes seems to be just for the purpose of advertising (and a after some time stopping it… but some users believe they still do support blender…)…

…so who excactly are those users / submitters the Blender Foundatin has to listen to ??? In the end they also have to pay their bills and have some sorrows ( as you may see if you watch the blenderhead videos… ).

So finally… it’s all there in the wiki… disscussion on the devtalk… the open source…
…so why here?

2 Likes

Idk exactly what you mean by this sentence, but if you check the credits page you will find 121 different people who contributed “something” just for the latest 3.6 release alone (some of which have made 400+ different commits alone).

Also there are 788 different individuals who contributed to blender from 2002 up until now.

Sorry… this was a somekind of rhetoric question… asking the “argueers about the bad situation with the blender project”. There are people constributing… and then there are some argueing about something what wasn’t “included” into blender… or even demanding it… and want to change so much…

But still noone had the real power to completely fork the project… guess why…

Nothing is ever easy…

I want to contribute a line of code, but I need to change 1000 lines to tabs instead of spaces. Is this allowed?

Why ??? Isn’t there a code for code (pun indented…)… i mean code style… !?

…of course there is:

https://wiki.blender.org/wiki/Style_Guide

1 Like

Also another good idea is to change the code of the donut mesh, to look like a donut.

https://cppsecrets.com/users/22319897989712197103975756505164103109971051084699111109/Implementation-of-Donutc.php