-
Notifications
You must be signed in to change notification settings - Fork 2
v2.1.x Chore - Update license URLs #335
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
Comments
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed:
Length of output: 5254 🏁 Script executed:
Length of output: 1693 @reactive-firewall I've verified the URLs you suggested, and here are my findings:
Based on these tests, I recommend using the format I also found that setup.py currently references ✏️ Learnings added
🧠 Learnings used
|
also let's figure out how to consolidate the meta data: [project]
license-files = ["LICEN[CS]E*"]
license = "MIT" |
Changes in file Makefile: * related work Changes in file setup.cfg: * refactored for PEP-639 * related work Changes in file setup.py: * refactored for PEP-639 * related work
@coderabbitai, let's settle on the URL: |
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain@reactive-firewall I've verified the URL I found that:
This raw URL format is an excellent choice for package metadata purposes, including the TOML configuration you mentioned earlier. 🏁 Script executed:
Length of output: 2739 @reactive-firewall I've verified that the URL I found these references to the license URL in your codebase that would need updating:
This raw URL format with HEAD reference is an excellent choice for ensuring high availability and consistent access to the current license document. ✏️ Learnings added
🧠 Learnings used
|
…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
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain@reactive-firewall I'll verify this new URL format for you. Let me test the tree URL structure with HEAD reference: 🏁 Script executed:
Length of output: 2455 @reactive-firewall I've tested your suggested URL format, and here are the results: The URL In comparison, Key findings:
Recommendation: I'd suggest using
This combines the best of both worlds - the HEAD reference you want with direct access to the rendered content. ✏️ Learnings added
🧠 Learnings used
|
Changes in file .github/tools/cioutput.py: * updated license url Changes in file LICENSE.md: * updated license urls * minor license updates for accuracy Changes in file Makefile: * updated license url Changes in file README.md: * updated license urls Changes in file docs/CI.md: * updated license url Changes in file docs/Environment_Configuration.md: * updated license urls Changes in file docs/Exception_Guide.md: * updated license urls Changes in file docs/FAQ.md: * updated license url Changes in file docs/Makefile: * updated license url Changes in file docs/Testing.md: * updated license urls Changes in file docs/USAGE.md: * updated license url Changes in file docs/index.md: * updated license url Changes in file docs/requirements.txt: * updated license urls Changes in file docs/toc.md: * updated license url Changes in file docs/utils.py: * updated license url Changes in file multicast/__init__.py: * updated license url Changes in file multicast/__main__.py: * updated license url Changes in file multicast/env.py: * updated license url Changes in file multicast/exceptions.py: * updated license url Changes in file multicast/hear.py: * updated license url Changes in file multicast/recv.py: * updated license url Changes in file multicast/send.py: * updated license url Changes in file multicast/skt.py: * updated license url Changes in file requirements.txt: * updated license urls Changes in file tests/MulticastUDPClient.py: * updated license url Changes in file tests/__init__.py: * updated license url Changes in file tests/context.py: * updated license url Changes in file tests/profiling.py: * updated license url Changes in file tests/requirements.txt: * updated license url Changes in file tests/run_selective.py: * updated license url Changes in file tests/test_basic.py: * updated license url Changes in file tests/test_build.py: * updated license url Changes in file tests/test_deps.py: * updated license url Changes in file tests/test_exceptions.py: * updated license url Changes in file tests/test_extra.py: * updated license url Changes in file tests/test_fuzz.py: * updated license url Changes in file tests/test_hear_cleanup.py: * updated license url Changes in file tests/test_hear_data_processing.py: * updated license url Changes in file tests/test_hear_keyboard_interrupt.py: * updated license url Changes in file tests/test_hear_server.py: * updated license url Changes in file tests/test_hear_server_activate.py: * updated license url Changes in file tests/test_manifest.py: * updated license url Changes in file tests/test_recv.py: * updated license url Changes in file tests/test_usage.py: * updated license url
@coderabbitai FYI: I've pushed a fix in commit b5af90d, take a quick look at the new URLs and check for any 4xx errors |
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed:
Length of output: 63254 @reactive-firewall I've identified several 4xx errors in your commit! The main issue is that many URLs are being truncated during the regex extraction, but I can see the actual problems: Critical Issues Found:
What Needs Fixing:Based on what I can see in the commit, you should double-check that:
Let me run a more precise extraction to get the exact URLs that need fixing. 🏁 Script executed:
Length of output: 7645 @reactive-firewall Great news! The URL verification shows that your main multicast license URLs are working correctly. The issues I found are with external repository references: Status Summary:✅ Working URLs:
❌ 4xx Errors Found:
The main issue is that these external repository license URLs might need:
Let me check what the correct URLs should be for those external repositories. 🏁 Script executed:
Length of output: 31181 @reactive-firewall Perfect! I've found the exact 4xx errors and their solutions. Your main multicast URLs are working correctly! 4xx Errors Found & Solutions:❌ External Repository License URLs Need
|
Background
This issue was created based on a discussion in PR #330.
Problem
The current license URLs in the project (example:
https://www.github.com/reactive-firewall/multicast/LICENSE.md
) return HTTP 301 redirects rather than directly serving the license file. This might affect reliability when accessing the license information.Proposed Solution
Update all license URLs in the project to use direct links to the raw license content (for example, using URLs from raw.githubusercontent.com).
Implementation Note
Since this change would affect many files across the project, it should be implemented on a dedicated branch separate from other changes.
cc: @reactive-firewall
The text was updated successfully, but these errors were encountered: