遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/6025)
<a href="https://www.bestpractices.dev/projects/6025"><img src="https://www.bestpractices.dev/projects/6025/badge"></a>
MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/CONTRIBUTING.md
The MaterialX project uses the EasyCLA system to maintain Contributor License Agreements for contributors, and does not require that users include a DCO in each commit:
The MaterialX project provides documentation of its governance model, including MaterialX TSC roles and current membership:
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/GOVERNANCE.md
The MaterialX project inherits the standard code of conduct from the ASWF and Linux Foundation:
https://lfprojects.org/policies/code-of-conduct/
Documentation of project roles and their responsibilities may be found here:
The MaterialX project has multiple developers with commit access to its GitHub repositories within the voting members of its TSC:
The MaterialX project has multiple developers with MaterialX expertise and commit access within the voting members of its TSC:
The MaterialX project regularly presents its goals for MaterialX development across the industry at the yearly ASWF Open Source Days event, with slides and videos being shared with the community:
https://materialx.org/assets/ASWF_OSD2024_MaterialX_Final.pdf
The MaterialX specifications provide a high-level description of its design goals, and the ShaderGen and MaterialXView systems have their own developer documentation:
https://www.materialx.org/Specification.html https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/ShaderGeneration.md https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/Viewer.md
Documentation of security policies for the MaterialX project may be found here:
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/SECURITY.md
The MaterialX project provides both pre-built binaries and a Quick Start for Developers section on its front page:
https://github.com/AcademySoftwareFoundation/MaterialX#pre-built-binaries https://github.com/AcademySoftwareFoundation/MaterialX#quick-start-for-developers
The MaterialX project maintains its Developer Guide to match the latest version of the project:
https://www.materialx.org/docs/api/index.html
The MaterialX project has a hyperlink to its CII Best Practices status on its front page:
https://github.com/AcademySoftwareFoundation/MaterialX
At its core MaterialX is a software library rather than a user-facing application, but we'll keep this goal in mind for any example applications that we publish.
The MaterialX project aims to support Unicode in all relevant contexts, though we believe this is an area where we can do better as we learn more about the environments in which the software will be used.
MaterialX uses GitHub for authenticating users who post issues or contributions to the project:
The MaterialX project maintains all previous releases on GitHub, and we strive to provide developer documentation to simplify the upgrade process: https://github.com/AcademySoftwareFoundation/MaterialX/releases
MaterialX uses GitHub Issues for tracking bugs and feature requests: https://github.com/AcademySoftwareFoundation/MaterialX/issues
No such vulnerabilities have yet been reported or resolved, but we intend to document them in this way when the need arises.
The MaterialX project documents its vulnerability report and response process here: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/SECURITY.md
The MaterialX project documents its coding style in a clang-format file, which is described in the following documentation: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/CONTRIBUTING.md#coding-conventions
The MaterialX project applies Clang Format to its codebase on each commit through GitHub Actions. This allows developers to access canonically-formatted code when needed, without gating pull requests to the repository based on coding style: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/main.yml
The build system for MaterialX honors standard CMake flags.
The MaterialX build and installation system preserve debugging information when requested.
The MaterialX project makes the dependencies between individual libraries explicit in its CMake files.
The MaterialX build process is designed to be deterministic and repeatable.
MaterialX uses the standard installation system in CMake.
The MaterialX project has no mandatory external dependencies, and it uses CMake to reference and include optional dependencies such as OIIO and OSL: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/source/MaterialXRender/CMakeLists.txt
The MaterialX project has no mandatory external dependencies, and it maintains awareness of the status of its optional dependencies.
The MaterialX project uses standard components provided by the system and C++ programming language.
The MaterialX test suite enables warnings that check for the use of deprecated and obsolete functions in system APIs.
MaterialX uses GitHub actions to run its test suite on each commit to the repository, and the results are reported and visible on the front page: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/main.yml
The MaterialX project adds regression tests when any significant bug is fixed, and these are included in the automated test suite.
MaterialX uses GitHub Actions to run coverage analysis on its test suite with each commit to the repository, and the resulting coverage report is uploaded as a build artifact: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/main.yml
As of October 2023, the reported statement coverage is 88%, with the important caveat that MaterialX rendering functionality is not yet included, as we cannot yet run our full render test suite in GitHub Actions.
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/CONTRIBUTING.md#unit-tests
The MaterialX project enables all reasonable warnings in the automated test suite on GitHub Actions: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/main.yml
The MaterialX project follows secure design principles where applicable.
MaterialX does not use cryptographic mechanisms.
MaterialX does not process authentication credentials or private cryptographic keys.
MaterialX does not directly support network communications.
MaterialX does not use TLS.
The MaterialX project cryptographically signs releases using sigstore (https://www.sigstore.dev/), and the standard sigstore verification process (https://docs.sigstore.dev/verifying/verify/) may be used to confirm signed releases:
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/release.yml
Although this is a good goal for the future, the Academy Software Foundation does not currently require this of its Adopted projects:
https://github.com/AcademySoftwareFoundation/tac/blob/main/process/lifecycle.md
The MaterialX libraries are designed to check the validity of all input data.
The MaterialX libraries use strict compilation warnings and static analysis to minimize the occurrence of software defects and security vulnerabilities:
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/CMakeLists.txt https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/main.yml
Both Cppcheck and PVS-Studio check for common software vulnerabilities in C++ code.
The GitHub Actions workflow for MaterialX builds with Clang sanitizers and runs the unit test suite for each commit to the repository: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/.github/workflows/main.yml
The unit test suite for MaterialX includes basic fuzz testing for its XML importer: https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/source/MaterialXTest/MaterialXFormat/XmlIo.cpp
后退