This much more basic representation of a blendfile is designed to
survive badly corrupted data, e.g. when handling files without DNA
info, etc.
Obviously the amount of data extracted is way less, but it's still
eaiser to analize than dealing with pure binary data.
I added a new BLO_userdef_default.h header to contain declarations of
two global variables that are still defined in C files. Use of designated
initializers for large structs make those files harder to change.
Arguably this is a better header for them anyway.
Pull Request: https://projects.blender.org/blender/blender/pulls/118015
Previously this was the double the CPU count because:
- Modern CPU's from AMD & Intel support SMT/hyper-threading which
present twice as many cores, doubling again has little to no benefit.
- Using 2x or 4x the number of physical cores number can use a lot of
memory on systems with many cores which are becoming more common.
Since hiding symbols on Linux, in many cases only addresses are printed.
This utility can run run on the back-trace to replace addresses
with line & function information.
See: ./tools/utils/addr2line_backtrace.py --help for usage information.
Note that some examples online run addr2line directly and use the output
in the stack-trace, while convenient and acceptable in some cases, in my
tests addr2line can take over 20 seconds to complete for a single
address. Implement this as a post-process instead. Multi-processing to
prevent this taking too long (around ~23 seconds on my system).
Ref !111416.
Show a percentage output as the numbers weren't especially meaningful.
Also use default arguments for credits generator so no arguments
are required to generate all-time credits.
Generating credits/authors would print warnings from commits
that renamed many files, increase the diff.renameLimit to account for
this and suppress the warning.
- Add git_data_canonical_authors module with maps various
"Author <email>" combinations to a single author.
- Add git_data_sha1_override_authors module which
overrides authors for individual commits.
- GitCommit.author now includes the email.
- Move co-author access into GitCommit.co_authors.
Using name & email, then de-duplicating removes 43 duplicates in the
generated credits.
Moving the author & override mapping out of credits_git_gen.py
allows this data to be shared by a utility to update AUTHORS
(not yet committed).
Listing the "Blender Foundation" as copyright holder implied the Blender
Foundation holds copyright to files which may include work from many
developers.
While keeping copyright on headers makes sense for isolated libraries,
Blender's own code may be refactored or moved between files in a way
that makes the per file copyright holders less meaningful.
Copyright references to the "Blender Foundation" have been replaced with
"Blender Authors", with the exception of `./extern/` since these this
contains libraries which are more isolated, any changed to license
headers there can be handled on a case-by-case basis.
Some directories in `./intern/` have also been excluded:
- `./intern/cycles/` it's own `AUTHORS` file is planned.
- `./intern/opensubdiv/`.
An "AUTHORS" file has been added, using the chromium projects authors
file as a template.
Design task: #110784
Ref !110783.
On my system this gives between 30-40x speedup, generating the credits
now takes about 36 seconds.
Move the is_credit_commit_valid check inside the process_commit method
to avoid bottle necking on a single process.
Renaming members of a struct that it's self was renamed was not working,
support renamed structs as well as order member renaming - needed for
the lamp members that replace one member with another.
Although we had only 190 developers, the script
was accusing a total of 365 developers (with 188 inactive).
There were two problems here:
* The gitea API was only using the `limit` paramater when an explicit
page was passed.
* There was a bug with the get_next_page code, that would skip the last
page.
I now made the page always an explicit argument passed to fetch_single.
With this fix we now get: 190 developers with 98 inactive.
Co-authors listed following the `Co-authored-by:` format in a commit
message will be automatically added to the list of contributors.
Further more, it is now possible to overwrite authors informations from
git commits with embedded data, in case it is necessary to correct some
commit's author information after the commit has been pushed.
Implements #109438.
Pull Request: https://projects.blender.org/blender/blender/pulls/109468
Note, at the moment it is using the last login as a criteria to
whether the person should be listed (comparing it to 2 years past).
However anyone who hasn't logged in in gitea yet shows as last login 1970.
To run this you need to install all the required python packages and
generate a token with scope "read:org" or "admin:org".
See:
https://projects.blender.org/infrastructure/blender-projects-platform/issues/55