Skip to content

Commit 8f1edaa

Browse files
[MERGE] Alpha Seven Release Candidate for Version 2.0.9 (v2.0.9a7)
2 parents bd23f96 + 4ab2749 commit 8f1edaa

38 files changed

+799
-428
lines changed

.coderabbit.yaml

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ reviews:
1010
1111
- Ensure the code follows best practices and coding standards.
1212
- Check for security vulnerabilities and potential issues.
13-
- Ensure the code follows the **DRY, AHA, and SOLID** principles.
13+
- Ensure the code follows the **DRY, Avoid-Hasty-Abstractions, and SOLID** design principles.
1414
- Our "Code Review Checklist Guide" is documented in
1515
[CEP-4](https://gist.github.com/reactive-firewall/cc041f10aad1d43a5ef15f50a6bbd5a5),
1616
be sure to always consider
@@ -35,7 +35,7 @@ reviews:
3535
- Verify that technical documentation includes a "References" section at
3636
the end of documentation, using the same format as actual RFCs, with
3737
both "Normative References" and "Informative References". Suggest improvements if unable.
38-
- Ensure that that project documentation and comments follow
38+
- Ensure that the project documentation and source-code comments follow
3939
[CEP-7](https://gist.github.com/reactive-firewall/123b8a45f1bdeb064079e0524a29ec20)
4040
4141
# Test Code Review Instructions
@@ -44,7 +44,7 @@ reviews:
4444
- Verify that minimal acceptance tests (e.g., those run by the workflow CI-MATs) are passing and
4545
error free, pointing out any failure as below minimal acceptance (i.e. un-acceptable).
4646
- Ensure that the test coverage meets or exceeds the project's required threshold
47-
(e.g., aiming for 100% coverage as per Issue #53).
47+
(e.g., aiming for 100% coverage as per GitHub Issue #53).
4848
- For **test** code, *also* follow
4949
[CEP-9](https://gist.github.com/reactive-firewall/d840ee9990e65f302ce2a8d78ebe73f6)
5050
@@ -57,6 +57,8 @@ reviews:
5757
not assume a dependency is optional, confirm if it is or is not optional.
5858
- For **Python** code, consider [PEP 290](https://peps.python.org/pep-0290/) whenever a python
5959
(e.g., has the extension '.py') file is changed.
60+
- Our project's "AI Usage Policy" is documented in
61+
[.github/AI_USAGE_POLICY.md](https://github.com/reactive-firewall-org/multicast/tree/master/.github/AI_USAGE_POLICY.md).
6062
request_changes_workflow: true
6163
high_level_summary: true
6264
high_level_summary_placeholder: '@coderabbitai summary'
@@ -77,17 +79,27 @@ reviews:
7779
instructions: >-
7880
Apply when the PR/MR contains changes to the file `Makefile` or makefile
7981
code snippets.
80-
- label: Documentation
82+
- label: documentation
8183
instructions: >-
8284
Apply whenever project documentation (namely markdown source-code) is
8385
updated by the PR/MR. Also apply when PR contains a commit with a commit
8486
message prefixed with "[DOCUMENTATION] "
87+
- label: CI
88+
instructions: >-
89+
Apply whenever any project CI/CD components (namely GitHub Action source-code) are
90+
updated by the PR/MR. Also apply when PR contains a commit with a commit
91+
message prefixed with "[CI] "
8592
- label: Linter
8693
instructions: >-
8794
Apply when the purpose of the PR/MR is related to fixing the feedback
8895
from a linter. Also apply if suggested fixes are used and improve the
89-
code's compliance with the PEP-8 standard.
90-
path_filters: ['!*.xc*/**', '!node_modules/**', '!dist/**', '!build/**', '!.git/**', '!venv/**', '!__pycache__/**']
96+
code's compliance with project conventions or adopted standards.
97+
- label: Testing
98+
instructions: >-
99+
Apply when the purpose of the PR/MR is related to fixing/improving any
100+
testing components or test-code. Also apply if suggested fixes are
101+
used and improve the project's test-code.
102+
path_filters: ['!*.xc*/**', '!node_modules/**', '!dist/**', '!package.json', '!package-lock.json', '!yarn.lock', '!build/**', '!.git/**', '!venv/**', '!__pycache__/**']
91103
path_instructions:
92104
- path: README.md
93105
instructions: >-
@@ -120,7 +132,7 @@ reviews:
120132
the guidelines set by
121133
[CEP-7](https://gist.github.com/reactive-firewall/123b8a45f1bdeb064079e0524a29ec20).
122134
6. Verify Flake8's configuration file is located at ".flake8.ini". Flake8 is run
123-
automaticly by the `flake8-cq` GHA used by the `.github/workflows/flake8.yml` workflow.
135+
automatically by the `flake8-cq` GHA used by the `.github/workflows/flake8.yml` workflow.
124136
7. Verify alignment of any new changes, with the code style advocated in
125137
[CEP-8](https://gist.github.com/reactive-firewall/b7ee98df9e636a51806e62ef9c4ab161),
126138
pointing out any introduced deviations.
@@ -167,8 +179,8 @@ reviews:
167179
4. Consider these 'requirements.txt' files the records of truth regarding project
168180
dependencies.
169181
5. Consider the 'requirements.txt' file in the base of the git repository
170-
(e.g., './requirements.txt') the required python dependencies regarding Multicast project
171-
dependencies.
182+
(e.g., './requirements.txt') the required python dependencies regarding Multicast
183+
project dependencies.
172184
- path: tests/requirements.txt
173185
instructions: >-
174186
1. The multicast project's own dependencies are recorded in './requirements.txt'

.github/actions/checkout-and-rebuild/action.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,22 @@ inputs:
4040
required: true
4141
outputs:
4242
branch-name:
43-
description: "The name of the branch that was checked-out"
43+
description: "The name of the branch that was checked-out."
4444
value: ${{ steps.output_branch_name.outputs.branch-name || '' }}
4545
sha:
46-
description: "The SHA of the commit checked-out"
46+
description: "The SHA of the commit checked-out."
4747
value: ${{ steps.output_sha.outputs.sha || 'HEAD' }}
4848
python-version:
4949
description: "The python version that was used in the run."
5050
value: ${{ steps.cp313.outputs.python-version || '' }}
51+
python-path:
52+
description: "Absolute path to the Python executable installed for the run."
53+
value: ${{ steps.cp313.outputs.python-path }}
5154
artifact-name:
5255
description: "The downloaded artifact-name"
5356
value: "multicast-build-${{ steps.output_sha.outputs.sha }}.zip"
5457
artifact-files:
55-
description: "The downloaded artifact-files"
58+
description: "The downloaded artifact-files."
5659
value: ${{ steps.output_artifact_files.outputs.files }}
5760

5861
runs:
@@ -92,6 +95,16 @@ runs:
9295
- run: python -m pip install --upgrade pip
9396
shell: bash
9497
if: ${{ !cancelled() && runner.os == 'Windows' }}
98+
- id: output_python_env
99+
name: "Python Environment"
100+
shell: bash
101+
run: |
102+
printf "%s\n" "::group::python-env"
103+
printf "python-path=%s\n" "${{ steps.cp313.outputs.python-path }}" >> "$GITHUB_OUTPUT"
104+
printf "PYTHON=%s\n" "${{ steps.cp313.outputs.python-path }}" >> "$GITHUB_ENV"
105+
printf "python-version=%s\n" "${{ steps.cp313.outputs.python-version }}" >> "$GITHUB_OUTPUT"
106+
printf "PYTHON_VERSION=%s\n" "${{ steps.cp313.outputs.python-version }}" >> "$GITHUB_ENV"
107+
printf "%s\n" "::endgroup::"
95108
- name: "Install Test Dependencies"
96109
shell: bash
97110
run: |
@@ -102,7 +115,8 @@ runs:
102115
if: ${{ success() }}
103116
shell: bash
104117
run: printf "artifact-name=%s\n" multicast-build-${{ steps.output_sha.outputs.sha }} >> "$GITHUB_OUTPUT"
105-
- name: "Fetch Build Files"
118+
- id: fetch_artifact_files
119+
name: "Fetch Build Files"
106120
if: ${{ (github.repository == 'reactive-firewall-org/multicast') && success() }}
107121
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
108122
with:

.github/actions/fetch-test-reporter/action.yml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,20 @@ inputs:
1414
rate limiting.
1515
default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
1616
required: true
17-
codeclimate-token:
18-
description: |
19-
The token used to authenticate when performing codeclimate API operations.
17+
codeclimate-token: # deprecated in v2.0.9a7
18+
description: "UNUSED."
19+
deprecationMessage: |
20+
This input is deprecated as of v2.0.9a7 and will be removed in a future release.
21+
CodeClimate support has been discontinued.
2022
default: ''
21-
required: true
22-
cc-test-reporter-id:
23-
description: |
24-
The id used to report tests when performing codeclimate API operations.
23+
required: false
24+
cc-test-reporter-id: # deprecated in v2.0.9a7
25+
description: "UNUSED."
26+
deprecationMessage: |
27+
This input is deprecated as of v2.0.9a7 and will be removed in a future release.
28+
CodeClimate support has been discontinued.
2529
default: ''
26-
required: true
30+
required: false
2731
deepsource-dsn:
2832
description: |
2933
The deepsource DSN when performing deepsource API operations.
@@ -70,8 +74,6 @@ runs:
7074
if: ${{ !cancelled() && (steps.output_can_fetch.outputs.can_fetch == 'true') && (runner.os != 'Windows') && (github.repository == 'reactive-firewall-org/multicast') }}
7175
shell: bash
7276
env:
73-
CODECLIMATE_REPO_TOKEN: ${{ github.server_url == 'https://github.com' && inputs.codeclimate-token || '' }}
74-
CC_TEST_REPORTER_ID: ${{ github.server_url == 'https://github.com' && inputs.cc-test-reporter-id || '' }}
7577
COVERALLS_REPO_TOKEN: ${{ github.server_url == 'https://github.com' && inputs.coveralls-token || '' }}
7678
DEEPSOURCE_DSN: ${{ github.server_url == 'https://github.com' && inputs.deepsource-dsn || '' }}
7779
run: |

.github/actions/purge-test-reporter/action.yml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,20 @@ inputs:
1414
rate limiting.
1515
default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
1616
required: true
17-
codeclimate-token:
18-
description: |
19-
The token used to authenticate when performing codeclimate API operations.
17+
codeclimate-token: # deprecated in v2.0.9a7
18+
description: "UNUSED"
19+
deprecationMessage: |
20+
This input is deprecated as of v2.0.9a7 and will be removed in a future release.
21+
CodeClimate support has been discontinued.
2022
default: ''
21-
required: true
22-
cc-test-reporter-id:
23-
description: |
24-
The id used to report tests when performing codeclimate API operations.
23+
required: false
24+
cc-test-reporter-id: # deprecated in v2.0.9a7
25+
description: "UNUSED"
26+
deprecationMessage: |
27+
This input is deprecated as of v2.0.9a7 and will be removed in a future release.
28+
CodeClimate support has been discontinued.
2529
default: ''
26-
required: true
30+
required: false
2731
deepsource-dsn:
2832
description: |
2933
The deepsource DSN when performing deepsource API operations.
@@ -70,13 +74,11 @@ runs:
7074
if: ${{ !cancelled() && (steps.output_can_purge.outputs.can_purge == 'true') && (runner.os != 'Windows') && (github.repository == 'reactive-firewall-org/multicast') }}
7175
shell: bash
7276
env:
73-
CODECLIMATE_REPO_TOKEN: ${{ github.server_url == 'https://github.com' && inputs.codeclimate-token || '' }}
74-
CC_TEST_REPORTER_ID: ${{ github.server_url == 'https://github.com' && inputs.cc-test-reporter-id || '' }}
7577
COVERALLS_REPO_TOKEN: ${{ github.server_url == 'https://github.com' && inputs.coveralls-token || '' }}
7678
DEEPSOURCE_DSN: ${{ github.server_url == 'https://github.com' && inputs.deepsource-dsn || '' }}
7779
run: |
7880
${{ github.workspace }}/.github/tools/fetch-test-reporter/purge-test-reporter || exit $?
79-
- name: "Evaluate Fetch Task"
81+
- name: "Evaluate Purge Task"
8082
id: purge_outcome
8183
if: ${{ !cancelled() }}
8284
shell: bash

.github/actions/test-reporter-upload/action.yml

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,20 @@ inputs:
4040
- Linux
4141
- Windows
4242
required: true
43-
codeclimate-token:
44-
description: |
45-
The token used to authenticate when performing codeclimate API operations.
43+
codeclimate-token: # deprecated in v2.0.9a7
44+
description: "UNUSED"
45+
deprecationMessage: |
46+
This input is deprecated as of v2.0.9a7 and will be removed in a future release.
47+
CodeClimate support has been discontinued.
4648
default: ''
47-
required: true
48-
cc-test-reporter-id:
49-
description: |
50-
The id used to report tests when performing codeclimate API operations.
49+
required: false
50+
cc-test-reporter-id: # deprecated in v2.0.9a7
51+
description: "UNUSED"
52+
deprecationMessage: |
53+
This input is deprecated as of v2.0.9a7 and will be removed in a future release.
54+
CodeClimate support has been discontinued.
5155
default: ''
52-
required: true
56+
required: false
5357
deepsource-dsn:
5458
description: |
5559
The deepsource DSN when performing deepsource API operations.
@@ -78,9 +82,9 @@ outputs:
7882
coverage_upload_codecov_outcome:
7983
description: "The outcome of the CodeCov coverage test reporter action."
8084
value: ${{ steps.coverage-codecov-upload.outcome || 'cancelled' }}
81-
coverage_upload_codeclimate_outcome:
82-
description: "The outcome of the CodeClimate coverage test reporter action."
83-
value: ${{ steps.coverage-codeclimate-upload.outcome || 'cancelled' }}
85+
coverage_upload_codeclimate_outcome: # deprecated in v2.0.9a7
86+
description: "The outcome of the CodeClimate coverage test reporter action. ALWAYS skipped."
87+
value: 'skipped'
8488
coverage_upload_deepsource_outcome:
8589
description: "The outcome of the DeepSource coverage test reporter action."
8690
value: ${{ steps.coverage-deepsource-upload.outcome || 'cancelled' }}
@@ -140,6 +144,13 @@ runs:
140144
printf "::debug::%s\n" "Identified ${OS}"
141145
fi
142146
printf "%s\n" "OS=${OS}" >> "$GITHUB_ENV"
147+
- id: output_branch_name
148+
if: ${{ !cancelled() }}
149+
shell: bash
150+
run: |
151+
printf "branch-name=%s\n" $(git name-rev --name-only HEAD 2>/dev/null | cut -d~ -f1-1) >> "$GITHUB_OUTPUT"
152+
printf "::debug::%s %s\n" "Will report coverage as branch " $(git name-rev --name-only HEAD | cut -d~ -f1-1)
153+
printf "BUILD_BRANCH=%s\n" $(git name-rev --name-only HEAD 2>/dev/null | cut -d~ -f1-1) >> "$GITHUB_ENV"
143154
- name: "Prepare Artifact Name"
144155
id: output_artifact_name
145156
if: ${{ !cancelled() }}
@@ -161,8 +172,9 @@ runs:
161172
if [[ -x ${{ github.workspace }}/cc-test-reporter ]] ; then
162173
printf "can_upload_to_codeclimate=true\n" >> "$GITHUB_OUTPUT"
163174
printf "::debug::%s\n" "Found ${{ github.workspace }}/cc-test-reporter"
175+
printf "::warning title='Unexpected tool':: %s\n" "Can't use cc-test-reporter tool."
164176
else
165-
printf "::warning title='Missing tool':: %s\n" "Can't find cc-test-reporter tool."
177+
printf "::debug:: %s\n" "Can't find cc-test-reporter tool. This is normal."
166178
printf "can_upload_to_codeclimate=false\n" >> "$GITHUB_OUTPUT"
167179
fi
168180
LOCALBIN="${{ github.workspace }}/bin"
@@ -249,7 +261,6 @@ runs:
249261
run: |
250262
if [[ "${OS}" != "unknown" ]] ; then
251263
if [[ "${{ steps.output_upload_tools.outputs.can_upload_to_codecov }}" == "true" ]] || \
252-
[[ "${{ steps.output_upload_tools.outputs.can_upload_to_codeclimate }}" == "true" ]] || \
253264
[[ "${{ steps.output_upload_tools.outputs.can_upload_to_coveralls }}" == "true" ]] || \
254265
[[ "${{ steps.output_upload_tools.outputs.can_upload_to_deepsource }}" == "true" ]] ; then
255266
THE_RESULT="success"
@@ -289,6 +300,9 @@ runs:
289300
token: ${{ inputs.codecov-token }}
290301
job_code: ${{ inputs.job_code || '' }}
291302
override_commit: ${{ steps.output_sha.outputs.sha }}
303+
override_branch: ${{ steps.output_branch_name.outputs.branch-name }}
304+
report_type: 'coverage'
305+
slug: 'reactive-firewall-org/multicast'
292306
files: ./coverage.xml,./test-reports/coverage.xml
293307
directory: ${{ github.workspace }}
294308
flags: multicast
@@ -306,19 +320,6 @@ runs:
306320
compression-level: 9
307321
retention-days: 2
308322
overwrite: true
309-
- name: Upload ${{ steps.output_os.outputs.os }} Python ${{ steps.output_python.outputs.python-version }} coverage to code-climate
310-
if: ${{ !cancelled() && (steps.output_can_upload.outputs.can_upload == 'true') && (steps.output_upload_tools.outputs.can_upload_to_codeclimate == 'true') && (steps.output_os.outputs.os != 'Windows') && (github.repository == 'reactive-firewall-org/multicast') }}
311-
id: coverage-codeclimate-upload
312-
shell: bash
313-
env:
314-
CODECLIMATE_REPO_TOKEN: ${{ github.server_url == 'https://github.com' && inputs.codeclimate-token || '' }}
315-
CC_TEST_REPORTER_ID: ${{ github.server_url == 'https://github.com' && inputs.cc-test-reporter-id || '' }}
316-
run: |
317-
if [[ "${{ inputs.tests-outcome }}" == "success" ]] ; then
318-
./cc-test-reporter after-build --exit-code 0 || exit 1 ;
319-
else
320-
./cc-test-reporter after-build --exit-code 1 || exit 1 ;
321-
fi
322323
- name: Upload ${{ steps.output_os.outputs.os }} Python ${{ steps.output_python.outputs.python-version }} coverage to deepsource
323324
if: ${{ !cancelled() && (steps.output_can_upload.outputs.can_upload == 'true') && (steps.output_upload_tools.outputs.can_upload_to_deepsource == 'true') && (steps.output_os.outputs.os != 'Windows') && (github.repository == 'reactive-firewall-org/multicast') }}
324325
id: coverage-deepsource-upload

0 commit comments

Comments
 (0)