遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/6711)
<a href="https://www.bestpractices.dev/projects/6711"><img src="https://www.bestpractices.dev/projects/6711/badge"></a>
Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning.
The project documentation has contribution guidelines which include requirements for each contribution: https://kedro.readthedocs.io/en/stable/contribution/contribute_to_kedro.html
The probot-based DCO application is installed in the repositories, see for example https://github.com/kedro-org/kedro/pull/4305/checks?check_run_id=32648259299
https://docs.kedro.org/en/0.19.9/contribution/technical_steering_committee.html
https://github.com/kedro-org/kedro/blob/0.19.9/CODE_OF_CONDUCT.md
@thelinuxfoundation
output of Truck-Factor is TF=6
Truck-Factor
TF = 6 (coverage = 49.67%) TF authors (Developer;Files;Percentage): tsanikgr;121;19.90 Jo Stichbury;120;19.74 Lorena Balan;77;12.66 Merel Theisen;62;10.20 Dmitrii Deriabin;35;5.76 Lim H;30;4.93
https://github.com/kedro-org/kedro/issues/3597#issuecomment-2497086034
https://github.com/orgs/kedro-org/projects/3/views/1
https://docs.kedro.org/en/0.19.9/extend_kedro/architecture_overview.html
https://github.com/kedro-org/kedro/blob/0.19.9/SECURITY.md
https://docs.kedro.org/en/stable/tutorial/spaceflights_tutorial.html
OpenSSF badge linked from the front page of the documentation, see https://docs.kedro.org/en/stable/
No systematic efforts have been made yet to assess the current accessibility of the software.
The software doesn't manipulate user-provided text, user feedback is given in English on the CLI and web UI as most similar projects.
The software does not store passwords.
The project maintains migration guides to help users upgrade from older minor versions https://docs.kedro.org/en/0.19.9/resources/migration.html
See issue tracker: https://github.com/kedro-org/kedro/issues
More work can be done to properly credit reporters of security vulnerabilities.
https://docs.kedro.org/en/0.19.9/development/linting.html
We use ruff https://docs.kedro.org/en/0.19.9/development/linting.html
No native binaries are being generated.
There is no build step.
Installation is trivial with pip/uv and conda/mamba, see https://docs.kedro.org/en/stable/get_started/install.html
Both pip and conda automatically place files in the appropriate directories
Development dependencies are trivially installable using pip/uv https://docs.kedro.org/en/0.19.9/development/linting.html#install-the-tools
Dependencies are listed in PEP 621 compliant [project.dependencies] in pyproject.toml, see https://github.com/kedro-org/kedro/blob/6e3e4d1831a42d625754f3ec71bd0ded7d85be61/pyproject.toml#L14-L36
Dependabot is installed in the repository and security advisories for dependencies are generated.
Python dependencies are trivially updateable.
The software strives to stay up to date with modern versions of its dependencies and use modern tools for its development process.
Tests run on every commit of every pull request thanks to GitHub Actions
Most bugs fixed are verified with regression tests.
The tests have 100 % coverage.
Thanks to the coverage check, in practice every new functionality must have tests before getting merged.
Guidelines explain how to add and run tests https://github.com/kedro-org/kedro/wiki/Guidelines-for-contributing-developers
Deprecation warnings are emitted when appropriate, and their effects can be controlled with standard Python mechanisms
The project does not use cryptographic mechanisms.
The project does not process authentication credentials.
The software relies on fsspec for most of its network communications (data I/O).
The software does not use TLS.
More work can be done to ensure releases are signed.
Tags are signed on GitHub, see for example https://github.com/kedro-org/kedro/releases/tag/0.19.9
The software is a framework that applies Inversion of Control (IoC) to trigger user-defined code, and therefore enforces few restrictions outside of the expected directory and functional structure.
The software does not interact with the network by itself and doesn't have a build nor compilation step.
The project doesn't have an assurance case yet.
The project uses several static analysis tools including ruff (supporting flake8-bandit rules) and those tools are called in every commit of every pull request
The software is written in a memory-safe language (Python)
后退