35 karma · joined September 10, 2024
That actually feels like overengineering based on well-intentioned, but wrong specs. You probably want to just use sideways acceleration for "falling over" detection, instead of roll.
There were issues relatively recently with -ffast-math binary wheels in Python packages, as some versions of gcc generates a global constructor with that option that messes with the floating point environment, affecting the whole process regardless of symbol namespaces. It's mostly just an insanity of this option and gcc behavior though.
It should be safe to use multiple versions of the same library, as long as they are used as private dependencies of unrelated dependencies. It would require some tooling support to do it safely:
1. Being able to declare dependencies are "private" or "public".
2. Tooling to check that you don't use private dependencies in your interfaces. This requires type annotations to gain some confidence, but even then, exceptions are a problem that is hard to check for (in Python that is).
In compiled languages there are additional compilications, like exported symbols. It is solveable in some controlled circumstances, but it's best to just not have this problem.
FWIW it's just a nickname for their apparently dangerous design (which doesn't necessarily translate to actually dangerous), it has nothing to do with suicides.
It's tolerable in graphics in many cases, but becomes painfully obvious when the spatial frequency of some model approaches the pixel grid's frequency, and you get very distracting Moiré patterns.
edit:
But I guess in 3D rendering you deal with this differently, probably. You probably don't want to spend resources on painting model details that are half a pixel in size, so they get entirely culled, instead of causing any Moiré problems.
1. Fork and cherry-pick from upstream, don't accept contributions from outside. They need minimal changes.
2. Fork and maintain their fork independently, try to get community contributors too.
Or you know, turning left (or turning right in the UK). Or entering a roundabout, where it's generally better to take your lane, if you are not leaving at the first exit.
foo -a -b \
| bar -c -d -e \
| baz -e -f
instead of foo -a -b | \
bar -c -d -e | \
baz -e -f
This doesn't seem to be an option, but could be easy to implement.There are certainly other problems as well, like you might have an MR 1 from feature1 to master, and MR 2 from feature2 to master which in turn depends on MR 1. Most likely your feature2 branch is off your feature1 branch, so it contains feature1's changes when compared to master, and that's what is shown in the Gitlab review UI. This makes reviewing MR 2's changes in parallel to MR 1 frankly impossible.
Having said that, I still think that this would be the right way to organize this kind of work, however Gitlab's execution is not great, unfortunately. Any of this is probably impossible in Github too. I wonder if Gerrit gets this right, I have no experience with it.
edit:
One interesting point of MR dependencies in Gitlab is that I think you can depend on MRs from other projects. This is sometimes useful if you have dependent changes across projects.
Whether if it's allowed to write again after a "commit pending writes" operation or not is a separate design decision. If not, then in some languages it can be expressed as an ownership taking operation that still allows for handling the error.