Skip to content

Releases: reactive-firewall-org/multicast

v2.0.9a6

10 Jun 01:03
v2.0.9a6
88e9ec8
Compare
Choose a tag to compare
v2.0.9a6 Pre-release
Pre-release

What Changed between v2.0.9a6...v2.0.9a5

Details
Kinds of changes UPDATE, STYLE, SECURITY, PATCH, MERGE, LICENSE, HOTFIX, FEATURE, DOCUMENTATION, CONFIG
Impacted Issues #155, #274, #314, #335, #413, #425, #426, #427, #429, #433, #434
New Files docs/INSTALL.md, docs/SECURITY.md, generate_changelog.sh, .github/workflows/CI-CHGLOG.yml

Changes in file docs/CI.md:

  • updated Triggering CI/CD with CI-CHGLOG
  • updated theme for diagrams for darkmode
  • updated license url
  • updated Key integrations section with CI-CHGLOG
  • updated 'How on-workflow_run triggers propagate' section with CI-CHGLOG
  • updated CI/CD documentation to mention new GHA CI-CHGLOG
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • fixed an overlooked typo

Changes in file docs/conf.py:

  • version bump to v2.0.9a6
  • "selectively" fixed a typo
  • Preserved the existing tab indentation as required by CEP-8 for consistancy
  • possible improvement for mermaid theme
  • other minor changes
  • minor debugging of new doctests
  • fixed so linkcode_resolve doctests now pass
  • fix for regression caused by last set of changes to docstrings
  • enabled mermaid zoom by default
  • configure sphinxcontrib-mermaid plugin
  • added some docstrings to linkcode_resolve

Changes in file docs/Environment_Configuration.md:

  • updated license urls
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file docs/Exception_Guide.md:

  • updated license urls
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file docs/FAQ.md:

  • various improvements
  • updated license url
  • style fixes
  • simplified code examples some more
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • multiple minor rewordings
  • added list of some key project policies for contributors
  • added answer about use of logging handlers

Changes in file docs/index.md:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Additions with file docs/INSTALL.md:

  • initial draft of INSTALL guide

Changes in file docs/Makefile:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file docs/requirements.txt:

  • updated license urls
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • add documentaion dep sphinxcontrib-mermaid (MIT/BSD like license)

Changes in file docs/SECURITY.md:
Additions with file docs/SECURITY.md:

  • style fixes for very long lines
  • minimal Draft for SECURITY

Changes in file docs/Testing.md:

  • updated theme for diagrams for darkmode
  • updated license urls
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file docs/toc.md:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file docs/USAGE.md:

  • updated license url
  • style fixes
  • simplified some code examples even more
  • related style fixes
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • more white-space style fixes
  • minor reworking of header style
  • minor reworking of header orginization

Changes in file docs/utils.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • improved to normalize netloc and path components of URLs
  • improved inline comment to mention "normalize" "to prevent homograph attacks"
  • hardened slugify_header to also normalize unicode
  • corrected misleading type hints/annotations to use the better 'frozenset' type for whitelisting

Changes in file generate_changelog.sh:
Additions with file generate_changelog.sh:

  • style improvements
  • refactored for security hardening
  • now generates new changelog from scratch if given no options
  • now extracts impacted issues and kinds of changes as well as per-file changes
  • minor last-minute style improvements
  • major performance improvements about 25 times faster now
  • initial implementation
  • improved stability in pre-flight checks
  • improved initial formatting a bit
  • improved comments
  • imporved details table
  • hardened recursive calls
  • added validation of git range input
  • added some caching while re-generationg
  • added optional verbose mode
  • added link to full changelog view on github

Changes in file .github/actions/check-control/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/actions/checkout-and-rebuild/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/actions/fetch-test-reporter/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/actions/purge-test-reporter/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/actions/run-minimal-acceptance-tests/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/actions/setup-py-reqs/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/actions/test-reporter-upload/action.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/CONTRIBUTING.md:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/tools/cioutput.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/workflows/CD-PyPi.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/workflows/CI-BUILD.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/workflows/CI-CHGLOG.yml:
Additions with file .github/workflows/CI-CHGLOG.yml:

  • refactored for new GitHub workflow job naming convention
  • Oops, almost missed an ID refactor
  • Initial implementation of new CHANGELOG generating action in CI/CD
  • fixed some minor overlooked mistakes found in review
  • fixed a variable name
  • add clear "contents: read" to permissions for checkout action

