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.
- 'make check_spelling_shaders' now checks MSL & GLSL spelling.
- Add '--match' argument to 'check_spelling.py' for more configurable
checks without relying on picking directories that only contain the
desired file-type.
- Ignore spelling for scripts/addons & scripts/addons_contrib.
When the `'state'` is not informed, it means that only open issues will
be fetched.
Because of this, a workarround was used to enclose the closed ones as
well.
However, we can use `'all'` to fetch both open and closed.
When GLSL sources were first included in Blender they were treated as
data (like blend files) and had no license header.
Since then GLSL has been used for more sophisticated features
(EEVEE & real-time compositing)
where it makes sense to include licensing information.
Add SPDX copyright headers to *.glsl files, matching headers used for
C/C++, also include GLSL files in the license checking script.
As leading C-comments are now stripped,
added binary size of comments is no longer a concern.
Ref !111247
Mainly add more python-related suppressions.
Also suppressed some reports from `pxr` (usd) libraries.
Now most tests are passing again with ASAN/LSAN on on my machine,
besides modifiers and geometry nodes ones, which often fail on a
mysterious `libstdc++.so.6+0xb259a` leak.
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.
The last supression rule (`leak:libasan*`) would match almost all
detected cases, since the first line is almost always something like
that:
#0 0x7f71040d85bf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
Not sure if that was already the case when this suppression rule was
added, or if things changed in newer versions of ASAN/LSAN...
This commit adds 2 tools for triaging:
- /tools/triage/weekly_report.py
- /tools/triage/issues_needing_info.py
These tools automatically detect the username to list activities related to the user.
Pull Request: https://projects.blender.org/blender/blender/pulls/110652
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.
Each edit-generate now declares if it's generally considered safe
(isn't likely to make changes that break on other platforms for e.g.)
Default edits are now used when --edits is omitted.
The match argument now defaults to files with c/cc/cpp extensions when
omitted.
It's now possible to run:
./tools/utils_maintenance/code_clean.py {BUILD_DIR}
Which gives results that can be used with a very low risk of causing
functional changes or breaking other platforms.
This was an oversight on the license headers copyright pass [1].
Also since the manual reference is generated by this script
we can update the copyright year every time.
[1] - 8f109712ee6d
Support `--verbose compile,edit_actions` (one or both can be selected),
to output the compiler output of each edit and the text (before/after).
This replaces existing hard-coded values.
Other minor changes:
- Print the file-path for each edit for better context.
- Print skipped edits when multiple edits are passed in so other
edits might be applied separately are listed.
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
The steam environment sets LD_LIBRARY_PATH with a libtbb.so.2 that is
incompatible with our own. This wrapper scripts gives our own library
priority.
There is a more modern "Steam Linux Runtime" that can be used instead of
the "LD_LIBRARY_PATH Steam Runtime" and which launches Blender, but it
fails to detect GPU compute libraries. So that was not an option.
Ref #107385
Pull Request: https://projects.blender.org/blender/blender/pulls/109169
`make format` uses autopep8 to format Python, using a list of paths
specified in `tools/utils_maintenance/autopep8_format_paths.py`. The
scripts folder used to be a submodule inside release, but it is now at
the root of the blender repo.
This commit adds `scripts` to the list of paths to format.
Ref !107143
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