遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/6712)
<a href="https://www.bestpractices.dev/projects/6712"><img src="https://www.bestpractices.dev/projects/6712/badge"></a>
The Substra project offers a distributed orchestration of ML tasks among partners while guaranteeing secure and trustless traceability of all operations. Documentation is available at https://docs.substra.org/
https://docs.substra.org/en/stable/contributing/contributing-guide.html
https://github.com/apps/dco
https://docs.substra.org/en/latest/additional/governance.html
https://docs.substra.org/en/stable/contributing/code-of-conduct.html
The project provide an quick installation page here: https://docs.substra.org/en/stable/substrafl_doc/examples/index.html The project also provide a get started example to easily launch code using the project: https://docs.substra.org/en/stable/substrafl_doc/examples/index.html
All commits are passed through several reviews and also go through Build The Docs to see if there are any breaking changes.
All appropriate issues and actions such as color ratio and keyboard only functionality have been obtained.
The software does not generate any text or output intended for end-users and is purely a coding framework. Thus the language localization is not relevant.
The project uses PBKDF2 for storing passwords as salted iterated hashes.
Several version of Susbtra can be in production use. We maintain every version in production thanks to patch release done when needed (see https://github.com/Substra/substrafl/releases/tag/0.30.2 as an example). To facilitate the upgrade path when some difficulties can be encountered, we keep up to date a dedicated page in the documentation that gathered all upgrades notes on the different versions. See https://docs.substra.org/en/latest/operations/upgrade_notes.html
Yes, GitHub issue tracker.
There have been no external vulnerabilities resolved by external contributors
https://docs.substra.org/en/latest/contributing/contributing-guide.html
https://docs.substra.org/en/latest/contributing/contributing-guide.html document the coding standards of the project and how to respect them. More specifically, it specifies "Most of project repositories have a .pre-commit-config.yaml file. Run pre-commit install to automatically match some of the style rules of the project when committing your changes."
.pre-commit-config.yaml
pre-commit install
All repositories of the project runs lint on every contribution before allowing any modification. We use flake8 for Python, Prettier for ReactJS and golangci-lint for Go.
Every dependencies are listed in each repository. Installable Python repositories all have a setup.py (cf https://github.com/Substra/substra/blob/main/setup.py for instance). Installable using pip. ReactJS repository have a package.json (cf https://github.com/Substra/substra-frontend/blob/main/package.json). Backend repositories have a skaffold.yaml file (cf https://github.com/Substra/substra-backend/blob/main/skaffold.yaml for instance)
We use https://github.com/dependabot to check dependencies update.
Substra uses docker (https://www.docker.com/) and kubernetes (https://kubernetes.io/) to facilitate the updates of components.
We avoid depending on deprecated/obsolete functions.
Each repository of the Substra project have their own CI , running unit tests on each PR and for every merge of new code. e2e tests are also run every night, with a report send to a private Slack channel. These e2e tests can also be ran on every PR using the /e2e command as a comment on the PR.
/e2e
When regressions occur, we add tests for them.
For pip instsallable repository we currently have: substra: 85% coverage substrafl: 96% coverage substra-tools: 94% coverage
For the all project (including backend and orchestrator), complete e2e tests and benchmarks are run every night, on tests gathered in a dedicated repository (cf https://github.com/Substra/substra-tests) and ensure the coverage of the project code base.
Our contributing guide specify: "When adding or changing functionality, please include new tests for them as part of your contribution." Cf: https://docs.substra.org/en/latest/contributing/contributing-guide.html
The settings for the warning tools are generally strict.
The only cryptography used directly by this application is PBKDF2 (used for storing passwords as salted iterated hashes). At the time of this writing, no serious breaks are known in PBKDF2.
Substra provide a documentation on how to activate TLS on the orchestrator to secure communication protocols between the different instances https://docs.substra.org/en/stable/operations/howto/orchestrator-deployment.html?highlight=TLS#setup-tls
The minimal version of TLS used is 1.2 (cf https://github.com/Substra/orchestrator/blob/main/server/common/tls.go#L37)
Bandit specifically looks for common vulnerabilities in Python code.
Application written using Python, Go and Typescript, not C/C++.
后退