Changes in file .github/workflows/CI-DOCS.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/workflows/CI-MATs.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file .github/workflows/Tests.yml:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • minor hotfix for coverage testing to use bash shell

Changes in file LICENSE.md:

  • updated license urls
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • minor rewording
  • minor license updates for accuracy

Changes in file Logo.svg:

  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file Makefile:
Changes in file docs/Makefile:

  • updated license url
  • removed recursive txt include for builds
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/env.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/exceptions.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/hear.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/init.py:

  • version bump to v2.0.9a6
  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/main.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/recv.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/send.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file multicast/skt.py:

  • updated license url
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file pyproject.toml:

  • version bump to v2.0.9a6
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"

Changes in file README.md:

  • updated license urls
  • refactored "reactive-firewall/multicast" to "reactive-firewall-org/multicast"
  • fixed an overlooked typo
  • added missing comma

Changes in file tests/requirements.txt:
Changes in file requirements.txt:
Changes in...

Read more

v2.0.9a5

29 May 22:28
v2.0.9a5
6480ec2
Compare
Choose a tag to compare
v2.0.9a5 Pre-release
Pre-release

Alpha 5 for Version 2.0.9 (v2.0.9a5) Patch Notes

Impacted GHI

  • followed up on #134
  • Contributed to #155

Included and Superseded PRs

  • Includes and Supersedes #392
  • Includes and Supersedes #395
  • Includes and Supersedes #396
  • Includes and Supersedes #397
  • Includes and Supersedes #402
  • Includes and Supersedes #404
  • Includes and Supersedes #405
  • Includes and Supersedes #406
  • Includes and Supersedes #407
  • Includes and Supersedes #409
  • Includes and Supersedes #414
  • Includes and Supersedes #415
  • Includes and Supersedes #416
  • Includes and Supersedes #418
  • Includes and Supersedes #419
  • Includes and Supersedes #420
  • Includes and Supersedes #422
  • Includes and Supersedes #423
  • Includes and Supersedes #424

What's Changed

Changes in file .coderabbit.yaml:

  • related work (added missing commas)
  • no functional changes

Changes in file .deepsource.toml:

  • removed setup.py from dependency sources

Changes in file docs/CI.md:

  • A few more style changes to cleanup the document
  • added new triggering CI/CD section with initial notes
  • added some more details about CI/CD
  • attempt to wrap long lines with long link 🤷
  • fixed some typos
  • initial draft of documentation for CI/CD acceptance testing components
  • minor changes for grammar and consistency
  • remove testing documentation from CI documentation
  • removed def quote (only one def is inconsistent)
  • restyled numbering
  • reworded several parts for accuracy
  • reworked mermaid diagrams many times
  • Switched License badge
  • updated CI docs with notes about linting in CI

Changes in file docs/conf.py:

  • bumped version to 2.0.9 series
  • related work

Changes in file docs/Environment_Configuration.md:

  • Switched License badge

Changes in file docs/Exception_Guide.md:

  • Switched License badge

Changes in file docs/FAQ.md:

  • Switched License badge
  • a couple of minor changes

Changes in file docs/index.md:

  • Switched License badge

Changes in file docs/requirements.txt:

  • version bumps
  • added notes about various licenses
  • remove duplicates
  • related comments

Additions with file docs/Testing.md:

  • re-drafted previous documentation about project testing
  • added "Dependencies NOT included." for clarity
  • improved documentation regarding project testing
  • Improved markdown style

Changes in file docs/toc.md:

  • Switched License badge
  • added new Testing link to ToC

Changes in file docs/USAGE.md:

  • Switched License badge
  • updated usage docs for new '--pipe' option

Changes in file docs/utils.py:

  • added gists to url list
  • related work

Changes in file .gitattributes:

  • overhauled with a more modern template

Additions with file .github/actions/check-control/action.yml:

  • ✨ New WIP GHA template to better control expected checks from CI/CD
  • use single quotes for possible markdown content
  • related work

Changes in file .github/actions/checkout-and-rebuild/action.yml:

  • added logic to handle windows pip upgrade workaround
  • moved summary to re-usable-action
  • reformat build details so they can be hidden unless needed
  • updated artifact pattern to align with recent changes to CI-MATs.yml
  • use env for values instead of API

Additions with file .github/actions/fetch-test-reporter/action.yml:

  • implemented fetch action of GHI #130
  • added support for coveralls-token input

Additions with file .github/actions/run-minimal-acceptance-tests/action.yml:

  • Initial implementation of template action to run more detailed MATs in CI/CD
  • fix evaluation of MAT success and failure from inverted to intended.
  • improved outputs a bit
  • minor improvement for coverage reports
  • minor performance tweaks (eg. printf is faster than echo)
  • improved outputs a bit
  • related work
  • reworked logic for accepting input sha

Additions with file .github/actions/setup-py-reqs/action.yml:

  • ✨ New action for handling python pip installs in CI/CD
  • cleaned up a bunch and added comments
  • related work

Additions with file .github/actions/test-reporter-upload/action.yml:

  • New GHA action template to handle uploading coverage results to various services

Additions with file .github/AI_USAGE_POLICY.md:

  • Documented initial draft of AI policy to communicate GHI #367 impact on project
  • new policy for AI from #367

