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

Improve selectiveness of selective checks for "always/tests" case #35458

Merged

Conversation

potiuk
Copy link
Member

@potiuk potiuk commented Nov 5, 2023

When we decide which tests should be run we err on a safe side and when we see that some files were modified that we cannot classify to specific providers, API, CLI, WWW area, we err on a safe side and assume that we should run all tests (This is called a "core/other modified" case. The assumption here is that modificiation of any of the core code or some of the auxiliary utils might affect everyone else.

However - we can safely assume that if only "tests/always" files have been modified, then we can remove them from the list - because those tests will anyhow will be executed and changing those tests should have no impact on other tests. Those tests are ALWAYS executed. iThis will - in some cases - avoid running full test suite when we really only run a small subset of those.

This was the case for #35457 where it run full test suite, but really only "Always Providers[common.io]" were needed.


^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named {pr_number}.significant.rst or {issue_number}.significant.rst, in newsfragments.

When we decide which tests should be run we err on a safe side and
when we see that some files were modified that we cannot classify
to specific providers, API, CLI, WWW area, we err on a safe side
and assume that we should run all tests (This is called a
"core/other modified" case. The assumption here is that modificiation
of any of the core code or some of the auxiliary utils might affect
everyone else.

However - we can safely assume that if only "tests/always" files
have been modified, then we can remove them from the list - because
those tests will anyhow will be executed and changing those tests
should have no impact on other tests. Those tests are ALWAYS executed.
iThis will - in some cases - avoid running full test suite when
we really only run a small subset of those.

This was the case for apache#35457 where it run full test suite, but really
only "Always Providers[common.io]" were needed.
@@ -676,7 +700,7 @@ def test_expected_output_full_tests_needed(
),
],
)
def test_expected_output_pull_request_v2_3(
def test_expected_output_pull_request_v2_7(
Copy link
Member Author

Choose a reason for hiding this comment

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

It's unrelated, but I noticed that we have not updated the branch to latest - it does not matter, but might be misleading

@potiuk potiuk merged commit 3e9c47e into apache:main Nov 5, 2023
@potiuk potiuk deleted the improve-selective-checks-for-tests-always-case branch November 5, 2023 17:39
romsharon98 pushed a commit to romsharon98/airflow that referenced this pull request Nov 10, 2023
…ache#35458)

When we decide which tests should be run we err on a safe side and
when we see that some files were modified that we cannot classify
to specific providers, API, CLI, WWW area, we err on a safe side
and assume that we should run all tests (This is called a
"core/other modified" case. The assumption here is that modificiation
of any of the core code or some of the auxiliary utils might affect
everyone else.

However - we can safely assume that if only "tests/always" files
have been modified, then we can remove them from the list - because
those tests will anyhow will be executed and changing those tests
should have no impact on other tests. Those tests are ALWAYS executed.
iThis will - in some cases - avoid running full test suite when
we really only run a small subset of those.

This was the case for apache#35457 where it run full test suite, but really
only "Always Providers[common.io]" were needed.
@ephraimbuddy ephraimbuddy added the changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..) label Nov 20, 2023
@ephraimbuddy ephraimbuddy added this to the Airflow 2.8.0 milestone Nov 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:dev-tools changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants