Commit Graph

4167 Commits

Author SHA1 Message Date
Sybren A. Stüvel
3ca28acbb3 Introduce Python code generator for OpenAPI spec to dataclasses
Add a [Python code generator][1] that takes an OpenAPI definition and
outputs the corresponding data model as [dataclasses][2]

This is intended to be used in the Remote Asset Library project, to
create, download, parse, and validate information of a remote asset
library.

[1]: https://koxudaxi.github.io/datamodel-code-generator/
[2]: https://docs.python.org/3/library/dataclasses.html

## Running the Generator

The generator is a Python script, which creates its own Python
virtualenv, installs the dependencies it needs, and then runs the
generator within that virtualenv.

The script is intended to run via the `generate_datamodels` CMake
target. For example, `ninja generate_datamodels` in the build
directory.

## Details

The virtualenv is created in Blender's build directory, and is not
cleaned up after running. This means that subsequent runs will just
use it directly, instead of reinstalling dependencies on every run.

## Generated Code & Interaction with Build System

It is my intention that the code generation _only_ happens when the
OpenAPI specification changes. This means that the generated code will
be committed to Git like any hand-written code. Building Blender will
therefore _not_ require the code generator to run. Only people working
on the area that uses the generated code will have to deal with this.

Pull Request: https://projects.blender.org/blender/blender/pulls/139495
2025-08-01 16:33:56 +02:00
Bart van der Braak
2986a2696f Python Module: Add note about archived versions
Related to infrastructure/meta#146

Pull Request: https://projects.blender.org/blender/blender/pulls/143470
2025-07-30 10:43:25 +02:00
Brecht Van Lommel
b4417cff35 Build: Change make update to always do git lfs pull
Some users still have issues getting LFS files downloaded properly, though the
exact cause is unclear. Normally with a properly installed git lfs, git pull
should already take care of it.

When for whatever reason that is not the case and files have not been fetched
yet, now do lfs pull which is the same as lfs fetch + lfs checkout. Even when
git pull can not run.

Ref #143461

Pull Request: https://projects.blender.org/blender/blender/pulls/143478
2025-07-29 13:35:03 +02:00
Jonas Holzman
9d993b4f74 Build: Add macOS x64 deprecation warning to make update
Add a simple deprecation message to warn users that macOS pre-compiled
dependencies are no longer provided starting with 5.0, and that they
should either build the libraries themselves or downgrade to 4.5.

This is what the warning looks like in context:
```
$ make update
git lfs install --skip-repo
Git LFS initialized.

Configuring Precompiled Libraries
=================================

Detected platform     : macos
Detected architecture : x64

Updating Libraries
==================

* Skipping lib/linux_x64
* Skipping lib/macos_arm64
* Skipping lib/windows_x64
* Skipping lib/windows_arm64

Update finished with the following messages
===========================================

Blender repository skipped: you have unstaged changes
WARNING: macOS x64/Intel support was dropped in Blender 5.0.
         As such, pre-compiled dependencies are no longer provided.
         You may build the dependencies yourself, or downgrade to Blender 4.5.
         For more details, please see: https://devtalk.blender.org/t/38835
```

Pull Request: https://projects.blender.org/blender/blender/pulls/143133
2025-07-25 22:39:00 +02:00
Sebastian Parborg
850e933d93 install_linux_packages: add install_linux_packages and cattrs 2025-07-25 15:21:28 +02:00
Ray Molenkamp
25ad7ccf27 Deps: fastjsonschema 2.21.1 + cattrs 25.1.1
As requested by #141945 , This includes:

Attrs 25.3.0
Cattrs 25.1.1
Fastjsonschema 2.21.1
Typing_extensions 4.14.1

Pull Request: https://projects.blender.org/blender/blender/pulls/141950
2025-07-25 15:11:40 +02:00
Campbell Barton
f470a0bbd0 Cleanup: quiet mypy warning 2025-07-22 11:59:43 +10:00
Sebastian Parborg
0f4a46093e Fix: Properly package unicode folders/files with make_source_archive.py
The issue was that `git ls-files` will per default escape unicode
characters. This make it so that our python script couldn't find any
files or folder as it expected unescaped characters.
2025-07-21 12:37:11 +02:00
Sebastian Parborg
17b9759942 CMake: Sync up minimum version to 3.10
Besides being more consistent with the minimum version we use, this also
fixes warnings when using CMake 4.0.

