Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove external dependencies from coverage, increase default target #245

Merged
merged 12 commits into from
Nov 5, 2024
7 changes: 5 additions & 2 deletions .github/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@ comment:
require_changes: false
github_checks:
annotations: false
ignore:
- "**/distro.py"
- "src/external_dependencies"
coverage:
precision: 2
round: down
range: "70...100"
status:
project:
default:
target: 75%
target: 90%
threshold: 0%
if_ci_failed: error
if_not_found: failure
Expand All @@ -26,4 +29,4 @@ coverage:
target: 100%
threshold: 0%
if_ci_failed: error
if_not_found: failure
if_not_found: failure
50 changes: 39 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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**.
Expand All @@ -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.**

3 changes: 3 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ignore:
- "**/distro.py"
- "src/external_dependencies"