遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/617)
<a href="https://www.bestpractices.dev/projects/617"><img src="https://www.bestpractices.dev/projects/617/badge"></a>
OpenDaylight is a highly available, modular, extensible, scalable and multi-protocol controller infrastructure built for SDN deployments on modern heterogeneous multi-vendor networks. OpenDaylight provides a model-driven service abstraction platform that allows users to write apps that easily work across a wide variety of hardware and south-bound protocols.
https://docs.opendaylight.org/en/latest/#contributing-to-opendaylight
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
https://docs.opendaylight.org/en/stable-argon/contributor-guides/newcomers-guide.html#prepare-a-change : "Contributors must agree with the OpenDaylight Technical charter. The sign-off field is related to the role of the Certificate of Origin explained in this charter."
https://docs.opendaylight.org/en/stable-argon/_static/OpenDaylight-Technical-Charter-LFN-Projects-LLC-FINAL.pdf
This part of the technical charter https://docs.opendaylight.org/en/stable-argon/_static/OpenDaylight-Technical-Charter-LFN-Projects-LLC-FINAL.pdf
We maintain three overlapping releases, with 6 months upgrade cadence. Upgrades are guaranteed to work between subsequent major versions, but oftentimes work even across multiple major versions. Upgrade guides for each release are maintained in the release notes, for example: https://docs.opendaylight.org/en/latest/release-notes/upgrade-process.html If extraordinary upgrade steps are required, these are typically carried in per-subproject release notes.
https://bugs.opendaylight.org
https://docs.opendaylight.org/en/stable-argon/contributor-guides/newcomers-guide.html#opendaylight-and-common-best-practices
Build system enforces Checkstyle and SpotBugs rules by default.
None of our subprojects are currently generating native binariess.
We are using primarily Java and we are not using obfuscators.
We use maven, which correctly resolves build order.
Completely reproducible builds are not a completely solved problem for large Java projects with a multitude of plugins. Making our builds reproducible (and publishing repro instructions) is not currently a priority.
Install from binary packaged in Zip and tar formats. karaf is used to install and uninstall features
End user installation is a self-contained directory, hence users are completely in control of the standards.
Every published artifact contains an SBOM, for example https://repo1.maven.org/maven2/org/opendaylight/odlparent/odlparent/13.0.5/odlparent-13.0.5-cyclonedx.json
External dependencies are primarily under purview of the odlparent subproject, which regularly upgrades external dependencies. See https://github.com/opendaylight/odlparent/commits/master
Primary means of distribution is a Karaf distribution with pre-packaged dependencies. These are easily identifiable and fungible by end users. Alternatively, if rebuilding is okay, the set of dependencies is managed through the usual Maven dependency management mechanisms.
We have a number of static analysis tools deployed (for example modernizer-maven-plugin) to identify use of deprected Java methods. Our platform requirements are tracking the Java ecosystem quite closely, so that we are at, or very near, the bleeding edge.
Multiple layers: - every build includes a set of unit and intermediate-level integration tests - we have a separate system test suite, which verifies high-level end-to-end integration
https://wiki.opendaylight.org/view/Simultaneous_Release:Boron_Release_Plan
警告:需要更长的理由。
SonarCloud
Java is a memory-safe language. Other languages are mainly used for testing purposes.
后退