diff --git a/.github/codecov.yml b/.github/codecov.yml index 9c4549fb..3c17c5f3 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -4,6 +4,9 @@ comment: require_changes: false github_checks: annotations: false +ignore: + - "**/distro.py" + - "src/external_dependencies" coverage: precision: 2 round: down @@ -11,7 +14,7 @@ coverage: status: project: default: - target: 75% + target: 90% threshold: 0% if_ci_failed: error if_not_found: failure @@ -26,4 +29,4 @@ coverage: target: 100% threshold: 0% if_ci_failed: error - if_not_found: failure \ No newline at end of file + if_not_found: failure diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7b73616e..617ed650 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,6 +12,7 @@ If you would like to become an active contributor to this project, please follow [Making Changes](#making-changes) - [Pull Requests](#pull-requests) - [Pull Request Guidelines](#pull-request-guidelines) + - [PR Planning / AzGPS Engineering Requirements](#pr-planning--azgps-engineering-requirements) - [Cleaning up commits](#cleaning-up-commits) - [General guidelines](#general-guidelines) - [Testing guidelines](#testing-guidelines) @@ -41,6 +42,12 @@ To open your own pull request, click [here](https://github.com/Azure/LinuxPatchE ### Pull Request Guidelines +#### PR Planning / AzGPS Engineering Requirements + +The backlog for the Linux Patch Extension is tracked internally at Microsoft (by the Azure Guest Patching Service team in the Azure Core Compute Platform). There are also closed-source dependencies with the Compute Platform on this extension, and there are internal quality-control requirements set on end-to-end scenarios. + +To ensure smooth engineering, if there's a change required on the extension, please proactively start a conversation with the engineering team via the Issues page. We cannot provide an SLA on unsolicited PRs if not discussed prior, so please reach out as early as possible. + #### Cleaning up Commits If you are thinking about making a large change, **break up the change into small, logical, testable chunks, and organize your pull requests accordingly**. @@ -51,28 +58,49 @@ If you find yourself creating a pull request and are unable to see all the chang If splitting up the pull request is not an option, we recommend **creating individual commits for different parts of the pull request, which can be reviewed individually on GitHub**. -For more information on cleaning up the commits in a pull request, such as how to rebase, squash, and cherry-pick, click [here](https://github.com/Azure/azure-powershell/blob/dev/documentation/development-docs/cleaning-up-commits.md). +For more information on cleaning up the commits in a pull request, such as how to rebase, squash, and cherry-pick, click [here](https://github.com/Azure/azure-powershell/blob/main/documentation/development-docs/cleaning-up-commits.md). #### General guidelines The following guidelines must be followed in **EVERY** pull request that is opened. -- Title of the pull request is clear and informative -- There are a small number of commits that each have an informative message -- A description of the changes the pull request makes is included, and a reference to the issue being resolved, if the change address any -- All files have the Microsoft copyright header +- Title of the pull request is clear and informative. +- There are a small number of commits that each have an informative message. +- A description of the changes the pull request makes is included, and a reference to the issue being resolved, if the change address any. +- All files have the Microsoft copyright header. #### Testing Guidelines The following guidelines must be followed in **EVERY** pull request that is opened. - Pull request includes test coverage for the included changes -- All existing tests must continue to pass successfully on both Python 2.7+ and Python 3.x. -- Code must have been tested on all supported distributions and versions of those distributions that have not reached end of life. The distribution test matrix is as follows: + - All new code introduced **must not** reduce the measured code coverage of any file or of the master branch as a whole. + - Code coverage threshold to be met: **95% on all new code.** Efforts are ongoing to meet or exceed this target on existing code. +- All existing tests must continue to pass successfully on both Python 2.7+ and Python 3.x (latest version). +- Code must have been tested on all supported distributions and versions of those distributions that have not reached end of life. The primary distribution test matrix is as follows: Dist | Version | -----|---------| -Ubuntu Server | 16.04-LTS, 18.04-LTS, 20.04-LTS -Red Hat Enterprise Linux | 6 (x86/x64), 7 (x64), 8 (x64) -CentOS | 6 (x86/x64), 7 (x64), 8 (x64) -SUSE Linux Enterprise Server | 11 (x86/x64), 12 (x64), 15 (x64) +Ubuntu Server | 20.04-LTS, 22.04-LTS, 24.04-LTS +Red Hat Enterprise Linux | 8 (x64), 9 (x64) +SUSE Linux Enterprise Server | 15 (x64) + +The following distribution-versions are supported under **extended support policies** from the vendor and **must also be tested**: + +Dist | Version | Comment | +-----|---------|---------| +Ubuntu Server | 16.04-LTS, 18.04-LTS | Until Apr 2nd, 2026 & Apr 1st, 2028 (resp.) +Red Hat Enterprise Linux | 7 (x64) | Until Jun 30th, 2024 +CentOS | 7 (x64) | Until Jun 30th, 2024 +SUSE Linux Enterprise Server | 12 (x64) | Until Oct 31st, 2027 + +The following distributions have been **EXCLUDED** from support due to end of life and end of extended support: + +Dist | Version | Comment | +-----|---------|---------| +Red Hat Enterprise Linux | 6 (x86/x64) | Ended Nov 30th, 2020 +CentOS | 6 (x86/x64), 8 (x64) | Ended Nov 30th, 2020 & Dec 31st, 2021 (resp.) +SUSE Linux Enterprise Server | 11 (x86/x64) | Ended Mar 31st, 2022 + +**All dates listed are accurate as of March 12th, 2024. Please refer to official distribution vendor guidance for up-to-date information.** + diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..82777754 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,3 @@ +ignore: + - "**/distro.py" + - "src/external_dependencies" \ No newline at end of file