Changes in file .github/AI_USAGE_POLICY.md:

  • added missing 'e' to use noun form
  • added missing commas
  • added note to better clearify 4.3.A
  • changed the indentation
  • cleanup for merging
  • fixed large PR threshold at more than 99 changed files for consistancy
  • fixed line length
  • fixed use of "e.g."
  • improvements based on review (- WIP PR #415 -)
  • minor style fix
  • new section for defining acronyms
  • style fixes

Changes in file .github/CONTRIBUTING.md:

  • reworded the review checklist
  • improved contributors documentation

Changes in file .github/dependabot.yml:

  • removed pytest-checkdocs which can't handle GFM markdown

Changes in file .github/labeler.yml:

  • removed setup from "multicast" label
  • added setup.py to "invalid" label

Changes in file .github/tools/checkmake.bash:

  • related work (reorganized CI/CD tools)

Changes in file .github/tools/cioutput.py:

  • removed layer of nesting argparse groups

Additions with file .github/tools/fetch-test-reporter:

  • added submodule for implementing GHI #130

Changes in file .github/tools/shlock_helper.sh:

  • related work

Additions with file .github/workflows/CD-PyPi.yml:

  • ✨ added new action for CD

Changes in file .github/workflows/CI-BUILD.yml:

  • ✨ added attestation details to build summary
  • added default token for gh api usage
  • added logic to post commit comment with build details
  • added more build details to the BUILD-info.txt artifact
  • added some debug code to failure cases
  • comment via action if build success
  • implemented uploading build info file for triggered builds
  • improved readability of logs
  • invert role of summary and buffer file
  • lays groundwork for GHI #338
  • make path to buffer file absolute
  • additional outputs
  • minor refactor for quoting
  • minor tweak for build-info artifact
  • minor update to tie license to build with attestation in CI/CD
  • move path to env
  • moved commit build details to build action
  • Refactored to allow summary comment with updated permissions
  • related work
  • version bump for build-attesting
  • added attest action for successful builds
    • limited to only attest the build per sha, not the built packages every time
    • limited to only attest build packages per tag, for protected tags pushed

Changes in file .github/workflows/CI-DOCS.yml:

  • changed CI environment and added path filtering
  • similar changes for documentation generation in CI/CD
  • fixed a few missed values
  • related work

Changes in file .github/workflows/CI-MATs.yml:

  • updated check_build to fetch the build info file
  • added cleanup prototype after fetching build info
  • added default token for gh api usage
  • added job to comment with summary on relevant commit
  • added logic to load the build-info artifact
  • added logic to post commit comment with MATs details
  • separated status and summary jobs (summaries will be built in new template action)
  • various fixes from prototyping
  • improved cleanup by moving the artifact into place
  • integrated new template GHA to control checks better
  • minor refactor to format
  • minor refactor for quoting
  • related work
  • removed debug check for fetched build-info
  • separated status and summary jobs (summaries will be built in new template action)
  • updated to use new generated summaries and concatenate them

Changes in file .github/workflows/codeql-analysis.yml:

  • code-ql version bumps in CI

Changes in file .github/workflows/makefile-lint.yml:

  • version bumps for CI
  • implemented fix to use new variable configured in GitHub Actions dashboard (undocumented)
  • fixes applied for CI

Changes in file .github/workflows/scorecard.yml:

  • various version bumps for CI

Changes in file .github/workflows/shellcheck.yml:

  • version bump for CI

Changes in file .github/workflows/Tests.yml:

  • added initial coverage summary comment job
  • improved existing summary reporting for CI/CD tests
  • expanded with new summary reporting for CI/CD tests
  • implement downloading and loading info from MATs
  • added logic to get triggering workflow id
  • added random uuid logic for windows edge-case
  • codecov/codecov-action version bumps in CI
  • ensure extra CI/CD tools are available in CI/CD for testing
  • expand env values with trigger artifact info
  • updated most jobs to need the check_mats job for build_info values
  • various fixes for inputs to use triggering commit
  • various fixes for style inconsistencies
  • improved output
  • refactor for, and integrated, new GHA templates
  • improvements from integrating #130
  • implemented new job to trigger Coveralls API to signal when reporting completes for a build-id
  • integrated and improved check control
  • improvements from #403
  • related work
  • removed deprecated "EXTRAS-FOR-SETUP" from config from PEP-621 support
  • resolved conflicts between GHIs #130 and #403

Changes in file .gitignore:

  • related work for PEP-621 support

Additions with file .gitmodules:

  • added submodule fo...
Read more

Alpha 4 Release Candidate for Version 2.0.9

28 May 20:39
42e6490
Compare
Choose a tag to compare

Known flaws.

Warning

This commit has known flaws. Each commit is subject to minimal acceptance testing, and then select commits are subject to extra testing to evaluate release candidates; This Release Candidate has been deemed not ready for release.

Security Pre-Release

Full Changelog: v2.0.9-dev...v2.0.9a4

Alpha 3 Release Candidate for Version 2.0.9 - YANK

28 May 20:28
c5c7c7d
Compare
Choose a tag to compare

Known flaws.

Warning

This commit has known flaws. Each commit is subject to minimal acceptance testing, and then select commits are subject to extra testing to evaluate release candidates; This Candidate has been deemed not ready for release.

What's Changed

  • [FEATURE] Initial implementation of the pipe option (- WIP #216 -) by @reactive-firewall in #392
  • [UPDATE] (deps): Bump github/codeql-action from 3.28.16 to 3.28.17 in /.github/workflows by @dependabot in #395
  • [UPDATE] (deps): Bump reactive-firewall/shellcheck-scan from 1.1 to 1.2 in /.github/workflows by @dependabot in #396
  • [HOTFIX] (deps-dev): Bump markdownlint from 0.37.4 to 0.38.0 in the development-dependencies group by @dependabot in #397
  • Round two of CI/CD Improvements by @reactive-firewall in #402
  • [HOTFIX] Fix for CI/CD license checks by @reactive-firewall in #404

Full Changelog: v2.0.8...v2.0.9a3

v2.0.8

04 May 05:39
v2.0.8
28b89ea
Compare
Choose a tag to compare

Release Notes for Version 2.0.8

This release candidate 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.


Patch Notes

📊 Metrics Summary

  • 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)

Summary

  • New Features

    • Introduced advanced static analysis and linting rules for Python and YAML, including comprehensive docstring, test, and GitHub Actions workflow validation.
    • Added new GitHub Actions workflows for shell script and Makefile linting, Flake8 checks, and enhanced CI/CD for builds, tests, and PyPI deployment.
    • Implemented a robust CI/CD output tool for improved logging and GitHub Actions integration.
    • Added new utility scripts for lock file management and Makefile checks.
  • Improvements

    • Enhanced logging, error handling, and type annotations across core modules and test suites.
    • Standardized and expanded configuration files for pytest, coverage, and documentation.
    • Improved code style, string formatting, and exception handling throughout the codebase.
    • Updated Makefile and test infrastructure for greater flexibility, modularity, and cleanup.
  • Bug Fixes

    • Fixed quoting, shellcheck, and variable handling in CI scripts and test utilities.
    • Corrected and clarified exception chaining and resource cleanup in code examples and documentation.
  • Documentation

    • Extended and reorganized documentation with new badges, configuration instructions, and improved code examples.
    • Improved Sphinx and markdown configuration for better documentation generation and reference linking.
  • Chores

    • Updated dependencies and tool versions, including Python, Flake8, markdownlint, and GitHub Actions.
    • Refined labeling, issue, and pull request templates for better workflow management.
  • Style

    • Unified string literal usage, code formatting, and naming conventions for consistency and readability.
  • Tests

    • Refactored test suite organization, added dynamic doctest loading, and expanded test markers and categories.

🚀 New Features and Enhancements

  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.

Testing and Quality Improvements

  • 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.

🩹 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.

Deprecations and Replacements

  • 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.

Key Changes and Impacts

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

🗝️ Key Impact Details

1. Error Handling Improvements

  • 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.

2. New Features

  • 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.

3. Documentation Updates

  • 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.

4. Testing Enhancements

  • 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.

5. Build and Deployment

  • 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.

6. Code Style and Linting

  • 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.

7. Miscellaneous

  • 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.

Summary

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.

🧹 Miscellaneous

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

Conclusion

This release candidate 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.

🔍 Change Analysis

Core Functionality Enhancements

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)

Quality & Standards Implementation

A major focus on code quality through:

  • **20 ...
Read more

v2.0.8a0

04 May 05:27
v2.0.8-alpha
3e3042b
Compare
Choose a tag to compare
v2.0.8a0 Pre-release
Pre-release

What's Changed

Full Changelog: v2.0.7...v2.0.8-alpha

v2.0.7 - (YANK)

04 May 05:24
v2.0.7
3652680
Compare
Choose a tag to compare
v2.0.7 - (YANK) Pre-release
Pre-release

What's Changed

  • Tweaked the comments in the Makefile by @reactive-firewall in #374
  • [UPDATE] (deps): Bump ossf/scorecard-action from 405dced65a1dcc6bc335115002f0690b1f1e49bb to de386ed459e2f85111697f50fe076d0ea617a32f in /.github/workflows by @dependabot in #376

Full Changelog: v2.0.6-post1...v2.0.7

v2.0.6-post1

23 Apr 21:35
v2.0.6-post1
6b1d690
Compare
Choose a tag to compare
v2.0.6-post1 Pre-release
Pre-release

HOTFIX Notes

This HOTFIX is an important update addressing both documentation and debug logging for developers.

What's Changed

  • Enhanced Logging Slightly (debug & performance focused)
  • Stages improved testing
  • Updated various CI/CD dependencies (NON-User facing)
  • Implemented HOTFIX for the join step's empty groups edge-case logic
  • Minor Improvements for FAQ
  • Add URL and intersphinx mapping sanitization utilities to docs config

Full Changelog: v2.0.6...v2.0.6-post1

v2.0.6 - (YANK)

23 Apr 21:23
v2.0.6
9219f69
Compare
Choose a tag to compare
v2.0.6 - (YANK) Pre-release
Pre-release

Patch Notes v2.0.6

Version v2.0.6 is mostly a custodial release, focused on bug-fixes and overall code quality.

Overview