Pull Request: https://projects.blender.org/blender/blender/pulls/142497
2025-07-19 20:37:10 +02:00
Bastien Montagne
f4671fd3ca Buildbot MacOS: Increase xcode version to 16.3
tested several time on the buildbot, everything seems to be fine. And it allows enabling sanitizer builds for macos.

Pull Request: https://projects.blender.org/blender/blender/pulls/141949
2025-07-18 15:56:26 +02:00
Sebastian Parborg
c19218e423 Fix #141943: Correctly detect manifold libs when not in strict mode 2025-07-17 11:33:43 +02:00
Ray Molenkamp
b150f56a5d Revert "Deps_builder: pydantic 2.11.7"
This reverts commit 81e862140f

binary packages turned out to have issues for debug builds on windows
as they link to python_311d.dll and none of the binary packages offfered
on pypi offered a debug build. Building pydantic from source was rejected
due to no rust build infrastructure being in place yet and deemed not
worth the effort for this one library dependency, an alternate solution
was chosen by the assets team that requested this dependency.
2025-07-15 08:09:37 -06:00
Ray Molenkamp
097531ccbf data_to_c: CMake: Speed-up data_to_c
This moves the logic to create the parent folder to data_to_c itself
rather than having cmake do it, preventing several thousand cmake instances
to be started.

see pr#141404 for details/benchmarks

Pull Request: https://projects.blender.org/blender/blender/pulls/141404
2025-07-15 02:08:14 +02:00
Campbell Barton
5dd160c39c Cleanup: indentation in cmake, sort files 2025-07-10 00:40:42 +00:00
Hans Goudey
13f32fdf6c Merge branch 'blender-v4.5-release' 2025-07-08 10:14:45 -04:00
Thomas Dinges
043ed61a02 Release: Update license info and regenerate license.md for 4.5. 2025-07-08 16:01:21 +02:00
Sebastian Parborg
8153b975a7 Merge branch 'blender-v4.5-release' 2025-07-07 18:33:12 +02:00
Sebastian Parborg
7f1529dee0 install_linux_packages: Bump with the 4.5 library changes
See #136540 for details
2025-07-07 18:32:51 +02:00
Ray Molenkamp
81e862140f Deps_builder: pydantic 2.11.7
As requested by @dr.sybren and approved by the admins

Also pydantics deps :

annotated-types 0.7.0
pydantic-core 2.33.2
typing-extensions 4.14.0
typing-inspection 0.4.1

these are installed as binary packages agreed upon with the admins

versions determined by just pip installing it and seeing what it dragged in.

as some of these are binary packages that will differ per platform, there will
be a per platform hash for some packages now unfortunately

Pull Request: https://projects.blender.org/blender/blender/pulls/140434
2025-07-04 15:25:17 +02:00
Jeroen Bakker
41e93e3d9b Merge branch 'blender-v4.5-release' 2025-06-23 07:58:03 +02:00
Jeroen Bakker
3a4c4c88fa Fix #139882: Vulkan/USD: Crash on AMD GPUs
When USD sends work to the GPU (dispatch) incorrect datatype conversions
can send incorrect vulkan commands. This happens on AMD GPUs. This PR
will patch USD to limit the max allowed limit. A better solution would
be to only use uint32_t in this function, but there is no `GfVec3u` data
type and I didn't want to do to many changes.

![image.png](/attachments/642bd3d5-c6b6-4e1a-be1c-be847e6893bd)

**TODO**

- [x] Validate with @ZedDB that this compiles and solves all the issues
- [x] Add other platform maintainers as reviewers. This is a Windows + Linux issue.
- [ ] Rebuild the USD library including this patch.

