diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 35b4c609..261bbf4c 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -76,6 +76,7 @@ - [How to add operations to Parsec](contributing/adding_new_operation_how_to.md) - [Package management and versioning guide](contributing/package_management.md) - [The Parsec Release Process](contributing/release_process.md) + - [The Parsec Release Checklist](contributing/release_checklist.md) - [Archive](archive/README.md) - [System Architecture](archive/system_architecture.md) diff --git a/src/contributing/release_checklist.md b/src/contributing/release_checklist.md new file mode 100644 index 00000000..4ee36514 --- /dev/null +++ b/src/contributing/release_checklist.md @@ -0,0 +1,54 @@ +# The Parsec Release Checklist + +The release process is divided into 4 stages as shown below. Each stage has a discrete set of +activities to be completed before progressing to the next stage. The list shown below is only a +template, as there might be additional tasks specific to that release that might be added to +different stages. + +Stages: + +- Prior Code freeze + - [ ]  Publish new versions of all managed crates and configure parsec service and tool to use + them. See + this [guide](https://parallaxsecond.github.io/parsec-book/contributing/package_management.html). + - [ ]  Fix any pending issues + - [ ]  Check common dependency crates versions between the parsec service, parsec tool, and + other crates + - [ ]  Review PRs across Parsec repos + - [ ]  Merge PRs got approved + - [ ]  Check the milestone list +- During code freeze + - [ ]  Issue release candidate tag x.x.x-rc1 + - [ ]  OpenSUSE packaging for the RC + - [ ]  Pull in the latest git dependencies in the crates to ensure the latest release would + work. + - [ ]  Execute the normal e2e tests on Raspberry Pi hardware: + - mbed-crypto + - TPM + - Nitrokey HSM (pluggable USB) + - [ ]  Execute fuzz testing for some time + - [ ]  Ask the Linux distributions packagers to try the tagged version + - [ ]  Ask the Parsec Yocto maintainers to try the tagged version + - [ ]  Ask any interested people to try the tagged version + - [ ]  Review the book and make sure all pages are up-to-date. In particular, make sure the + Threat Model is up to date. + - [ ]  Make sure all the markdown pages (like the README) look good. + - [ ]  Make sure the rustdoc pages (on docs.rs) are looking good (before and after the release). + - [ ]  If any bugs are reported, we fix bugs and then issue another release candidate, x.x.x-rcx + - [ ]  When All reported issues are addressed, make a GitHub release out of the last tag, which + includes its changelog, and ask maintainers to release this version of Parsec. +- Release + - [ ]  Push the release tag for the service and the parsec-tool + - [ ]  Publish the new quickstart bundle and update the quickstart guide with it +- Post-release + - [ ]  Close issues fixed in the release and the past milestone + - [ ]  Update, test, and upstream Yocto recipes for Parsec and parsec-tool + - [ ]  Make a new issue milestone for the next release + - [ ]  Update the [Roadmap](https://github.com/parallaxsecond/community/blob/main/ROADMAP.md) + - [ ]  Update the [Parsec Release + Process](https://parallaxsecond.github.io/parsec-book/contributing/release_process.html)  + with what we learned. + - [ ]  If any bugs are reported, make new MINOR or PATCH tags + - [ ]  Update the Parsec Tool demo + +*Copyright 2023 Contributors to the Parsec project.* diff --git a/src/contributing/release_process.md b/src/contributing/release_process.md index eeaf4a34..89707727 100644 --- a/src/contributing/release_process.md +++ b/src/contributing/release_process.md @@ -127,6 +127,47 @@ perform whatever testing is necessary to verify that the new feature has reached quality level for the release. Systems integrators and known adopters of Parsec will also be notified that a new release is available for integration testing. +As part of the release testing, we run the end-to-end tests on a RaspberryPi for the following +backends: + +- mbed crypto +- TPM +- Nitrokey HSM + +Further platforms and backends will be added to this in future releases. The results of the release +testing are critical in determining if the parsec service and the tool is ready for release, and +whether it meets the requirements and expectations of the end users. + +The following failures are expected in the RaspberryPi platform for the specific backends. + +- mbed-crypto: All tests are passing +- PKCS11: 17 failures + asym_encrypt_and_decrypt_rsa_pkcs + asym_encrypt_decrypt_rsa_pkcs_different_keys + simple_asym_encrypt_rsa_oaep_pkcs11 + simple_asym_encrypt_rsa_pkcs + asym_verify_fail_ecc_sha256 + fail_verify_hash2_ecc + fail_verify_hash_ecc + fail_verify_hash_rsa + sign_verify_hash_ecc + simple_verify_hash_ecc + rsa_encrypt_use_check + check_public_ecc_export_format + import_and_export_ecc_public_key + import_and_export_ecc_public_key_by_export_public_key_fn + check_format_import_ecc + import_ecc_key + import_ecc_key_twice +- TPM: 5 failures + simple_asym_encrypt_rsa_pkcs + activate_credential_bad_data + activate_credential_ecc + activate_credential_rsa + check_name + +The new release candidate should ideally not introduce any regressions. + ## Release Expectations There are currently no formal release expectations documented for the Parsec project. Release