Skip to content

[FEATURE] Improve CI by refactoring #339

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

Merged
merged 3 commits into from
Mar 19, 2025

Conversation

reactive-firewall
Copy link
Collaborator

@reactive-firewall reactive-firewall commented Mar 19, 2025

Patch Notes

Impacted GHI


Summary by CodeRabbit

  • New Features
    • Introduced an automated pip upgrade mechanism for Windows that helps ensure compatibility and reliability on Windows systems.
  • Chores
    • Streamlined continuous integration workflows by replacing manual pip upgrade commands with a reusable action, enhancing maintainability.

…-)

Additions with file .github/actions/upgrade-windows-pip/action.yml:
 * new helper for Windows-specific pip upgrade step implemented as seperate action now.

Changes in file .github/workflows/Tests.yml:
 * simplify the config by using the new DRY action.
…-)

Changes in file .github/workflows/CI-DOCS.yml:
  * now uses DRY action
Copy link

deepsource-io bot commented Mar 19, 2025

Here's the code health analysis summary for commits f099ec5..696274f. View details on DeepSource ↗.

Analysis Summary

AnalyzerStatusSummaryLink
DeepSource Python LogoPython✅ SuccessView Check ↗
DeepSource Test coverage LogoTest coverage✅ SuccessView Check ↗

Code Coverage Report

MetricAggregatePython
Branch Coverage86.2%86.2%
Composite Coverage92.8%92.8%
Line Coverage93.2%, ✅ Above Threshold93.2%, ✅ Above Threshold

💡 If you’re a repository administrator, you can configure the quality gates from the settings.

Copy link
Contributor

coderabbitai bot commented Mar 19, 2025

Walkthrough

The changes introduce a new composite action for upgrading pip on Windows, defined in a new GitHub Actions file. Two existing workflows now invoke this custom action instead of running the pip upgrade command directly. This centralizes and simplifies the pip upgrade process on Windows systems by encapsulating the logic in a reusable action.

Changes

File(s) Change Summary
.github/actions/upgrade-windows-pip/action.yml New composite action added to upgrade pip on Windows with branding and a conditional execution step.
.github/workflows/CI-DOCS.yml, .github/workflows/Tests.yml Updated pip upgrade steps to use the custom action (uses: ./.github/actions/upgrade-windows-pip) instead of inline commands.

Sequence Diagram(s)

sequenceDiagram
    participant Workflow as CI Workflow
    participant Action as Upgrade Windows Pip Action
    participant Runner as Windows Runner

    Workflow->>Action: Invoke pip upgrade action
    Action->>Runner: Check if OS is Windows
    alt OS is Windows
        Runner->>Action: Execute "python -m pip install --upgrade pip"
    else OS is not Windows
        Action-->>Workflow: Skip pip upgrade
    end
Loading

Assessment against linked issues

Objective Addressed Explanation
Refactor Windows-specific pip upgrade step duplication (#210: 224-226,609-611)
Use specific branch patterns for HOTFIX (#210: 2-7) Branch pattern update not implemented in this PR.

Possibly related PRs

Suggested labels

Bash Lang, Documentation

Poem

I'm a rabbit with hops so bright,
Celebrating a code fix done just right!
Pip now upgrades with a single, neat call,
In Windows it works, no fuss at all.
With a twitch of my nose, I cheer this code ball!

Tip

⚡🧪 Multi-step agentic review comment chat (experimental)
  • We're introducing multi-step agentic chat in review comments. This experimental feature enhances review discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments.
    - To enable this feature, set early_access to true under in the settings.

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f099ec5 and 6cbb682.

📒 Files selected for processing (3)
  • .github/actions/upgrade-windows-pip/action.yml (1 hunks)
  • .github/workflows/CI-DOCS.yml (1 hunks)
  • .github/workflows/Tests.yml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`.github/**`: * When the project is hosted on GitHub: All GitHub-specific configurations, templates, and tools should be found in the '.github' directory tree. * 'actionlint' err...

.github/**: * When the project is hosted on GitHub: All GitHub-specific configurations, templates,
and tools should be found in the '.github' directory tree.

  • 'actionlint' erroneously generates false positives when dealing with
    GitHub's ${{ ... }} syntax in conditionals.
  • 'actionlint' erroneously generates incorrect solutions when suggesting the removal of
    valid ${{ ... }} syntax.
  • .github/workflows/CI-DOCS.yml
  • .github/workflows/Tests.yml
  • .github/actions/upgrade-windows-pip/action.yml
🧠 Learnings (1)
📓 Common learnings
Learnt from: reactive-firewall
PR: reactive-firewall/ymmv#9
File: payload/bin/lsmap:17-27
Timestamp: 2024-11-07T04:15:11.692Z
Learning: Reactive-firewall prefers scripts to support both BSD and GNU versions of commands, with a slight preference for BSD.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#115
File: multicast/hear.py:180-180
Timestamp: 2024-09-19T03:43:24.037Z
Learning: Reactive-firewall prefers to re-use already loaded modules to keep memory overhead low when possible.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#115
File: multicast/hear.py:180-180
Timestamp: 2024-10-08T21:59:30.537Z
Learning: Reactive-firewall prefers to re-use already loaded modules to keep memory overhead low when possible.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:03:34.760Z
Learning: In the multicast project, when refactoring shell scripts, prefer improving organization within a single file over splitting into multiple files, unless the benefits of modularity clearly outweigh the added complexity in security, permissions, and debugging.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:03:04.131Z
Learning: For future scripts, reactive-firewall prefers to use only POSIX built-ins (like `printf` instead of `echo`) to align with CEP-8 conventions.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:02:57.430Z
Learning: Reactive-firewall prefers to specify the full raw URL when fetching files from gists to ensure correct retrieval of content, particularly when the file is in markdown format.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:03:24.588Z
Learning: For future scripts, reactive-firewall prefers to keep the shebang line with an extra space (e.g., `#! /bin/bash`) as per project style.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:03:13.403Z
Learning: For future reviews, remember that when drafting or updating CEP (Convention Enhancement Proposal) documents, it's important to adhere to the project's standard format and include all relevant sections such as Motivation, Detailed Explanation, Implementation Guidelines, Impact, and References.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#184
File: LICENSE.md:36-43
Timestamp: 2025-03-19T20:03:13.403Z
Learning: Reactive-firewall prefers that I verify URLs before suggesting changes, and avoid raising hypothetical issues without verification.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#235
File: .github/workflows/makefile-lint.yml:41-52
Timestamp: 2025-03-19T20:03:34.760Z
Learning: Reactive-firewall prefers to suppress errors in `apt-get install` commands when individual checks of the installed packages are performed afterwards, to allow for more granular error handling.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:03:04.131Z
Learning: In the multicast project's shell scripts, prefer organizing code into logical sections with clear comments (e.g., "=== Environment Setup ===") to maintain readability and maintainability while keeping related functions together.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#0
File: :0-0
Timestamp: 2025-03-19T20:02:57.431Z
Learning: Reactive-firewall prefers that overviews and release notes include a mention of how strategies learned from the project have been applied to improve the final result.
Learnt from: reactive-firewall
PR: reactive-firewall/multicast#184
File: tests/check_pip:259-265
Timestamp: 2025-03-19T20:03:04.131Z
Learning: Reactive-firewall prefers that code changes adhere to SOLID design principles, specifically avoiding unnecessary complexity (AHA principle), maintaining the Single Responsibility Principle, and ensuring complex work is done on separate development branches (Open/Closed Principle).
🔇 Additional comments (2)
.github/workflows/CI-DOCS.yml (1)

54-56: Centralizing pip upgrade via custom action improves maintainability.
Replacing the direct pip upgrade command with the reusable action (./.github/actions/upgrade-windows-pip) simplifies the workflow and ensures consistent handling of the upgrade process on Windows.

.github/workflows/Tests.yml (1)

93-94: Consistent integration of the pip upgrade action in CI-TESTS.
The modification to use the custom action for upgrading pip on Windows in the Tests workflow enhances consistency with the CI-DOCS workflow. Ensure that this action behaves as expected across different test environments.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added Testing Something can be verified CI Continuous Integration Tooling GitHub Anything Meta labels Mar 19, 2025
@reactive-firewall reactive-firewall added enhancement New feature or request Configs Improvements or additions to configuration and removed Testing Something can be verified GitHub Anything Meta labels Mar 19, 2025
@reactive-firewall reactive-firewall added this to the DRY/AHA Refactor milestone Mar 19, 2025
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:01 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:03 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:07 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
@dependabot dependabot bot temporarily deployed to Experimenting March 25, 2025 03:10 Inactive
reactive-firewall added a commit that referenced this pull request May 4, 2025
…bringing together improvements from over 40 previous PRs and addressing over 40 distinct issues. It serves as a comprehensive preparation for future development, establishing strong foundations for the upcoming 2.1 version.

These changes aim to enhance code quality, enforce best practices, and streamline CI/CD processes.

---

- **Files Changed**: 100 files across 10 directories
- **Code Volume**: 4,905 lines added, 1,059 lines deleted
- **Impact Scope**:
  - Core Python Files: 8 files (1,370 lines added, 447 lines deleted)
  - Documentation: 12 files (425 lines added, 145 lines deleted)
  - Configuration: 80 files (3,110+ lines added, ~467 lines deleted)
- **Issue Resolution**: Closes 44+ distinct issues
- **PR Consolidation**: Supersedes 42+ previous PRs
- **Milestone**: Concludes "Pre-Version 2.1 Chores" (milestone/13)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

- **New Features**
  - Introduced extensive static analysis and linting rule configurations for Python and YAML, enforcing documentation, naming conventions, code style, and GitHub Actions workflow patterns.
  - Added new GitHub Actions workflows for Flake8 and ShellCheck, and a continuous deployment workflow for PyPI publishing.
  - Implemented custom GitHub Actions for artifact management and pip upgrades on Windows.
  - Enhanced Makefile with new branding, improved build/install/test targets, and better environment compatibility.
  - Added a comprehensive CI/CD output formatting tool for GitHub Actions.

- **Bug Fixes**
  - Improved error handling, logging, and validation across core modules (`multicast`, `env`, `exceptions`, `recv`, `hear`, `send`, `skt`).
  - Standardized string literals and exception variable naming for clarity and consistency.

- **Documentation**
  - Expanded CI and environment configuration documentation, including new badges, usage examples, and copyright/license.
  - Improved docstrings, exception guides, and FAQ with clearer examples and error handling.

- **Chores**
  - Updated configuration files for coverage, pytest, and dependencies.
  - Enhanced `.gitignore` and labeling configuration for better project maintenance.
  - Added and updated test scripts and test suite organization for improved coverage and grouping.

- **Style**
  - Refactored codebase for consistent string usage, formatting, and logging practices.

- **Tests**
  - Reorganized and expanded test suite structure, added dynamic doctest loading, and improved test marker definitions.

- **Refactor**
  - Modularized and improved import logic, logging, and internal helper functions for maintainability and robustness.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

1. **Error Handling Improvements**:
   - Refactored exception handling for better traceability and maintainability.
   - Introduced `ShutdownCommandReceived` exception for explicit shutdown command handling.

2. **Documentation and Templates**:
   - Expanded CI and environment configuration documentation, including new badges, usage examples, and copyright/license.
   - Improved docstrings, exception guides, and FAQ with clearer examples and error handling.

- Added new tests for Python versions, workflows for minimal acceptance, and doctests.
- Enhanced test suite structure, added dynamic doctest loading, and improved test marker definitions.

1. **Static Analysis and Linting**:
   - Introduced extensive static analysis and linting rule configurations for Python and YAML, enforcing documentation, naming conventions, code style, and GitHub Actions workflow patterns.
   - Added 20 new AST-grep rules, including 16 multicast-specific, 3 Python-specific, and 1 GHA-specific rules.

2. **Enhanced GitHub Actions**:
   - New workflows for **Flake8**, **Shellcheck**, **CD-PyPi**, and **Makefile Lint**.
   - Updates to existing workflows for CI, testing, and code quality checks.
   - Improved automation for packaging, testing, and deployment.

3. **Housekeeping and Configuration**:
   - Revised `.gitignore` to exclude more development artifacts.
   - Enhanced `Makefile` with new targets (`branding`, `purge-coverage-artifacts`), dependencies management, and defaults.

- Improved error handling, logging, and validation across core modules (`multicast`, `env`, `exceptions`, `recv`, `hear`, `send`, `skt`).
- Standardized string literals and exception variable naming for clarity and consistency.

- **Removed Legacy Scripts**: Tools like `tool_checkmake.sh` and `tool_shlock_helper.sh` were replaced with symbolic links or moved under `.github/tools/`.
- **Workflow Adjustments**: Deprecated YAML configurations were replaced or updated with streamlined and secure alternatives.

The changes introduced in the `v2.0.8` release (compared to `v2.0.7`) are extensive and cover multiple areas of the repository.

   - **Refactoring Exception Handling:**
     - Changed exception variable naming from generic (e.g., `err`, `impErr`) to `_cause` for better traceability.
     - Improved `raise from` usage to maintain the original exception context.
     - Enhanced clarity and maintainability of error handling across the codebase.

   **Impact:**
   - These changes improve debugging and maintainability by providing more informative and granular error contexts. They also align with best practices for exception handling.

   - **`ShutdownCommandReceived` Exception:**
     - Added a new exception class to handle shutdown commands explicitly.
   - **AST-Grep Rules for Code Standardization:**
     - Introduced `.ast-grep` rules to enforce patterns for `doStep` and `setupArgs` implementations.
     - Added utility files for Python-specific AST validation.

   **Impact:**
   - These features enhance robustness by formalizing error handling for shutdown scenarios.
   - Enforcing code patterns ensures consistency in the implementation of core functions.

   - Updated exception handling examples in `Exception_Guide.md`.
   - Revised FAQ and usage documentation to reflect changes in error handling and function signatures.
   - Incremented version references in `docs/conf.py`.

   **Impact:**
   - Documentation is now more accurate and user-friendly, helping developers understand new conventions and best practices.

   - **Improved Coverage for Doctests:**
     - Added configurations to include only `multicast/*` files in coverage reports for doctests.
   - **Additional Test Cases:**
     - Added tests for edge cases and regression.
   - **Refinements in Test Utilities:**
     - Enhanced logging and output formatting using `cioutput.py`.

   **Impact:**
   - Enhanced test coverage and detailed reporting improve test reliability and debugging efficiency.

   - **New PyPI Deployment Workflow:**
     - Introduced `CD-PyPi.yml` workflow for automated publishing of releases to PyPI.
   - **Updated CI Workflows:**
     - Refined CI configurations to align with Python version updates and GitHub Action improvements.

   **Impact:**
   - The new deployment pipeline automates release publishing, reducing manual overhead.
   - Updated CI workflows leverage the latest tools and methodologies, ensuring compatibility and reliability.

   - **Consistency Improvements:**
     - Unified function type annotations for better static analysis.
     - Refactored redundant or deprecated patterns.
   - **Tooling Updates:**
     - Introduced `.github/tools/cioutput.py` for consistent CI/CD output formatting.
     - Enhanced Makefile with branding and improved task definitions.

   **Impact:**
   - These changes enhance code quality, readability, and maintainability.

   - **Deprecations:**
     - Removed obsolete shell scripts and replaced them with symbolic links or consolidated versions.
   - **Branding:**
     - Added branding to the Makefile for a more professional touch.

   **Impact:**
   - Streamlining and branding improve the overall developer experience and project presentation.

The `v2.0.8` release introduces significant improvements in exception handling, testing, build automation, and code quality. These changes enhance robustness, maintainability, and developer productivity.

- **Branding**: Added branding to the Makefile for a more professional touch.
- **Technical Debt Reduction**: Refactoring legacy code patterns and standardizing coding practices.

This release represents the culmination of numerous smaller efforts, bringing together improvements from over 40 previous PRs and addressing over 40 distinct issues. It serves as a comprehensive preparation for future development, establishing strong foundations for the upcoming 2.1 version.

The PR includes significant improvements to all core modules of the `multicast` package:
- **hear.py**: Substantial refactoring (348 additions, 53 deletions)
- **env.py**: Enhanced environment handling (263 additions, 51 deletions)
- **exceptions.py**: Improved error handling (189 additions, 50 deletions)
- **recv.py**: Optimized receiving functionality (183 additions, 54 deletions)
- **__init__.py**: Updated package initialization (162 additions, 75 deletions)

A major focus on code quality through:
- **20 New AST-grep Rules**: Including 16 multicast-specific, 3 Python-specific, and 1 GHA-specific rules
- **Code Style Standardization**: Consistent string handling and import organization
- **Documentation Requirements**: New rules for enforcing docstrings and test documentation

Comprehensive improvements to build and test infrastructure:
- **11 Workflow Files Updated**: Including 490+ lines of additions
- **New Workflows**: Added dedicated workflows for Flake8, ShellCheck, and PyPI deployment
- **Testing Improvements**: Enhanced pytest configuration (23 lines added)
- **GitHub Actions**: Multiple action upgrades for security and functionality

Significant documentation enhancements:
- **API Documentation**: Improved docstrings across the codebase
- **Usage Guidelines**: Updated USAGE.md, Exception_Guide.md, and FAQ.md
- **CI Documentation**: Added comprehensive CI.md (49 additions)
- **Documentation Tools**: Major improvements to docs/utils.py (216 additions)

This PR demonstrates systematic progression through:
1. **Dependency Maintenance**: 12 dependency updates via Dependabot
2. **Technical Debt Reduction**: Refactoring legacy code patterns
3. **Standardization**: Implementation of consistent coding standards
4. **Automation**: Enhanced testing and CI/CD capabilities
5. **Documentation**: Comprehensive documentation updates reflecting all changes

1. **Code Quality**: Implementation of robust static analysis rules
2. **Developer Experience**: Improved documentation and error handling
3. **Reliability**: Enhanced testing infrastructure and coverage
4. **Maintainability**: Standardized coding patterns and documentation requirements
5. **Build Process**: Streamlined CI/CD workflows with improved caching

> This release represents the culmination of numerous smaller efforts, bringing together improvements from over 40 previous PRs and addressing over 40 distinct issues. It serves as a comprehensive preparation for future development, establishing strong foundations for the upcoming 2.1 version.
>
> These changes aim to enhance code quality, enforce best practices, and streamline CI/CD processes.

 - [x] Closes #134
 - [x] Closes #135
 - [x] Closes #151
 - [x] Closes #165
 - [x] Closes #171
 - [x] Closes #199
 - [x] Closes #202
 - [x] Closes #203
 - [x] Closes #204
 - [x] Closes #205
 - [x] Closes #206
 - [x] Closes #207
 - [x] Closes #210
 - [x] Closes #213
 - [x] Closes #215
 - [x] Closes #222
 - [x] Closes #223
 - [x] Closes #224
 - [x] Closes #275
 - [x] Closes #232
 - [x] Closes #233
 * Contributes to #335
 - [x] Closes #239
 - [x] Closes #241
 - [x] Closes #254
 - [x] Closes #255
 - [x] Closes #264
 - [x] Closes #265
 - [x] Closes #266
 - [x] Closes #271
 - [x] Closes #272
 - [x] Closes #273
 - [x] Closes #276
 - [x] Closes #278
 - [x] Closes #279
 - [x] Closes #284
 - [x] Closes #299
 - [x] Closes #317
 - [x] Closes #320
 - [x] Closes #326
 - [x] Closes #332
 * Contributes to #338
 - [x] Closes #357
 - [x] Closes #371
 - [x] Closes #365
 * Concludes [Pre-Version 2.1 Chores](https://github.com/reactive-firewall/multicast/milestone/13)

 * Includes and Supersedes #280
 * Includes and Supersedes #285
 * Supersedes #286
 * Includes and Supersedes #287
 * Includes and Supersedes #290
 * Includes and Supersedes #291
 * Includes and Supersedes #293
 * Includes and Supersedes #296
 * Includes and Supersedes #305
 * Includes and Supersedes #309
 * Includes and Supersedes #312
 * Includes and Supersedes #318
 * Includes and Supersedes #321
 * Includes and Supersedes #322
 * Includes and Supersedes #323
 * Includes and Supersedes #325
 * Includes and Supersedes #327
 * Includes and Supersedes #328
 * Includes and Supersedes #329
 * Includes and Supersedes #330
 * Includes and Supersedes #334
 * Includes and Supersedes #339
 * Includes and Supersedes #340
 * Includes and Supersedes #341
 * Includes and Supersedes #342
 * Includes and Supersedes #343
 * Includes and Supersedes #344
 * Includes and Supersedes #345
 * Includes and Supersedes #346
 * Includes and Supersedes #347
 * Includes and Supersedes #348
 * Includes and Supersedes #349
 * Includes and Supersedes #351
 * Includes and Supersedes #354
 * Includes and Supersedes #359
 * Includes and Supersedes #361
 * Includes and Supersedes #373
 * Includes and Supersedes #379
 * Includes and Supersedes #384
 * Includes and Supersedes #385
 * Includes and Supersedes #388
 * Includes and Supersedes #389
 * Closes #390
@reactive-firewall reactive-firewall moved this from Done to Archive Backlog in Multicast Project May 4, 2025
reactive-firewall added a commit that referenced this pull request May 16, 2025
Changes in file .github/workflows/CI-DOCS.yml:
 * similar changes for documentation generation in CI/CD

Changes in file .github/workflows/Tests.yml:
 * related work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous Integration Tooling Configs Improvements or additions to configuration enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

v2.0.x Chore - Improve CI by refactoring workaround upgrade action
1 participant