Version v2.0.6 represents a substantial quality enhancement release for the multicast module, implementing version 2.0.6 with 1316 additions and 96 deletions across 27 files. This version consolidates work from multiple development efforts (superseding PRs #348, #349, #350, #354, #359) and addresses 10 specific issues. This release focuses on four major areas: configurable buffer sizes, enhanced logging capabilities, improved security in testing contexts, and expanded test coverage.

Key Implementations

1. Configurable Buffer Size Feature

A new environment-configurable buffer size system has been implemented, replacing hardcoded buffer values with a dynamic configuration:

  • Introduced _MCAST_DEFAULT_BUFFER_SIZE (default: 1316) in multicast/__init__.py
  • Added validation through new functions in multicast/env.py:
    • validate_buffer_size(): Ensures buffer sizes meet RFC constraints
    • load_buffer_size(): Retrieves and validates the buffer size from environment variables
  • Updated both Send and Receive implementations to honor this configurable buffer size

This enhancement improves flexibility while maintaining standards compliance, closing issue #264.

2. Enhanced Logging System

A comprehensive logging framework has been implemented throughout the codebase:

  • Added the logging module to all core files
  • Established module-specific loggers for granular control
  • Refactored string formatting to use lazy evaluation for better performance
  • Added strategic log points to facilitate debugging and operational visibility
  • Updated configuration in .coveragerc to properly handle debug-conditional code

This work closes issue #233, significantly improving the module's observability.

3. Security Enhancements

Security has been strengthened, particularly in testing contexts:

  • Added taint_command_args() function to sanitize command arguments and prevent injection attacks
  • Implemented whitelist validation for command execution
  • Added type hints to improve code clarity and safety
  • Enhanced error handling for subprocess operations

These security improvements close issues #249 and address concerns in #134 and #276.

4. Testing Infrastructure Improvements

Testing capabilities have been substantially expanded:

  • Added a new test file tests/test_recv.py with comprehensive test coverage for the receiver functionality
  • Enhanced existing tests in tests/test_hear_data_processing.py to validate empty data handling
  • Improved mock implementations to ensure proper testing of internal methods
  • Added regression tests for typos in tests/check_spelling
  • Restructured test cleanup in the Makefile for better organization

These testing enhancements close issues #241, #273, and #357.

5. Additional Improvements

  • Version Updates: Bumped version to 2.0.6 across configuration files (setup.cfg, docs/conf.py, multicast/__init__.py)
  • Dependency Updates: Updated GitHub Actions dependencies (CodeQL and Scorecard actions)
  • Style Improvements: Fixed various linting issues (PYL-W1203, PYL-C0201)
  • AST Rules: Added new AST-grep rules for trailing commas and argument formatting
  • Documentation: Enhanced docstrings and comments throughout the codebase

Technical Impact

The PR introduces significant technical improvements while maintaining backward compatibility:

  1. Modularity: Separated buffer size configuration from core logic
  2. Standardization: Ensured buffer sizes comply with RFC specifications
  3. Observability: Implemented consistent logging patterns across modules
  4. Security: Hardened test command execution against potential injection
  5. Quality: Expanded test coverage for edge cases and error conditions

Development Context

Version v2.0.6 represents the culmination of work across multiple branches and issues, including:

  • Contributions to long-term effort #134 (type hints)
  • Implementation of logging framework from #233
  • Security hardening from #249
  • Buffer size configurability from #264
  • Test improvements from #241, #357

The commits show an iterative development approach, with multiple review-driven refinements and collaborative improvements, including contributions from CodeRabbit AI.

Conclusion

Version v2.0.6 delivers a substantial quality enhancement to the multicast module through its comprehensive approach to addressing multiple aspects of the codebase simultaneously. The configurable buffer sizes, enhanced logging, security improvements, and expanded testing collectively strengthen the module's reliability, maintainability, and security posture.

Full Changelog: v2.0.5...v2.0.6

Known flaws.

Warning

This commit has known flaws. Each commit is subject to minimal acceptance testing, and then select commits are subject to extra testing to evaluate release candidates; This commit has been deemed not ready for release.

v2.0.5 - (YANK)

19 Mar 22:20
v2.0.5
d74f6bf
Compare
Choose a tag to compare
v2.0.5 - (YANK) Pre-release
Pre-release

Patch Notes

This Version v2.0.5 is mostly a custodial release with little user-facing changes.

🔍 Overview

This substantial PR represents a comprehensive overhaul of the testing infrastructure in the multicast project, introducing significant improvements in test organization, code quality, security, and CI workflows. The changes address numerous long-standing issues and incorporate work from multiple previously separate PRs, creating a cohesive approach to testing and quality assurance.

🧪 Testing Framework Improvements

Test Organization and Selection

  • Enhanced Test Configuration: Introduced pytest.ini with specialized markers for different test categories (MAT, component, documentation, etc.)
  • Selective Test Execution: Added tests/run_selective.py to allow running specific test groups and categories
  • Test Categorization: Applied meta tags to 13 test files, enabling more granular selection of tests
  • Makefile Updates: Restructured testing targets, allowing for more selective testing with targets like test-mat, test-extra, and test-fuzzing

Test Quality and Coverage

  • Security Validation: Implemented validateCommandArgs function to prevent command injection vulnerabilities (CWE-20)
  • Type Annotations: Added comprehensive type hints to improve code clarity in test files
  • Helper Functions: Refactored duplicate code into helper functions (e.g., _validate_help_output in test_usage.py)
  • Test Fixtures: Improved test setup and teardown methods
  • Exception Testing: Enhanced testing of exception handling scenarios

🛡️ Code Quality and Security Enhancements

AST-grep Rules

  • Documentation Rules: Created multiple rules to enforce consistent docstring formats and content
  • Testing Rules: Implemented rules for test class naming, test method organization, and test cleanup
  • Code Simplification: Added rules to identify and simplify unnecessarily complex code patterns
  • Python Modernization: Rules to simplify Unicode string prefixes and string cast operations

Security Improvements

  • Command Validation: The validateCommandArgs function prevents null byte injection in command arguments
def validateCommandArgs(args: list) -> None:
    Validates command arguments to ensure they do not contain null characters.
    if (args is None) or (args == [None]) or (len(args) <= 0):
        raise ValueError("[CWE-1286] args must be an array of positional arguments") from None
    for arg in args:
        if isinstance(arg, str) and "\x00" in arg:
            raise ValueError("[CWE-20] Null characters are not allowed in command arguments.")
  • Tool Hardening: Enhanced parameter validation and error handling in CI tools
  • Exception Validation: Added validation function for exit codes in exceptions

Code Style Standardization

  • String Formatting: Replaced triple-quoted strings with single-quoted strings throughout the codebase
  • Import Simplification: Refactored complex import patterns for better maintainability
  • Coding Conventions: Enforced project-specific coding standards via static analysis

🔄 Continuous Integration Updates

  • Dynamic Python Versions: Introduced repository variables for Python versions (PYTHON_DEFAULT, PYTHON_OLD_MIN, etc.)
  • Workflow Enhancements: Added descriptions, dynamic run names, and improved output formatting
  • Dependencies Caching: Implemented caching for Python dependencies to speed up workflows
  • Security Fixes: Fixed shell script quoting in GitHub Actions workflows
  • Documentation: Added detailed CI configuration documentation in docs/CI.md

📝 Documentation and Style Improvements

  • Configuration Documentation: Added explanations for CI variables and their usage
  • Git Reference Validation: Enhanced validation of Git references in documentation
  • LanguageTool Configuration: Improved grammar and style checking with additional rules
  • Badges: Added new badges for PR reviews, issue resolution, and maintenance metrics
  • Copyright Notices: Updated and standardized copyright information

🌟 Conclusion

Version v2.0.5 represents a significant milestone in the evolution of the multicast project's quality assurance infrastructure. By consolidating multiple improvements into a cohesive framework, it establishes a foundation for more maintainable, secure, and well-tested code. The changes span testing, security, CI, documentation, and code style - touching nearly every aspect of the development lifecycle.

The comprehensive nature of this version highlights the project's commitment to quality and provides clear guidelines for future contributions through the established patterns and tools. This work demonstrates the value of addressing technical debt systematically and laying a strong foundation for future development.

Full Changelog: v2.0.4...v2.0.5


Known flaws.

Warning

This commit has known flaws. Each commit is subject to minimal acceptance testing, and then select commits are subject to extra testing to evaluate release candidates; This version has been deemed not ready for release.