Repository navigation
[Snyk] Fix for 2 vulnerabilities - #3
Conversation
The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-14896210 - https://snyk.io/vuln/SNYK-PYTHON-WERKZEUG-14908843
|
Important Review skippedIgnore keyword(s) in the title. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
CI Feedback 🧐A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
…eal repo integration (#20) * feat: implement Phase 2 - additional parsers, solvers, analyzers, and utilities Phase 2 implementation includes: ## New Parsers (3 added) - **PacmanParser**: Parser for Pacman (Arch Linux) packages - Supports pacman -Q, pacman -Ss, pacman -Si formats - **DNFParser**: Parser for DNF (Fedora/RHEL) packages - Supports dnf list, dnf info, dnf search formats - **BrewParser**: Parser for Homebrew (macOS) packages - Supports brew list, brew info, brew search formats ## New Solvers (2 added) - **MaxSatSolver**: SAT-based solver using MaxSAT - Uses python-sat library - Supports weighted optimization - **MiniSatSolver**: SAT-based solver using MiniSat - Uses python-sat library - Supports weighted optimization ## New Analyzers (1 added) - **ResultAnalyzer**: Analyzes maximization results - Compares installed vs proposed packages - Generates compatibility matrices - Provides dependency analysis - Supports solver comparison ## New Utilities - **CacheManager**: Caching system for results - File-based and in-memory caching - TTL support - Cache decorator - **BenchmarkRunner**: Performance testing framework - Generates test packages - Runs benchmarks across solvers - Exports reports (JSON, CSV) ## Updates - Updated PackageMaximizer to support new components - Updated solver registry with MaxSAT and MiniSat - Updated parser registry with Pacman, DNF, Brew - Added analyzer registry - Version bump: 0.2.0 -> 0.3.0 ## Tests - Added 60+ new tests for all new components - Total tests: 114 (all passing) Closes #2 Co-authored-by: dominicusin <dominicusin@users.noreply.github.com> * feat: implement Phase 3 - version constraints, enhanced solver, and real repo integration Phase 3 implementation includes: ## New Core Features - **VersionConstraint**: Support for version comparison operators - ==, !=, >, >=, <, <=, ~ (compatible version) - Parses semantic versions (1.2.3, 2.0.0, etc.) - Handles version ranges - **DependencyConstraint**: Version-aware dependency checking - **ConflictConstraint**: Version-aware conflict detection - **ConstraintParser**: Parses constraint strings into objects - Supports complex dependency specifications - Handles version constraints in dependencies and conflicts ## New Solver - **EnhancedGreedySolver**: Improved greedy algorithm - Version constraint awareness - Smart dependency handling - Priority-based package selection - Configurable conflict resolution (skip/remove) - Weight support ## New Integration - **RealRepoIntegration**: Integration with real package managers - APT (Debian/Ubuntu) - Pacman (Arch Linux) - DNF (Fedora/RHEL/CentOS) - Brew (macOS) - Methods: - get_installed_packages() - search_packages() - get_package_info() - check_package_installed() - get_available_updates() - get_system_info() ## Core Updates - Updated PackageMaximizer to support version constraints - Enhanced solver registry with EnhancedGreedySolver - Version bump: 0.3.0 -> 0.4.0 ## Tests - Added 40+ new tests for constraints, enhanced solver, and integrations - Total tests: 161 (100% pass rate) ## Usage Examples ### Version Constraints ### Enhanced Greedy Solver ### Real Repository Integration Closes #3 Co-authored-by: dominicusin <dominicusin@users.noreply.github.com> --------- Co-authored-by: Vibe Nuage Agent <vibe@mistral.ai> Co-authored-by: dominicusin <dominicusin@users.noreply.github.com>
…inal touches (#21) * feat: implement Phase 2 - additional parsers, solvers, analyzers, and utilities Phase 2 implementation includes: ## New Parsers (3 added) - **PacmanParser**: Parser for Pacman (Arch Linux) packages - Supports pacman -Q, pacman -Ss, pacman -Si formats - **DNFParser**: Parser for DNF (Fedora/RHEL) packages - Supports dnf list, dnf info, dnf search formats - **BrewParser**: Parser for Homebrew (macOS) packages - Supports brew list, brew info, brew search formats ## New Solvers (2 added) - **MaxSatSolver**: SAT-based solver using MaxSAT - Uses python-sat library - Supports weighted optimization - **MiniSatSolver**: SAT-based solver using MiniSat - Uses python-sat library - Supports weighted optimization ## New Analyzers (1 added) - **ResultAnalyzer**: Analyzes maximization results - Compares installed vs proposed packages - Generates compatibility matrices - Provides dependency analysis - Supports solver comparison ## New Utilities - **CacheManager**: Caching system for results - File-based and in-memory caching - TTL support - Cache decorator - **BenchmarkRunner**: Performance testing framework - Generates test packages - Runs benchmarks across solvers - Exports reports (JSON, CSV) ## Updates - Updated PackageMaximizer to support new components - Updated solver registry with MaxSAT and MiniSat - Updated parser registry with Pacman, DNF, Brew - Added analyzer registry - Version bump: 0.2.0 -> 0.3.0 ## Tests - Added 60+ new tests for all new components - Total tests: 114 (all passing) Closes #2 Co-authored-by: dominicusin <dominicusin@users.noreply.github.com> * feat: implement Phase 3 - version constraints, enhanced solver, and real repo integration Phase 3 implementation includes: ## New Core Features - **VersionConstraint**: Support for version comparison operators - ==, !=, >, >=, <, <=, ~ (compatible version) - Parses semantic versions (1.2.3, 2.0.0, etc.) - Handles version ranges - **DependencyConstraint**: Version-aware dependency checking - **ConflictConstraint**: Version-aware conflict detection - **ConstraintParser**: Parses constraint strings into objects - Supports complex dependency specifications - Handles version constraints in dependencies and conflicts ## New Solver - **EnhancedGreedySolver**: Improved greedy algorithm - Version constraint awareness - Smart dependency handling - Priority-based package selection - Configurable conflict resolution (skip/remove) - Weight support ## New Integration - **RealRepoIntegration**: Integration with real package managers - APT (Debian/Ubuntu) - Pacman (Arch Linux) - DNF (Fedora/RHEL/CentOS) - Brew (macOS) - Methods: - get_installed_packages() - search_packages() - get_package_info() - check_package_installed() - get_available_updates() - get_system_info() ## Core Updates - Updated PackageMaximizer to support version constraints - Enhanced solver registry with EnhancedGreedySolver - Version bump: 0.3.0 -> 0.4.0 ## Tests - Added 40+ new tests for constraints, enhanced solver, and integrations - Total tests: 161 (100% pass rate) ## Usage Examples ### Version Constraints ### Enhanced Greedy Solver ### Real Repository Integration Closes #3 Co-authored-by: dominicusin <dominicusin@users.noreply.github.com> * feat: implement Phase 4 - enhanced CLI, improved documentation, and final touches Phase 4 implementation includes: ## New CLI Commands (5 added) - **list-installed**: Show installed packages from system - Options: --manager, --limit, --output (text/json) - **search**: Search packages in repository - Options: --manager, --limit, --output (text/json) - **info**: Show package information - Options: --manager, --output (text/json) - **check-updates**: Check for available updates - Options: --manager, --output (text/json) - **system-info**: Show system and package manager information - Options: --manager, --output (text/json) ## CLI Improvements - Updated all commands to support --output json option - Enhanced error handling - Better help messages - Consistent output formatting - Support for all package managers in CLI commands ## Documentation - **Completely rewritten README.md** with: - Project overview and features - Installation instructions - Quick start guide - Python API documentation - CLI usage examples - Solver comparison table - Configuration guide - Testing instructions - Contribution guidelines - Added badges (Python version, license, GitHub stats) - Organized by use cases ## Core Updates - Updated __init__.py exports for all new components - Version bump: 0.4.0 -> 0.5.0 ## Tests - Added tests for new CLI commands (test_cli_extended.py) - Total tests: 175 (100% pass rate) ## CLI Usage Examples ### Package Management ### Maximization ### Information ## Final Project Status ### All Phases Completed ✅ - Phase 1: Core solvers (4), parsers (1), CLI, tests (52) - Phase 2: Additional parsers (3), solvers (2), analyzer, cache, benchmark (114 tests) - Phase 3: Version constraints, enhanced solver, real repo integration (161 tests) - Phase 4: Enhanced CLI, documentation, final touches (175 tests) ### Total Statistics - **Files**: 40+ Python files - **Tests**: 175 (100% pass rate) - **Solvers**: 7 (Greedy, EnhancedGreedy, Z3, PuLP, OR-Tools, MaxSAT, MiniSat) - **Parsers**: 4 (APT, Pacman, DNF, Brew) - **Integrations**: 1 (RealRepoIntegration) - **Utilities**: 2 (CacheManager, BenchmarkRunner) - **CLI Commands**: 11 Closes #4 Co-authored-by: dominicusin <dominicusin@users.noreply.github.com> --------- Co-authored-by: Vibe Nuage Agent <vibe@mistral.ai> Co-authored-by: dominicusin <dominicusin@users.noreply.github.com>
Snyk has created this PR to fix 2 vulnerabilities in the pip dependencies of this project.
Snyk changed the following file(s):
requirements.txtImportant
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic
Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.