Skip to content

Add error codes mapping with doc pages generation and static check#65423

Open
omkar-foss wants to merge 3 commits intoapache:mainfrom
omkar-foss:error-codes-with-static-checks
Open

Add error codes mapping with doc pages generation and static check#65423
omkar-foss wants to merge 3 commits intoapache:mainfrom
omkar-foss:error-codes-with-static-checks

Conversation

@omkar-foss
Copy link
Copy Markdown
Collaborator

Related: #43171

This adds AirflowEnumeratedException providing a way for devs to specify error code (AERR) while raising exceptions. These AERRs are mapped in yaml providing info about the error to users via docs, as a new doc page is generated for each error code in the yaml.

This also adds a static check that validates raises for AirflowEnumeratedException and all its subclasses. Supporting tests also added for this static check.

Entire story can be thought of as follows:

  • airflow dev identifies an error case and raises a new enumerated exception in code with new error code (say AERRNEW01)
  • dev then adds AERRNEW01 to error mapping yml with required info
  • dev runs breeze build-docs that generates a new page for AERRNEW01
  • in case dev misses adding AERRNEW01 to error mapping yml or doesnt specify error_code in raise then static check will catch it

Was generative AI tooling used to co-author this PR?

No


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

This adds AirflowEnumeratedException providing a way for devs
to specify error code (AERR) while raising exceptions. These AERRs
are mapped in yaml providing info about the error to users via docs,
as a new doc page is generated for each error code in the yaml.

This also adds a static check that validates raises for
AirflowEnumeratedException and all its subclasses. Supporting tests
also added for this static check.

Entire story can be thought of as follows:
- airflow dev identifies an error case and raises a new enumerated
exception in code with new error code (say AERRNEW01)
- dev then adds AERRNEW01 to error mapping yml with required info
- dev runs breeze build-docs that generates a new page for AERRNEW01
- in case dev misses adding AERRNEW01 to error mapping yml or doesnt
specify error_code in raise then static check will catch it

Signed-off-by: Omkar P <45419097+omkar-foss@users.noreply.github.com>
Signed-off-by: Omkar P <45419097+omkar-foss@users.noreply.github.com>
Signed-off-by: Omkar P <45419097+omkar-foss@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant