Skip to content

Commit

Permalink
Add release checklist and testing information
Browse files Browse the repository at this point in the history
This commit adds the checklist containing specific tasks to
be completed in stage of the release and the testing strategy
which defines the hardware/backends that are used to for running
the tests.

Signed-off-by: Gowtham Suresh Kumar <[email protected]>
  • Loading branch information
gowthamsk-arm committed Mar 9, 2023
1 parent c0c36e6 commit 765de5c
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
54 changes: 54 additions & 0 deletions src/contributing/release_checklist.md
Original file line number Diff line number Diff line change
@@ -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.*
41 changes: 41 additions & 0 deletions src/contributing/release_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 765de5c

Please sign in to comment.