Pull Request: https://projects.blender.org/blender/blender/pulls/140102
2025-06-23 07:55:17 +02:00
Sergey Sharybin
29cab98b7f Merge branch 'blender-v4.5-release' 2025-06-20 17:26:31 +02:00
Sergey Sharybin
963d23b0de Make update: Tweak logic for the LFS fallback
Check for both git.b.o and projects.b.o pars of the URL.
The LFS objects should be able to be fetched from either
of those domains.

Pull Request: https://projects.blender.org/blender/blender/pulls/140647
2025-06-20 17:26:15 +02:00
Campbell Barton
05631085f8 Cleanup: spelling in comments (make check_spelling_*) 2025-06-19 11:40:00 +10:00
Sergey Sharybin
6af1afa27f Merge branch 'blender-v4.5-release' 2025-06-17 17:36:02 +02:00
Sergey Sharybin
ab4c8853ee Make update: Automatically switch to git.blender.org URLs
Ref #140121

Pull Request: https://projects.blender.org/blender/blender/pulls/140538
2025-06-17 17:34:28 +02:00
Jonas Holzman
53228d48be Merge branch 'blender-v4.5-release' 2025-06-16 08:48:11 +02:00
Jonas Holzman
918db88a34 Deps: macOS: Prevent accidental linking to system-wide libraries for certain deps
On the macOS deps builder, if certain libraries were installed
system-wide using Homebrew, they could be prioritized during the
linking of dependencies over our own versions, causing breakages
when running the built libraries on other systems.

For OpenColorIO, homebrew Imath could be linked if installed.
For TIFF (& libjpeg as a transitive dep), homebrew libdeflate
could be linked if installed.

This commit fixes both of these issues by directly specifying the
library path to prevent the linker from wrongly inferring it to a
system-wide path.
2025-06-16 08:44:43 +02:00
Campbell Barton
9422e4ddcf CMake: exclude "-Wextra" when removing strict flags
Having "extra" warnings caused too many warnings in areas
not actively maintained by Blender developers
(./extern/ and some of ./intern/).
2025-06-13 10:55:27 +10:00
Campbell Barton
8c6eea4a2a CMake: exclude "-Wextra" when removing strict flags
Having "extra" warnings caused too many warnings in areas
not actively maintained by Blender developers
(./extern/ and some of ./intern/).
2025-06-13 00:52:37 +00:00
Aras Pranckevicius
5ad6d42c83 IO: Remove Collada import/export
Removes Collada import/export (has been deprecated since 4.2).

Pull Request: https://projects.blender.org/blender/blender/pulls/139337
2025-06-06 08:38:57 +02:00
Brecht Van Lommel
c2a2d1af1b Merge branch 'blender-v4.5-release' 2025-06-04 19:25:20 +02:00
Brecht Van Lommel
0add3f31a2 Cycles: Bump OptiX minimum and release version to 8.0.0
This requires a minimum driver version of 535, however most devices
were already requiring 570 due to the CUDA toolkit version.

The update is required to be able to use an API function for correct
stack size calculation.

Code for older API versions has been removed.

Fix #138185: OSL custom camera errors with OptiX

Pull Request: https://projects.blender.org/blender/blender/pulls/139801
2025-06-04 19:24:21 +02:00
Bastien Montagne
ec64e9cb86 Merge branch 'blender-v4.5-release' 2025-06-04 18:20:20 +02:00
Bastien Montagne
3a47bd7e5a Fix #139810: Missing git lfs checkout in make update.
When binary files managed by git-lfs are not hosted by the main source
repo (e.g. when using the github mirror), the fall-back repo set up by
`lfs_fallback_setup` does fetch the files, but the follow-up call to
`git pull` in `work_tree_update` does not check them out.

This commit simply adds an extra `git lfs checkout` command there.

Pull Request: https://projects.blender.org/blender/blender/pulls/139825
2025-06-04 18:19:25 +02:00
Brecht Van Lommel
e79fcb4f56 Merge branch 'blender-v4.5-release' 2025-06-04 16:14:05 +02:00
Brecht Van Lommel
2c948b873e Build: Make libraries compile on Linux ARM64 again
NASM is an x86 assembler, doesn't work on ARM.
2025-06-04 16:10:37 +02:00
Thomas Dinges
f224dbccce Revert "Release: Update 4.5 branch to beta"
This reverts commit ea5b1f7527.
2025-06-04 14:14:58 +02:00
Thomas Dinges
ea5b1f7527 Release: Update 4.5 branch to beta
Splash by Blender Studio
2025-06-04 14:10:17 +02:00
Campbell Barton
6a1fa176ef Cleanup: spelling in comments & duplicate terms (check_spelling.py)
Also minor clarification in doc-string.
2025-06-04 01:51:29 +00:00
Sebastian Parborg
40a7e1abb4 Build: Remove features from blosc that we don't use
Seems like only lz4 is used by openvdb. The zstd support were causing
runtime issues because of version mismatches with our other libraries.

In addition to this, blosc doesn't seem to properly link to static
libraries. The resulting static library has undefied symbols in it from
both zlib and zstd. This wasn't caught before as openvdb links to zlib.

Pull Request: https://projects.blender.org/blender/blender/pulls/139792
2025-06-03 18:13:40 +02:00
chunfeng_tsin-2
89622f1f12 Fix: inconsistent directory path in make.bat
Add missing trailing backslash to BLENDER_DIR path in git submodule
update command to match the formatting used elsewhere in the script.

This prevents the following error when python is not found during
the update:

cannot change to .. submodule update lib/windows_x64': Invalid argument

Pull Request: https://projects.blender.org/blender/blender/pulls/139616
2025-06-03 15:49:07 +02:00
Hans Goudey
77b14f2dcb Cleanup: Grammar: Fallback vs. fall back
The former is a noun or adjective, the latter is a verb.
2025-06-02 17:13:56 -04:00
Sebastian Parborg
2db9bd4bde Rocky8: Add new library requirement for weston in the install script. 2025-06-02 12:14:53 +02:00
Sebastian Parborg
c35872a9b3 Build: DPCPP, don't build tests as they are not needed
They also try to use explicitly disabled libraries, so it also leads to
build failures.
2025-06-02 12:14:53 +02:00
Sergey Sharybin
38a14d7eb4 Cycles: Use HIP SDK 6.4.0 on Linux
It seems to be fixing an issue rendering the junkshop file on RDNA4 GPUs.
Tested on Ubuntu 22.04 and 9070 XT GPU.

The downside of this change is the curve intersection in HIP-RT being
slower (figures are a bit scattered, but average to ~10%). This seems
to be caused by compiler resolving function inlines and spilling
differently. Quite unfortunate, but it is better to solve known crashes.
There might still be time to look into the performance topic during the
Beta period.

Ref #136143

Pull Request: https://projects.blender.org/blender/blender/pulls/138981
2025-05-30 16:32:01 +02:00
Hans Goudey
91803e130f Cleanup: Grammar: Fix uses of "for e.g."
e.g. stands for "exempli gratia" in Latin which means "for example".
The best way to make sure it makes sense when writing is to just expand
it to "for example". In these cases where the text was "for e.g.", that
leaves us with "for for example" which makes no sense. This commit fixes
all 110 cases, mostly just just replacing the words with "for example",
but also restructuring the text a bit more in a few cases, mostly by
moving "e.g." to the beginning of a list in parentheses.

Pull Request: https://projects.blender.org/blender/blender/pulls/139596
2025-05-29 21:21:18 +02:00
Hans Goudey
5747f839e8 Cleanup: Grammar: Fix uses of "it's own" 2025-05-29 14:41:20 -04:00
Ray Molenkamp
0b6fd93069 libs: move wintab out of the lib dir into /extern
Almost all content in the libdir we can regenerate, wintab however
is not one of them, and if you generate a new lib folder it's one
of the things you have to manually copy back into place.

this PR moves it out of the libdir and into /extern

Pull Request: https://projects.blender.org/blender/blender/pulls/128873
2025-05-29 00:52:57 +02:00
Ray Molenkamp
b178a0b298 deps: Bump zstd to 1.5.6
Otherwise the python bindings throw an error while
loading.
2025-05-28 13:57:59 -06:00