Skip to content

Conversation

@lcarcaramo
Copy link
Member

💡 Issue Reference

Issue: fixes #3 #8

💻 What does this address?

  • Remind contributors of the DCO signoff requirement for commits in the pull request template since it is easy to overlook.
  • Add GitHub Actions workflows for the following:
    • clang-format (for C/C++ linting)
    • cppcheck (for static code analysis)
    • fuzz (using LibFuzzer, which is part of LLVM)
    • ruff (for Python linting)
    • test (for unit testing)
  • Create Jenkinsfile to run cppcheck, unit tests, and publish the Python distributions of RACFu as GitHub releases (Publishing to PyPi will still need to be manual).
  • The Jenkinsfile also handles getting the correct versions of OpenSSL and ZOSLIB from zopen community since they are now build dependencies required for certificate management.
  • Makefile has been updated to set up explicit compatibility for Linux and Mac (there are some differences) for the purposes of running unit test and other development tasks.
  • LLVM LibFuzzer can new be run using make fuzz.
  • clang-format to lint C/C++ linting can be run using make lint
  • Update JSON for Modern C++ and Unity to the latest available versions.
  • ruff linting rules have been provided by @EmmasBox.
  • Python code style fixes based ruff complaints.
  • Fixes related to LibFuzzer complaints.
    • Require a length for the request JSON to be passed to racfu(). Assuming that the request JSON provided is null terminated string can lead to buffer overflow issues.
    • Pass the length of the result JSON back to callers of racfu() in the racfu_result_t struct. The caller should not automatically assume that the result JSON is a null terminated string. RACFu now provides the length explicitly, which is more robust.
    • Ensure that all memory preserved and returned to the caller is allocated using new. The reason for this is because if there is a mismatch between what is used to allocate and free memory, this results in undefined behavior. Now, memory that gets preserved for the caller is allocated using new and is freed later using delete to avoid undefined behavior.
  • Add a security policy instructing users to use GitHub's Report a Vulnerability to report vulnerabilities.
  • Use a mutex in python/_racfu.c to make the Python distribution of RACFu thread safe. Technically, the GIL prevents true multi-threading in Python, but this has been added to be safe.

📋 Is there a test case?

See GitHub Actions workflows.

A Python wheel was also built and test installed to ensure everything works.

lcarcaramo and others added 30 commits April 18, 2025 09:24
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Emma S. <[email protected]>
Signed-off-by: Emma S. <[email protected]>
Configured Ruff for more aggressive linting and excluded folders with…
Merge Keyring/Certificate extract changes into main.
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
Signed-off-by: Leonard Carcaramo <[email protected]>
@lcarcaramo lcarcaramo added the enhancement New feature or request label May 1, 2025
@lcarcaramo lcarcaramo added this to the 1.0a2 milestone May 1, 2025
@lcarcaramo lcarcaramo requested a review from ElijahSwiftIBM May 1, 2025 15:36
Copy link
Collaborator

@ElijahSwiftIBM ElijahSwiftIBM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great; really streamlines things!

@lcarcaramo lcarcaramo merged commit a11225d into dev May 1, 2025
11 checks passed
@lcarcaramo lcarcaramo deleted the feat/cicd-oss-housekeeping branch May 2, 2025 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants