Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
886 commits
Select commit Hold shift + click to select a range
2b773f0
Fix heap-buffer-overflow in OpenDDLParser (#5919)
tyler92 Dec 16, 2024
2090508
Fix parsing of comments at the end of lines for tokens with variable …
scschaefer Dec 17, 2024
ecc8a1c
Fix buffer overflow in MD5Parser::SkipSpacesAndLineEnd (#5921)
tyler92 Dec 17, 2024
9f3a7e9
Fix: Fix name collision (#5937)
kimkulling Dec 23, 2024
1ce3164
Bug/evaluate matrix4x4 access (#5936)
kimkulling Dec 23, 2024
016be03
glTF importers: Avoid strncpy truncating away the ' \0' character (#5…
david-campos Dec 23, 2024
258cdfd
Export tangents in GLTF (#5900)
JulianKnodt Dec 23, 2024
7bd54e3
Disable logs for fuzzer by default (#5938)
tyler92 Dec 25, 2024
ab5b32e
Fix docs for aiImportFileExWithProperties. (#5925)
david-campos Dec 29, 2024
5e09157
Fix stack overflow in LWS loader (#5941)
tyler92 Dec 30, 2024
69558d8
Introduce VRML format (.wrl and .x3dv) 3D model support (#5857)
tellypresence Dec 30, 2024
d70606b
Verify negative values in Quake1 MDL header (#5940)
tyler92 Jan 1, 2025
437b484
Fix heap buffer overflow in HMP loader (#5939)
tyler92 Jan 1, 2025
bbeb515
pragma warning bug fix when using g++ on windows (#5943)
stekap000 Jan 3, 2025
a4d8a5f
AssbinImporter::ReadInternFile now closes stream before throwing (#5927)
david-campos Jan 3, 2025
2f40a77
Updated Material.cpp to add missing cases (#5945)
crazyjackel Jan 6, 2025
d386309
Fix unittest path (#5948)
kimkulling Jan 6, 2025
5fa7b8c
Bugfix/cosmetic code cleanup (#5947)
kimkulling Jan 7, 2025
f2c6aa1
Add arm64-simulator support to iOS build script (#5920)
DwayneCoussement Jan 8, 2025
0834fed
Add aiProcess_ValidateDataStructure flag to the fuzzer (#5951)
tyler92 Jan 10, 2025
5aa38fe
Update OpenDDLParser.cpp (#5953)
kimkulling Jan 10, 2025
8e44b40
[AMF] Fix texture mapping (#5949)
tellypresence Jan 12, 2025
e722420
[FBX] Allow export multi materials per node (#5888)
JulianKnodt Jan 14, 2025
2f6dcdf
Assimp master head fixes for failure to compile (#5899)
enginmanap Jan 14, 2025
1e44036
Prefix MTL textures with the MTL directory path (#5928)
david-campos Jan 15, 2025
2a0969d
Add customExtension support to the scene (#5954)
BurntRanch Jan 17, 2025
79d451b
Avoid exporting all primitives, which are not triangles. (#5964)
kimkulling Jan 17, 2025
ba4455c
Added GLTF Extension KHR_materials_anisotropy (#5950)
luho383 Jan 20, 2025
d91e0e4
Add POST_BUILD option to ADD_CUSTOM_COMMAND (#5962)
MikeChemi Jan 22, 2025
f131979
Fix heap buffer overflow in PLY parser (#5956)
tyler92 Jan 22, 2025
31f0dcb
add EXCLUDE_FROM_ALL (#5959)
Pichas Jan 22, 2025
2aac984
Add gltf metallic-roughness texture type (#5968)
tellypresence Jan 24, 2025
bc47836
fix: reduce gltf2 export time (#5972)
1323236654 Jan 25, 2025
9f3cd51
corrected postprocess FlipUVs flag documentation x coord (#5978)
snave333 Jan 26, 2025
53b5dba
Doc: Make hint clearer (#5988)
kimkulling Jan 31, 2025
d41511b
Update STEPFileReader.cpp (#5973)
mosfet80 Feb 3, 2025
f967e76
Update Readme.md: Add new viewer (#5991)
kimkulling Feb 5, 2025
7efb98d
Doc: Separate viewer (#5995)
kimkulling Feb 7, 2025
9bb6f2e
Use correct data type for animation key (#5998)
kimkulling Feb 11, 2025
7945359
Use ear-cutting library for triangulation (#5977)
Saalvage Feb 13, 2025
b58afb7
Fixing PyAssimp misalignment errors with certain structures (#6001)
fishguy6564 Feb 17, 2025
5d716b8
Bugfix/fix mingw issue 5975 (#6005)
kimkulling Feb 20, 2025
2bce77f
IFC: Remove redundand check (#6006)
kimkulling Feb 22, 2025
f52fcb6
Obj: remove smooth-normals postprocessing (#6031)
kimkulling Mar 3, 2025
45898ee
Refactorings: glTF cleanups (#6028)
kimkulling Mar 5, 2025
70459b4
Fix memory leak in OpenGEXImporter (#6036)
UnionTech-Software Mar 10, 2025
f398a70
Use std::copy to copy array and remove user destructor to make sure i…
cielavenir Mar 11, 2025
c1eedbb
Fix: Let OpenGEX accept color3 types (#6040)
kimkulling Mar 12, 2025
7c705fd
ASE: Fix possible out of bound access. (#6045)
kimkulling Mar 12, 2025
7f2c9d7
MDL: Limit max texture sizes (#6046)
kimkulling Mar 12, 2025
bcf11c2
MDL: Fix overflow check (#6047)
kimkulling Mar 12, 2025
d2c6e64
Fix: Avoid override in line parsing (#6048)
kimkulling Mar 13, 2025
4b8f55c
Bugfix: Fix possible nullptr dereferencing (#6049)
kimkulling Mar 13, 2025
2194944
Potential fix for code scanning alert no. 63: Potential use after fre…
kimkulling Mar 13, 2025
e8a6286
ASE: Use correct vertex container (#6051)
kimkulling Mar 13, 2025
2690e35
CMS: Fix possible overflow access (#6052)
kimkulling Mar 13, 2025
a93b9f8
[OpenGEX] disable partial implementation of light import (causes mode…
tellypresence Mar 16, 2025
5a1cc9e
Update tinyusdz git hash (fix USD animation) (#6034)
tellypresence Mar 17, 2025
e2ee7d2
[draft] Check the hunter build (#6061)
kimkulling Mar 21, 2025
d307c9f
NDO: Fix possible overflow access (#6055)
yuntongzhang Mar 24, 2025
cbf279d
Fix Cinema4D Import (#6062)
krishty Mar 24, 2025
ac0b19a
Remove Redundant `virtual` (#6064)
krishty Mar 25, 2025
79cba05
feat: created the aiGetStringC_Str() function. (#6059)
me-sam9 Mar 25, 2025
88959b2
Fix Whitespace (#6063)
krishty Mar 25, 2025
b57f7d3
Harmonize Importer #includes (#6065)
krishty Mar 27, 2025
55e6359
More `constexpr` (#6066)
krishty Mar 27, 2025
e27204c
Renamed and inlined hasSkeletons() to HasSkeletons() to match the oth…
Alexelnet Apr 1, 2025
0ae66d2
Fix set (#6073)
kimkulling Apr 8, 2025
2f3e724
Bugfix/ensure collada parsing works issue 1488 (#6087)
kimkulling Apr 10, 2025
e68ea14
Not to export empty "LayerElementNormal" or "LayerElementColor" nodes…
Riv1s-sSsA01 Apr 14, 2025
4ee7b9d
Use unique pointer to fix possible leak (#6104)
kimkulling Apr 15, 2025
ac59884
Refactoring of PR #6092 (#6101)
Riv1s-sSsA01 Apr 16, 2025
cb56793
fix: Fix build on armv6/armv7 (#6123)
yurivict Apr 27, 2025
275eca9
Bugfix: Handling no of texture coordinates correctly (#6124)
kimkulling Apr 29, 2025
9182879
fix: possible Heap-based Buffer Overflow in ConvertToUTF8 function (#…
TinyTinni May 3, 2025
0c02313
Refactor (#6127)
kimkulling May 3, 2025
b0e0ce5
support for cmake findpackage module mode (#6121)
kiroeko May 4, 2025
d1b73df
Replace exception by error in log (#6133)
kimkulling May 5, 2025
0dafa03
Fix a out of bound buffer access in ParsingUtils GetNextLine (#6134)
qingyouzhao May 6, 2025
af352d6
Fix a bug where string erases throws out of range (#6135)
qingyouzhao May 6, 2025
2056679
Fix: Support uint16 indices in OpenGEX as well (#6137)
kimkulling May 7, 2025
327afe0
Fix crashes (#6138)
kimkulling May 7, 2025
536cd59
+ Only up to recognizing the KTX2 compressed image as a texture objec…
copycd May 8, 2025
b9bfac0
add missing constants (#6116)
daef May 11, 2025
6407345
Fix warning abut inexistent warning (#6153)
limdor May 13, 2025
9d9a807
Fix: Fix leak when sortbyp failes with exception (#6166)
kimkulling May 14, 2025
b40e41f
Update contrib/zip to fix data loss warning (#6152)
limdor May 15, 2025
ed89a02
Fix out-of-bounds dereferencing (#6150)
Marti2203 May 16, 2025
2c77d25
[#5983] Fix bugs introduced in fbx export (#6000)
JulianKnodt May 16, 2025
696771d
Doc: add C++ / c minimum (#6187)
kimkulling May 16, 2025
1933313
Unreal refactorings (#6182)
kimkulling May 16, 2025
3e8673b
update draco lib (#6094)
mosfet80 May 18, 2025
4f3a759
fix: missing OS separator in outfile (#6098)
Latios96 May 20, 2025
315075c
Add Missing Strings to aiTextureTypeToString (#6188)
crasong May 22, 2025
d2aed87
Fix issue compiling when assimp added as subdirectory and parent proj…
plemanski May 23, 2025
18465fb
Add clamping logic (#6149)
Marti2203 May 26, 2025
4535ff9
Annotate w/C++17 "fallthrough" (#6143)
tellypresence May 27, 2025
4ad1d2a
Fix HUNTER_ERROR_PAGE (#6200)
deccer May 27, 2025
b973086
Fix a bug in importing binary PLY file (#1) (#6060)
yurik42 May 31, 2025
7b38feb
Fix export fbx PolygonVertexIndex (#6102)
Riv1s-sSsA01 May 31, 2025
7eb6b0c
fix: closes #6069 CVE-2025-3196 (#6154)
VinzSpring May 31, 2025
c4515f5
Fix: Add "preservePivots" condition when importing FBX animation (#6115)
Nor-s May 31, 2025
b3a47a6
Version: Adapt version (#6212)
kimkulling Jun 2, 2025
a98ffe6
Fix export fbx: Wrong Materials in LayerElementMaterial if a node con…
Riv1s-sSsA01 Jun 5, 2025
5d39661
fix compile error caused by PR #6087 when ASSIMP_DOUBLE_PRESICION is …
Riv1s-sSsA01 Jun 5, 2025
8621d52
Updated Inner Cone formula for Spot Lights in GLTF (#6078)
crazyjackel Jun 5, 2025
c1d6226
Update/update pugi xml (#6229)
kimkulling Jun 8, 2025
177797c
Fixes CVE-2025-2751: Out-of-bounds Read in Assimp::CSMImporter::Inter…
VinzSpring Jun 8, 2025
5be3367
Fixes CVE-2025-2757: Heap-based Buffer Overflow in AI_MD5_PARSE_STRIN…
VinzSpring Jun 8, 2025
2699870
Fixes CVE-2025-2750: out of bounds write by assigning to wrong array …
VinzSpring Jun 8, 2025
357b5ba
fix-CVE-2025-3158: closes #6023 Fixes CVE-2025-3158: Heap-based Buffe…
VinzSpring Jun 8, 2025
2d8c09b
Update SECURITY.md (#6230)
kimkulling Jun 8, 2025
a95addf
Fix the function "aiGetMaterialColor" when the flag ASSIMP_DOUBLE_PRE…
Riv1s-sSsA01 Jun 8, 2025
fb375dd
Prepare 6.0.2 (#6231)
kimkulling Jun 8, 2025
ad6e8e2
Fix: export fbx wrong to_ktime in FBXExporter.cpp (#6105)
Nor-s Jun 17, 2025
b2afe71
Update Importer.hpp (#6235)
kimkulling Jun 21, 2025
d99f9bd
Refactoring: Add nupptr-checks (#6241)
kimkulling Jun 25, 2025
4b6cc8c
bugfix: Fixed the memory leak when texture transforming (#6236) (#6237)
HandsomeXi Jun 26, 2025
4c61ca3
Refix export fbx PolygonVertexIndex (#6240)
Riv1s-sSsA01 Jun 27, 2025
b447485
Fix sonarcube findings (#6242)
kimkulling Jun 28, 2025
db0bde7
Update Readme.md (#6245)
kimkulling Jul 2, 2025
a79dc35
Add windows clang to CI (#5537)
kimkulling Jul 16, 2025
edcb350
Update Build.md (#6273)
panthuncia Jul 22, 2025
59bc03d
X3D: Fix invalid vector::back usage (#6283)
kimkulling Jul 25, 2025
9f4e7c6
Refactoring: use using types (#6266)
kimkulling Jul 28, 2025
6fa9d09
AC: Support Double-Sided Faces (#6252)
DID-Ltd Jul 29, 2025
8355e0c
Fix to fail in the function fast_atoreal_move when the flag ASSIMP_DO…
Riv1s-sSsA01 Jul 29, 2025
9255412
Add CMakePreset file (#6295)
kimkulling Jul 30, 2025
1331679
Fixed a `container-overflow` error (#6298)
DonggeLiu Aug 2, 2025
6d7ea78
Fix SEGV write in Assimp::SortByPTypeProcess::Execute (#6318)
kj2648 Aug 10, 2025
e3f9cf5
Fix OOB read in OpenDDLParser::parseReference (#6317)
kj2648 Aug 10, 2025
3a0ee87
Fix OOB read (2) in OpenDDLParser::parsePrimitiveDataType (#6316)
kj2648 Aug 14, 2025
36b004e
Fixed a heap-buffer-overflow in the Half-Life 1 MDL loader. (#6321)
DonggeLiu Aug 18, 2025
26e2372
Bump actions/checkout from 4 to 5 (#6328)
dependabot[bot] Aug 20, 2025
4c42db1
Fixed a `heap-use-after-free` in `SortByPTypeProcess`. (#6326)
DonggeLiu Aug 21, 2025
a38ec50
test/unit/utProfiler.cpp: fix `gcc-16` build failure (#6267)
trofi Aug 21, 2025
3f107be
Bump actions/download-artifact from 4 to 5 (#6319)
dependabot[bot] Aug 22, 2025
aadd493
Fix OOB read in OpenDDLParser::parsePrimitiveDataType (#6315)
kj2648 Aug 25, 2025
f7bbf6d
Fix endiannes issues regarding floats on s390x (#6276) (#6277)
pranavkaruvally Aug 26, 2025
4418843
Update LICENSE (#6327)
AR-DEV-1 Aug 27, 2025
8ef3838
FBX: Fix offset calculation by adding cursor check (#6337)
kimkulling Aug 28, 2025
4c8a3bd
[CMake] -l (#6329)
ZeunO8 Sep 4, 2025
72b9939
Add null check for aiNode in AddNode method (#6348)
kimkulling Sep 9, 2025
69f8eb2
fix large glb reading by providing a proper helper for reading size_t…
ov Sep 9, 2025
a815a78
Updated doc/Preamble.txt & SECURITY.md (#6338)
AR-DEV-1 Sep 10, 2025
01ac320
Better README! Fixed discord link as well (#6351)
AR-DEV-1 Sep 17, 2025
dd98d4a
PyAssimp: Re-add 'aiProcess_Triangulate' (#6335)
umlaeute Sep 17, 2025
45cb880
Fixed Build.md (#6354)
AR-DEV-1 Sep 18, 2025
5c56861
Fix hasTangentsAndBitangents method in AiMesh.java (#6345)
fifth-light Sep 18, 2025
0581ed5
Added tangent handedness to glTF export (#6322)
luca-della-vedova Sep 18, 2025
489c8d5
Restore merging of near-identical vertices for JoinIdenticalVertices …
mwpenny Sep 21, 2025
709fe3c
Add BOM skip and fix mtl parsing (#6253)
paulbauriegel Sep 22, 2025
b8133b0
Clone meshlab/tinyusdz repos in default location (#6239)
tellypresence Sep 23, 2025
1894bfb
Fix an invalid offsetof warning-as-error (#6359)
sliedes Sep 28, 2025
6401aa9
Add unit test for subdivision modifier on Blender importer (#5345)
aavenel Sep 29, 2025
f28a961
Change strcpy to strncpy for format hint safety (#6365)
kimkulling Oct 2, 2025
194da5b
Update default material name handling (#6366)
kimkulling Oct 7, 2025
f544f9c
Bugfix/fix sonarcube findings (#6369)
kimkulling Oct 13, 2025
cc6ab14
Update texture output format in AssxmlFileWriter (#6372)
kimkulling Oct 17, 2025
7dcf6a8
Collada: Fix overflow in CopyVertex (#6374)
kimkulling Oct 19, 2025
5f7c06a
COB: fix validation for ascii header (#6376)
kimkulling Oct 23, 2025
e778c84
MD5: Fix face index allocation in MD5Parser (#6380)
kimkulling Oct 24, 2025
95f09de
Removed unnecessary copy constructor declaration in aiVector3t (#6384)
EddieBreeg Oct 29, 2025
b2d5fa2
Bump actions/upload-artifact from 4 to 5 (#6383)
dependabot[bot] Oct 29, 2025
276d3e9
Bump actions/download-artifact from 5 to 6 (#6382)
dependabot[bot] Oct 30, 2025
ea249be
Made the README more tidy & fix Build.md (#6371)
AR-DEV-1 Oct 31, 2025
8e35cb1
Fix out-of-range access cause of aiProcess_GenNormals : array size in…
Riv1s-sSsA01 Nov 1, 2025
0978918
Fix Heap-buffer-overflow in Q3DImporter::InternReadFile (#6370)
grulja Nov 4, 2025
672594c
Revert "Refactoring: use using types (#6266)" (#6324)
luca-della-vedova Nov 4, 2025
0996221
fix: write textures to folder of PBRT file (#6099)
Latios96 Nov 5, 2025
a4b8943
Refactor condition checks for empty vectors (#6385)
kimkulling Nov 7, 2025
34cda45
Fix sonarcube stuff (#6387)
kimkulling Nov 10, 2025
3e2e3c9
Update contact email for reporting vulnerabilities (#6389)
kimkulling Nov 11, 2025
c6f997b
[PyAssimp] Create `pyproject.toml` (#6378)
Nov 11, 2025
0be7cdd
glTF2: Avoid lookups for generating IDs (#6120)
jerstlouis Nov 13, 2025
e98ec7b
Refactor string checks and variable declarations (#6392)
kimkulling Nov 13, 2025
1cc7f2b
Fix the doxygen documentation from public headers (#6394)
kimkulling Nov 14, 2025
a53807a
Added static cast for conversion from uLong to unsigned int for compi…
johncurley Nov 15, 2025
05a4fb5
Reorganize code top prevent security warning. (#6395)
kimkulling Nov 15, 2025
19108df
Fix linkage (#6388)
kimkulling Nov 16, 2025
c4812fc
Update LineSplitter.h (#6396)
kimkulling Nov 17, 2025
ab28db5
Added missing scene extras properties for glTF2Importer (#6397)
Orleonn Nov 18, 2025
a989b30
WiP. Passing USD prims along with render nodes to look for USD refere…
AMZN-Gene Nov 24, 2025
0b30e3b
Bump actions/checkout from 5 to 6 (#6401)
dependabot[bot] Nov 24, 2025
f635984
Update Readme.md (#6402)
kimkulling Nov 26, 2025
f588492
Delete test/other/streamload.py (#6403)
kimkulling Nov 28, 2025
11272f1
Fixed DXFHelper using float instead of ai_real (#6404)
JakobPer Nov 30, 2025
ac0cfc8
Feature/pjoe fix fbx export (#6405)
kimkulling Dec 1, 2025
10cd898
Update copyright year in materialgen.py (#6410)
kimkulling Dec 4, 2025
4d19788
Only build collada test when importer/exporter is build (#6411)
negril Dec 5, 2025
6ef6d84
Revert buggy PR (#6415)
kimkulling Dec 9, 2025
7d1fa60
Implement overflow check in Q3DLoader (#6417)
kimkulling Dec 9, 2025
c087c20
Update stb_image.h to version 2.30 (#6419)
kimkulling Dec 9, 2025
7538628
Delete cmake-modules/FindDevIL.cmake (#6418)
kimkulling Dec 9, 2025
3761ee6
Update project details in Doxyfile (#6420)
kimkulling Dec 10, 2025
9481ce8
Delete tools/coverity/assimp_modeling.cpp (#6422)
kimkulling Dec 10, 2025
e3b13a4
Fix incorrect FBX connection order (#6421)
mwpenny Dec 11, 2025
5245511
Add new CMake preset for static build with double precision (#6414)
kimkulling Dec 13, 2025
c0b8cfa
Add closing brace to CMakePresets.json (#6424)
kimkulling Dec 14, 2025
0373bbe
Bump actions/download-artifact from 6 to 7 (#6427)
dependabot[bot] Dec 16, 2025
a438bbb
Bump actions/upload-artifact from 5 to 6 (#6426)
dependabot[bot] Dec 16, 2025
c584961
Bump actions/cache from 4 to 5 (#6425)
dependabot[bot] Dec 16, 2025
f4980c4
Test against possible nullptr dereferencing (#6430)
kimkulling Dec 18, 2025
8c0ab23
Fix UTF-8 flag check in CMakeLists.txt (#6432)
ljgdsq Dec 21, 2025
0fb7c4a
Feature: Add EXT_texture_webp extension to glb importer (#6431)
hankarun Dec 22, 2025
ae6f477
Fuzzing: Add OSS-Fuzz integration and multiple format-specific fuzzer…
skypher Dec 23, 2025
c234aa2
Add CHANGES.md file (#6436)
kimkulling Jan 3, 2026
ac8eac6
MDL: Fix synctype validation in MDLImporter to prevent OOB (#6437)
ydsa Jan 7, 2026
17318b0
MDC: Fix heap OOB read by validating vertex buffer boundaries (#6168)…
ydsa Jan 9, 2026
522c703
fuzz: Fix memory leak in ForceFormat helper (#6435)
skypher Jan 9, 2026
1ce99b9
MD5: Fix uninitialized pointer dereference for file with invalid vert…
tyler92 Jan 12, 2026
d8a9074
OBJ: avoid extra scanning while reading faces in ObjFileParser.cpp (#…
ov Jan 14, 2026
d1e6bcf
MDC: Fix MDCImporter surface header bounds and endianness checks (#6440)
ydsa Jan 15, 2026
129c133
MDL/HL1: bounds-checked buffers and safer parsing (#6445)
tyler92 Jan 19, 2026
cf7b652
MD3: Fix MD3Importer surface header bounds checks to prevent heap ove…
ydsa Jan 19, 2026
d5091bb
Fix some recently implemented comparisons of token strings (#6452)
nickykitchingman Jan 22, 2026
e0b5234
Update copyright year and project version (#6454)
kimkulling Jan 24, 2026
ae6633e
Fix AC3DImporter heap-buffer-overflow by validating mesh vertex bound…
ydsa Jan 28, 2026
18798f1
MDL: Fix heap buffer overflow in MDLImporter frame parsing (#6456)
ydsa Jan 29, 2026
5c5ae38
LWO: Fix heap buffer overflow in LWOImporter::GetS0 (#6451)
ydsa Feb 3, 2026
36c3a19
Fix invalid verifying in OpenDDLParser::parseStringLiteral (#6314)
kj2648 Feb 6, 2026
e38451f
Add developer quickstart section to Readme (#6474)
kimkulling Feb 10, 2026
b4c7912
Fix heap-buffer-overflow in OpenGEXImporter::handleIndexArrayNode() (…
zhangjy1014 Feb 10, 2026
8acd2c9
glTF2: Fix heap-buffer-overflow in Accessor validation and size calcu…
oliverchang Feb 17, 2026
970f869
FBXExporter: Fix stack-use-after-scope in WriteObjects (#6472)
oliverchang Feb 17, 2026
21607df
Obj: Fix heap-buffer-overflow in getFace via vertical tabs (#6540)
bwendling Feb 21, 2026
3e188e6
HL1MDLLoader: fix segfault in destructors (#6537)
oliverchang Feb 22, 2026
3e672ff
Fixed compiler error on platforms where unsigned int is not 32 bit (#…
ShikenNuggets Feb 23, 2026
10be273
Update supported version in SECURITY.md (#6459)
kimkulling Feb 25, 2026
8ef1461
glTF2: Preserve interpolation type and CubicSpline tangent data in an…
EarendelArc Feb 26, 2026
929bff1
Ply: Fix ply triangle-strip parsing. (#6548)
kimkulling Feb 28, 2026
e13e0b5
Bump actions/download-artifact from 7 to 8 (#6550)
dependabot[bot] Mar 2, 2026
553fbc1
LWO: Fix negative iterator access, ptr was before begin (#6555)
kimkulling Mar 5, 2026
8a073f7
Apply codeRabbit suggested fix(es) from assimp PR #6548 (#6557)
tellypresence Mar 6, 2026
38f3e8d
Add agents file. (#6562)
kimkulling Mar 6, 2026
dc54c9f
[Draft] Create AI Tool Use Policy for contributors (#6553)
kimkulling Mar 8, 2026
e701994
Refactor material system (#6563)
kimkulling Mar 8, 2026
b2852bc
glTF2: Fix heap-buffer-overflow in GetVertexColorsForType (#6558)
msuozzo Mar 11, 2026
b10b8ab
Bump actions/upload-artifact from 6 to 7 (#6551)
dependabot[bot] Mar 12, 2026
29df28d
Fix memory leak for USD importer (#6549)
Pichas Mar 14, 2026
1569f6a
Fixed logic for finding min/max for glTF2Exporter (#6552)
Shutd0wns Mar 16, 2026
b5f567b
Fix animations for B3DImporter (#6547)
EasyT-T Mar 16, 2026
fcb1702
+ An error occurs when it is 0 (#6544)
copycd Mar 16, 2026
8ff0055
Bugfix/fix unittest for cla7aye15 i4nd fix skipspaces (#6590)
kimkulling Mar 24, 2026
048bece
Fix linkage issue for ai_epsilon in C++20 modules (#6592)
dimonp Apr 1, 2026
9c10e7d
test: use epsilon comparison for FMA-sensitive API tests (#6591)
pwnorbitals Apr 1, 2026
021bbff
Feature/rust bindings: Exterimental bindings (#6467)
kimkulling Apr 6, 2026
158da57
Fixed a container-overflow vulnerability in `Assimp::ColladaLoader::B…
bwendling Apr 6, 2026
de77101
Fix for CanRead function for FBXImporter (#6158)
jsharam Apr 7, 2026
17c12da
Bump softprops/action-gh-release from 2 to 3 (#6597)
dependabot[bot] Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ IncludeCategories:
- Regex: '^<.*'
Priority: 3
# IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentCaseLabels: false
#IndentPPDirectives: AfterHash
IndentWidth: 4
# IndentWrappedFunctionNames: false
Expand Down
150 changes: 108 additions & 42 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,30 @@ on:
branches: [ master ]

permissions:
contents: read # to fetch code (actions/checkout)
contents: write # to fetch code (actions/checkout),and release

jobs:
job:
build:
name: ${{ matrix.name }}-build-and-test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter]
name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, windows-latest-clang.exe, ubuntu-latest-clang++]
# For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
include:
- name: windows-latest-clang.exe
os: windows-latest
cxx: clang++.exe
cc: clang.exe
- name: windows-latest-cl.exe
os: windows-latest
cxx: cl.exe
cc: cl.exe
- name: windows-hunter-latest-cl.exe
os: windows-latest
cxx: cl.exe
cc: cl.exe
- name: ubuntu-latest-clang++
Comment on lines 20 to 34
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Hunter Windows matrix entry missing toolchain; inconsistent naming

  • windows-hunter-latest-cl.exe lacks matrix.toolchain but you use it in hunter CMake args. This will break that job.
  • Names differ from conditions later (e.g., 'windows-msvc' vs 'windows-latest-cl.exe'), causing steps to be skipped.
-          - name: windows-hunter-latest-cl.exe
+          - name: windows-msvc-hunter
             os: windows-latest
             cxx: cl.exe
             cc: cl.exe
+            toolchain: ninja-vs-win64-cxx17

Also align all conditionals that check matrix.name accordingly.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
include:
- name: windows-latest-clang.exe
os: windows-latest
cxx: clang++.exe
cc: clang.exe
- name: windows-latest-cl.exe
os: windows-latest
cxx: cl.exe
cc: cl.exe
- name: windows-hunter-latest-cl.exe
os: windows-latest
cxx: cl.exe
cc: cl.exe
- name: ubuntu-latest-clang++
# For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
include:
- name: windows-latest-clang.exe
os: windows-latest
cxx: clang++.exe
cc: clang.exe
- name: windows-latest-cl.exe
os: windows-latest
cxx: cl.exe
cc: cl.exe
- name: windows-msvc-hunter
os: windows-latest
cxx: cl.exe
cc: cl.exe
toolchain: ninja-vs-win64-cxx17
- name: ubuntu-latest-clang++
🤖 Prompt for AI Agents
In .github/workflows/ccpp.yml between lines 20 and 34, the
windows-hunter-latest-cl.exe matrix entry is missing the toolchain field
required by hunter CMake args, causing job failures. Add the appropriate
toolchain value to this entry. Also, rename matrix entries to use consistent and
matching names that align with the conditionals later in the workflow, such as
changing 'windows-latest-cl.exe' to 'windows-msvc' or vice versa, and update all
conditionals that check matrix.name to reflect these consistent names to prevent
steps from being skipped.

os: ubuntu-latest
cxx: clang++
Expand All @@ -35,18 +43,12 @@ jobs:
os: ubuntu-latest
cxx: g++
cc: gcc
- name: ubuntu-gcc-hunter
os: ubuntu-latest
toolchain: ninja-gcc-cxx17-fpic
- name: macos-clang-hunter
os: macos-latest
toolchain: ninja-clang-cxx17-fpic
- name: windows-msvc-hunter
os: windows-latest
toolchain: ninja-vs-win64-cxx17

steps:
- uses: actions/checkout@v3
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2

- uses: actions/checkout@v6
with:
Comment on lines +48 to 52
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fix YAML indentation under steps

actionlint/yamllint report wrong indentation; steps’ items should be indented under the steps key.

Apply:

-    - name: ccache
-      uses: hendrikmuhs/ccache-action@v1.2
+      - name: ccache
+        uses: hendrikmuhs/ccache-action@v1.2
@@
-    - uses: actions/checkout@v5
+      - uses: actions/checkout@v5
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- uses: actions/checkout@v5
with:
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- uses: actions/checkout@v5
with:
🧰 Tools
🪛 YAMLlint (1.37.1)

[warning] 48-48: wrong indentation: expected 6 but found 4

(indentation)


[error] 50-50: trailing spaces

(trailing-spaces)

🤖 Prompt for AI Agents
.github/workflows/ccpp.yml lines 48-52: the YAML shows step items not properly
indented under the steps: key; adjust indentation so each action is a list item
under steps (e.g., ensure the ccache action and the checkout action are indented
two spaces under steps and start with a leading dash as step entries),
collapsing the current misplaced top-level keys into proper step list entries
and keeping their with: block indented under the corresponding - uses: or -
name: line.

submodules: true

Expand All @@ -55,56 +57,36 @@ jobs:
- uses: ilammy/msvc-dev-cmd@v1

- name: Set Compiler Environment
if: "!endsWith(matrix.name, 'hunter')"
uses: lukka/set-shell-env@v1
with:
CXX: ${{ matrix.cxx }}
CC: ${{ matrix.cc }}

- name: Set Compiler Environment for Hunter on Windows
if: startsWith(matrix.name, 'windows') && endsWith(matrix.name, 'hunter')
uses: lukka/set-shell-env@v1
with:
VS160COMNTOOLS: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools

- name: Checkout Hunter toolchains
if: endsWith(matrix.name, 'hunter')
uses: actions/checkout@v3
with:
repository: cpp-pm/polly
path: cmake/polly

- name: Remove contrib directory for Hunter builds
if: contains(matrix.name, 'hunter')
uses: JesseTG/rm@v1.0.3
with:
path: contrib

- name: Cache DX SDK
id: dxcache
if: contains(matrix.name, 'windows')
uses: actions/cache@v3
uses: actions/cache@v5
with:
path: '${{ github.workspace }}/DX_SDK'
key: ${{ runner.os }}-DX_SDK
restore-keys: |
${{ runner.os }}-DX_SDK

- name: Download DXSetup
if: contains(matrix.name, 'windows') && steps.dxcache.outputs.cache-hit != 'true'
if: contains(matrix.name, 'windows-latest-cl.exe') && steps.dxcache.outputs.cache-hit != 'true'
run: |
curl -s -o DXSDK_Jun10.exe --location https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
cmd.exe /c start /wait .\DXSDK_Jun10.exe /U /O /F /S /P "${{ github.workspace }}\DX_SDK"

- name: Set Windows specific CMake arguments
if: contains(matrix.name, 'windows')
if: contains(matrix.name, 'windows-latest-cl.exe')
id: windows_extra_cmake_args
run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1"
run: echo ":set-output name=args::=-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1" >> $GITHUB_OUTPUT

Comment thread
coderabbitai[bot] marked this conversation as resolved.
- name: Set Hunter specific CMake arguments
if: contains(matrix.name, 'hunter')
id: hunter_extra_cmake_args
run: echo "::set-output name=args::-DBUILD_SHARED_LIBS=OFF -DASSIMP_HUNTER_ENABLED=ON -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake/polly/${{ matrix.toolchain }}.cmake"
run: echo "args=-DBUILD_SHARED_LIBS=OFF -DASSIMP_HUNTER_ENABLED=ON -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake/polly/${{ matrix.toolchain }}.cmake" >> $GITHUB_OUTPUT

- name: configure and build
uses: lukka/run-cmake@v3
Expand All @@ -121,14 +103,98 @@ jobs:
- name: Exclude certain tests in Hunter specific builds
if: contains(matrix.name, 'hunter')
id: hunter_extra_test_args
run: echo "::set-output name=args::--gtest_filter=-utOpenGEXImportExport.Importissue1340_EmptyCameraObject:utColladaZaeImportExport.importBlenFromFileTest"
run: echo "args=--gtest_filter=-utOpenGEXImportExport.Importissue1340_EmptyCameraObject:utColladaZaeImportExport.importBlenFromFileTest" >> $GITHUB_OUTPUT

- name: test
run: cd build/bin && ./unit ${{ steps.hunter_extra_test_args.outputs.args }}
shell: bash

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v7
if: matrix.name == 'windows-msvc'
with:
name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
path: build/bin
name: 'assimp-bins-${{ matrix.name }}'
path: build/bin/assimp*.exe

- uses: marvinpinto/action-automatic-releases@latest
if: contains(matrix.name, 'windows-msvc-hunter')
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "master"
prerelease: true
title: "AutoRelease"
files: |
build/bin/assimp*.exe
Comment on lines +118 to +126
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Deprecated/unsupported automatic releases action

actionlint flags marvinpinto/action-automatic-releases@latest as too old to run. Prefer softprops/action-gh-release or stick with create-release/upload-release flow already present.

Remove this step or pin to a supported version if you truly need it. Given you have dedicated create-release/upload-release jobs, removing this duplication is cleaner.

🧰 Tools
🪛 actionlint (1.7.7)

118-118: the runner of "marvinpinto/action-automatic-releases@latest" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
In .github/workflows/ccpp.yml around lines 118 to 126, the use of
marvinpinto/action-automatic-releases@latest is deprecated and flagged as
unsupported by actionlint. To fix this, remove this step entirely to avoid
duplication since there are already create-release and upload-release jobs
present. If you must keep it, replace it with softprops/action-gh-release or pin
to a supported version, but the cleaner solution is to delete this automatic
release step.


create-release:
needs: [build]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
with:
tag_name: '${{github.ref}}'
release_name: 'Release ${{github.ref}}'
draft: false
prerelease: true
- run: |
echo '${{steps.create-release.outputs.upload_url}}' > release_upload_url.txt
- uses: actions/upload-artifact@v7
with:
name: create-release
path: release_upload_url.txt

Comment on lines +128 to +148
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Simplify release creation: drop create-release job and manual upload_url plumbing

You mix actions/create-release, softprops/action-gh-release, and upload-release-asset. This is brittle and redundant. Use softprops with files in the upload job and remove this job entirely.

-  create-release:
-    needs: [build]
-    runs-on: ubuntu-latest
-    if: startsWith(github.ref, 'refs/tags/')
-    steps:
-      - id: create-release
-        uses: actions/create-release@v1
-        env:
-          GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
-        with:
-          tag_name: '${{github.ref}}'
-          release_name: 'Release ${{github.ref}}'
-          draft: false
-          prerelease: true
-      - run: |
-          echo '${{steps.create-release.outputs.upload_url}}' > release_upload_url.txt
-      - uses: actions/upload-artifact@v4
-        with:
-          name: create-release
-          path: release_upload_url.txt
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
create-release:
needs: [build]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
with:
tag_name: '${{github.ref}}'
release_name: 'Release ${{github.ref}}'
draft: false
prerelease: true
- run: |
echo '${{steps.create-release.outputs.upload_url}}' > release_upload_url.txt
- uses: actions/upload-artifact@v4
with:
name: create-release
path: release_upload_url.txt
🤖 Prompt for AI Agents
.github/workflows/ccpp.yml lines 128-148: the create-release job
(actions/create-release + writing upload_url + upload-artifact) is redundant and
brittle; remove this entire job and its steps, then update the existing
upload/release job to use softprops/action-gh-release with the files parameter
to publish assets directly. Specifically: delete the create-release job block,
remove any steps that write or upload release_upload_url.txt, install
softprops/action-gh-release in the job that uploads artifacts, pass files:
(path/to/artifacts) and tag_name/release_name/draft/prerelease inputs to
softprops, and adjust job dependencies (needs) so the release job depends on
build only. Ensure GITHUB_TOKEN is set and remove any remaining references to
steps.create-release.outputs.upload_url.

upload-release:
strategy:
matrix:
name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter]
# For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
include:
- name: windows-latest-cl.exe
os: windows-latest
cxx: cl.exe
cc: cl.exe
- name: ubuntu-latest-clang++
os: ubuntu-latest
cxx: clang++
cc: clang
- name: macos-latest-clang++
os: macos-latest
cxx: clang++
cc: clang
- name: ubuntu-latest-g++
os: ubuntu-latest
cxx: g++
cc: gcc
- name: ubuntu-gcc-hunter
os: ubuntu-latest
toolchain: ninja-gcc-cxx17-fpic
- name: macos-clang-hunter
os: macos-latest
toolchain: ninja-clang-cxx17-fpic
- name: windows-msvc-hunter
os: windows-latest
toolchain: ninja-vs-win64-cxx17

needs: [create-release]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: softprops/action-gh-release@v3
with:
name: create-release
- id: upload-url
run: |
echo "url=$(cat create-release/release_upload_url.txt)" >> $GITHUB_OUTPUT
- uses: actions/download-artifact@v8
with:
name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
with:
files: |
*.zip

Comment on lines +149 to +200
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix broken release asset upload flow: unaligned matrix, incorrect artifact handling, and misused actions.

The upload-release job has several critical issues:

  1. Matrix mismatch: upload-release matrix (lines 150–152) differs from build matrix (line 19). Build job runs for [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, windows-latest-clang.exe, ubuntu-latest-clang++, windows-hunter-latest-cl.exe], but upload-release expects [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter]. This mismatch will cause jobs to wait for artifacts that don't exist or to skip uploads for builds that do exist.

  2. Broken artifact coordination: Line 193 references assimp-bins-${{ matrix.name }}-${{ github.sha }}, but the build job (line 115) uploads with a pattern that may not match, and line 187 passes name: create-release to softprops, which is incorrect.

  3. Misused actions: softprops/action-gh-release is invoked without the files parameter (line 185–187), making it a no-op. actions/upload-release-asset@v1 (line 194) expects explicit upload_url and other required fields but only gets a files parameter, which is invalid.

Recommended fix: Remove the create-release job, download build artifacts directly, and use softprops with the files parameter:

   upload-release:
-    strategy:
-      matrix:
-        name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter]
-        # For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
-        include:
-          - name: windows-latest-cl.exe
-            os: windows-latest
-            cxx: cl.exe
-            cc: cl.exe
-          - name: ubuntu-latest-clang++
-            os: ubuntu-latest
-            cxx: clang++
-            cc: clang
-          - name: macos-latest-clang++
-            os: macos-latest
-            cxx: clang++
-            cc: clang
-          - name: ubuntu-latest-g++
-            os: ubuntu-latest
-            cxx: g++
-            cc: gcc
-          - name: ubuntu-gcc-hunter
-            os: ubuntu-latest
-            toolchain: ninja-gcc-cxx17-fpic
-          - name: macos-clang-hunter
-            os: macos-latest
-            toolchain: ninja-clang-cxx17-fpic
-          - name: windows-msvc-hunter
-            os: windows-latest
-            toolchain: ninja-vs-win64-cxx17
-            
-    needs: [create-release]
+    needs: [build]
     runs-on: ubuntu-latest
     if: startsWith(github.ref, 'refs/tags/')
     steps:
-      - uses: softprops/action-gh-release@v2
-        with:
-          name: create-release
-      - id: upload-url
-        run: |
-          echo "url=$(cat create-release/release_upload_url.txt)" >> $GITHUB_OUTPUT
-      - uses: actions/download-artifact@v6
+      - uses: actions/download-artifact@v4
         with:
-          name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
-      - uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
+          path: artifacts/
+      - uses: softprops/action-gh-release@v2
         with:
+          files: artifacts/**/*.zip
+          fail_on_unmatched_files: true

This simplifies the release flow to: download all build artifacts → upload to release using softprops (no manual URL plumbing needed).

52 changes: 52 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Build and Publish Prebuilt Binaries

on:
release:
types: [created]

jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: windows-x64
os: windows-latest
arch: x64
- name: windows-x86
os: windows-latest
arch: x86
cmake_args: -A Win32
- name: macos-x64
os: macos-13
- name: macos-arm64
os: macos-latest
- name: linux-x64
os: ubuntu-latest

steps:
- uses: actions/checkout@v6

- uses: lukka/get-cmake@latest

- uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}

Comment on lines +34 to +37
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Gate MSVC dev environment setup to Windows runners

The ilammy/msvc-dev-cmd action only works on Windows. As written, this step will run on macOS/Linux and fail.

Apply:

-      - uses: ilammy/msvc-dev-cmd@v1
+      - uses: ilammy/msvc-dev-cmd@v1
+        if: runner.os == 'Windows'
         with:
           arch: ${{ matrix.arch }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}
- uses: ilammy/msvc-dev-cmd@v1
if: runner.os == 'Windows'
with:
arch: ${{ matrix.arch }}
🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 37-37: trailing spaces

(trailing-spaces)

🤖 Prompt for AI Agents
.github/workflows/cd.yml around lines 34 to 37: the ilammy/msvc-dev-cmd step
only works on Windows but is currently unconditional, causing failures on
macOS/Linux runners; add an if condition to gate this step to Windows runners
(e.g., check runner.os == 'Windows' or matrix.os == 'windows' depending on how
OS is defined in the job matrix) so the step only executes on Windows, leaving
other runners unaffected.

- name: Build
run: |
cmake -B build -S . ${{ matrix.cmake_args }} -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF
cmake --build build --config Release
- uses: TheDoctor0/zip-release@0.7.6
with:
filename: ${{ matrix.name }}-${{ github.event.release.tag_name }}.zip
directory: build/bin/

- uses: softprops/action-gh-release@v3
with:
files: build/bin/${{ matrix.name }}-${{ github.event.release.tag_name }}.zip
append_body: true
fail_on_unmatched_files: true
2 changes: 1 addition & 1 deletion .github/workflows/cifuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
dry-run: false
language: c++
- name: Upload Crash
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v7
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
Expand Down
51 changes: 51 additions & 0 deletions .github/workflows/inno_setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build Windows Installer
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
name: Build the Inno Setup Installer
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
- uses: ilammy/msvc-dev-cmd@v1


- name: Cache DX SDK
id: dxcache
uses: actions/cache@v4
with:
path: '${{ github.workspace }}/DX_SDK'
key: ${{ runner.os }}-DX_SDK
restore-keys: |
${{ runner.os }}-DX_SDK

- name: Download DXSetup
run: |
curl -s -o DXSDK_Jun10.exe --location https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
cmd.exe /c start /wait .\DXSDK_Jun10.exe /U /O /F /S /P "${{ github.workspace }}\DX_SDK"

- name: Set Windows specific CMake arguments
id: windows_extra_cmake_args
run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace deprecated set-output command.

The ::set-output syntax is deprecated in GitHub Actions. Use the new environment file approach.

-run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1"
+run: echo "args=-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1" >> $GITHUB_OUTPUT
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1"
run: echo "args=-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1" >> $GITHUB_OUTPUT
🤖 Prompt for AI Agents
In .github/workflows/inno_setup at line 33, replace the deprecated
'::set-output' command with the new environment file syntax by writing the
output variable and its value to the file specified by the GITHUB_OUTPUT
environment variable. This involves changing the command to append
'args=-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1
-DASSIMP_BUILD_ZLIB=1' to the file referenced by GITHUB_OUTPUT.


- name: configure and build
uses: lukka/run-cmake@v3
env:
DXSDK_DIR: '${{ github.workspace }}/DX_SDK'

with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release ${{ steps.windows_extra_cmake_args.outputs.args }} ${{ steps.hunter_extra_cmake_args.outputs.args }}'
buildWithCMakeArgs: '--parallel 24 -v'
buildDirectory: '${{ github.workspace }}/build/'

- name: Compile .ISS to .EXE Installer
uses: Minionguyjpro/Inno-Setup-Action@v1.2.5
with:
path: packaging/windows-innosetup/script_x64.iss
options: /O+
8 changes: 4 additions & 4 deletions .github/workflows/sanitizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
name: adress-sanitizer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- uses: lukka/get-cmake@latest
- uses: lukka/set-shell-env@v1
with:
Expand All @@ -38,15 +38,15 @@ jobs:
name: undefined-behavior-sanitizer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- uses: lukka/get-cmake@latest
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Trailing spaces flagged by yamllint

YAMLlint reports trailing spaces on Line 42 and Line 47. Trim them to appease linters.

Apply:

-    - uses: lukka/get-cmake@latest    
+    - uses: lukka/get-cmake@latest
-    - uses: lukka/set-shell-env@v1
+    - uses: lukka/set-shell-env@v1

Run to verify:

Also applies to: 47-47


🏁 Script executed:

#!/bin/bash
# Show the exact lines with trailing spaces for confirmation
nl -ba .github/workflows/sanitizer.yml | sed -n '38,52p'
# Simple grep for trailing spaces
grep -nE ' +$' .github/workflows/sanitizer.yml || echo "No trailing spaces found."

Length of output: 322


Trim trailing spaces in sanitizer.yml

YAMLlint reports trailing spaces on multiple lines in .github/workflows/sanitizer.yml. Please remove them to satisfy the linter:

• Lines with content:

  • 18: - uses: lukka/get-cmake@latest
  • 42: - uses: lukka/get-cmake@latest
  • 47: (blank line with spaces)
  • (also at lines 23, 32, 56, 66)

Example diff:

-    - uses: lukka/get-cmake@latest    
+    - uses: lukka/get-cmake@latest

-    - uses: lukka/set-shell-env@v1  
+    - uses: lukka/set-shell-env@v1

Apply the same trimming to any other lines (including blank ones) flagged by grep -nE ' +$'.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: lukka/get-cmake@latest
- uses: lukka/get-cmake@latest
🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 42-42: trailing spaces

(trailing-spaces)

🤖 Prompt for AI Agents
In .github/workflows/sanitizer.yml at line 42 and other specified lines (18, 23,
32, 47, 56, 66), remove all trailing spaces at the end of the lines, including
any blank lines with spaces. Use a text editor or command like grep to identify
and delete these trailing spaces to comply with YAMLlint requirements.

- uses: lukka/set-shell-env@v1
with:
CXX: clang++
CC: clang

- name: configure and build
uses: lukka/run-cmake@v2
uses: lukka/run-cmake@v3
with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
Expand All @@ -62,7 +62,7 @@ jobs:
name: printf-sanitizer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- name: run scan_printf script
run: ./scripts/scan_printf.sh
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,9 @@ tools/assimp_qt_viewer/ui_mainwindow.h

#Generated directory
generated/*

# 3rd party cloned repos/tarballs etc
# meshlab repo, automatically cloned via CMake (to gain 2 source files for VRML file format conversion)
contrib/meshlab/autoclone
# tinyusdz repo, automatically cloned via CMake
contrib/tinyusdz/autoclone
Loading