FuSa SIG/Contributing: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Join the [[FuSa_SIG/Meetings FuSa SIG meetings]] to participate in safety improvements for Xen. |
Join the [[FuSa_SIG/Meetings | FuSa SIG meetings]] to participate in safety improvements for Xen. |
||
In this page we can find a list of small items for newcomers and seasoned contributors alike to improve Xen safety compliance. The development items below are for the hypervisor ([https://gitlab.com/xen-project/xen/-/tree/staging/xen xen subdirectory]). |
In this page we can find a list of small items for newcomers and seasoned contributors alike to improve Xen safety compliance. The development items below are for the hypervisor ([https://gitlab.com/xen-project/xen/-/tree/staging/xen xen subdirectory]). |
||
Please send fixes to the [https://lists.xenproject.org/mailman/listinfo/xen-devel |
Please send fixes to the [https://lists.xenproject.org/mailman/listinfo/xen-devel xen-devel] list following the [[Submitting_Xen_Project_Patches | Xen contribution process]]. For instance, see [https://lists.xenproject.org/archives/html/xen-devel/2022-08/msg00513.html this example]. |
||
= MISRA C = |
= MISRA C = |
||
There is an effort in progress to align Xen with MISRA C coding guidelines. A few MISRA C rules are already officially part of the Xen coding style, they are available here: [https://gitlab.com/xen-project/xen/-/blob/staging/docs/misra/rules.rst |
There is an effort in progress to align Xen with MISRA C coding guidelines. A few MISRA C rules are already officially part of the Xen coding style, they are available here: [https://gitlab.com/xen-project/xen/-/blob/staging/docs/misra/rules.rst rules.rst] |
||
You can scan the Xen code for violations of this set of MISRA C rules using *cppcheck*. |
You can scan the Xen code for violations of this set of MISRA C rules using *cppcheck* (needs to be version 2.7 or greater): |
||
cd xen.git/xen/ |
|||
export CPPCHECK=/path/to/cppcheck/cppcheck |
|||
export CPPCHECK_HTMLREPORT=/path/to/cppcheck/htmlreport/cppcheck-htmlreport |
|||
export CPPCHECK_MISRA=y |
|||
make cppcheck-html |
|||
The output will be under *cppcheck-htmlreport/index.html* by default. |
|||
Your help to reduce MISRA C violations in Xen is very welcome! |
Your help to reduce MISRA C violations in Xen is very welcome! |
||
Line 17: | Line 25: | ||
= SPDX = |
= SPDX = |
||
SPDX is an open standard for communicating software bill of material information, such as the license of a source file. It consists of a single line comment at the top of the file with licensing information, [https://gitlab.com/xen-project/xen/-/blob/staging/xen/drivers/passthrough/arm/smmu-v3.c |
SPDX is an open standard for communicating software bill of material information, such as the license of a source file. It consists of a single line comment at the top of the file with licensing information, [https://gitlab.com/xen-project/xen/-/blob/staging/xen/drivers/passthrough/arm/smmu-v3.c for example]: |
||
// SPDX-License-Identifier: GPL-2.0 |
// SPDX-License-Identifier: GPL-2.0 |
||
Xen wants to be SPDX compliant. Please help! Xen is GPLv2, licensing information available [https://gitlab.com/xen-project/xen/-/blob/staging/COPYING| here]. |
Xen wants to be SPDX compliant. Please help! Xen is GPLv2, licensing information available [https://gitlab.com/xen-project/xen/-/blob/staging/COPYING | here]. |
||
= Testing = |
= Testing = |
||
Xen Project is using Gitlab-CI to test individual hypervisor features. See the existing tests under [https://gitlab.com/xen-project/xen/-/tree/staging/automation |
Xen Project is using Gitlab-CI to test individual hypervisor features. See the existing tests under [https://gitlab.com/xen-project/xen/-/tree/staging/automation automation]: |
||
* https://gitlab.com/xen-project/xen/-/blob/staging/.gitlab-ci.yml |
* https://gitlab.com/xen-project/xen/-/blob/staging/.gitlab-ci.yml |
||
* https://gitlab.com/xen-project/xen/-/blob/staging/automation/gitlab-ci/test.yaml |
|||
* https://gitlab.com/xen-project/xen/-/blob/staging/automation/scripts/qemu-smoke-arm64.sh |
* https://gitlab.com/xen-project/xen/-/blob/staging/automation/scripts/qemu-smoke-arm64.sh |
||
Please add new tests for any features that you see missing |
Please add new tests for any features that you see missing, especially static configuration features (e.g. dom0less and related configurations). For instance: |
||
* Boot Time Cpupools: https://gitlab.com/xen-project/xen/-/blob/staging/docs/misc/arm/device-tree/cpupools.txt |
Latest revision as of 22:54, 11 August 2022
Join the FuSa SIG meetings to participate in safety improvements for Xen.
In this page we can find a list of small items for newcomers and seasoned contributors alike to improve Xen safety compliance. The development items below are for the hypervisor (xen subdirectory).
Please send fixes to the xen-devel list following the Xen contribution process. For instance, see this example.
MISRA C
There is an effort in progress to align Xen with MISRA C coding guidelines. A few MISRA C rules are already officially part of the Xen coding style, they are available here: rules.rst
You can scan the Xen code for violations of this set of MISRA C rules using *cppcheck* (needs to be version 2.7 or greater):
cd xen.git/xen/ export CPPCHECK=/path/to/cppcheck/cppcheck export CPPCHECK_HTMLREPORT=/path/to/cppcheck/htmlreport/cppcheck-htmlreport export CPPCHECK_MISRA=y make cppcheck-html
The output will be under *cppcheck-htmlreport/index.html* by default.
Your help to reduce MISRA C violations in Xen is very welcome!
SPDX
SPDX is an open standard for communicating software bill of material information, such as the license of a source file. It consists of a single line comment at the top of the file with licensing information, for example:
// SPDX-License-Identifier: GPL-2.0
Xen wants to be SPDX compliant. Please help! Xen is GPLv2, licensing information available | here.
Testing
Xen Project is using Gitlab-CI to test individual hypervisor features. See the existing tests under automation:
- https://gitlab.com/xen-project/xen/-/blob/staging/.gitlab-ci.yml
- https://gitlab.com/xen-project/xen/-/blob/staging/automation/gitlab-ci/test.yaml
- https://gitlab.com/xen-project/xen/-/blob/staging/automation/scripts/qemu-smoke-arm64.sh
Please add new tests for any features that you see missing, especially static configuration features (e.g. dom0less and related configurations). For instance: