mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-11-16 01:21:16 +01:00
# Description of Changes **Summary** - Enforce wheels-only installs for CI/dev workflows where feasible and pin `pip` to a specific, patched VCS commit as an interim mitigation. - Replace the explicit `pip==25.2` entry with a VCS-pinned `pip` reference in `.github/scripts/requirements_dev.in` and the regenerated `.github/scripts/requirements_dev.txt`. - Refresh and re-hash multiple development dependency pins in the locked `requirements_dev.txt` to ensure reproducible installs and reduce exposure to vulnerable transitive packages. - Add notes and guidance for maintainers on reverting the VCS pin once an official pip release contains the fix. **Why the change was made** - CVE-2025-8869 allows malicious sdists to include links that escape the intended extraction directory, enabling arbitrary file overwrite during `pip install`. CI and developer automation that installs dev dependencies are at risk if they process attacker-controlled sdists. - This PR reduces immediate attack surface by preferring wheel installations where possible and pinning pip to a known patched commit until an official fixed pip release is available. --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
54 lines
1.7 KiB
Batchfile
54 lines
1.7 KiB
Batchfile
@echo off
|
|
REM --------------------------------------------------
|
|
REM Batch script to (re-)generate all requirements
|
|
REM with check for pip-compile and user confirmation
|
|
REM --------------------------------------------------
|
|
|
|
REM Check if pip-compile is available
|
|
pip-compile --version >nul 2>&1
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo ERROR: pip-compile was not found.
|
|
echo Please install pip-tools:
|
|
echo pip install pip-tools
|
|
echo and ensure that pip-compile is in your PATH.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo pip-compile detected.
|
|
|
|
REM Prompt user for confirmation (default = Yes on ENTER)
|
|
set /p confirm="Do you want to generate all requirements? [Y/n] "
|
|
if /I "%confirm%"=="" set confirm=Y
|
|
|
|
if /I not "%confirm%"=="Y" (
|
|
echo Generation cancelled by user.
|
|
pause
|
|
exit /b 0
|
|
)
|
|
|
|
echo Starting generation...
|
|
|
|
echo Generating .github\scripts\requirements_dev.txt
|
|
pip-compile --allow-unsafe --generate-hashes --upgrade --strip-extras ^
|
|
--output-file=".github\scripts\requirements_dev.txt" ^
|
|
".github\scripts\requirements_dev.in"
|
|
|
|
echo Generating .github\scripts\requirements_pre_commit.txt
|
|
pip-compile --generate-hashes --upgrade --strip-extras ^
|
|
--output-file=".github\scripts\requirements_pre_commit.txt" ^
|
|
".github\scripts\requirements_pre_commit.in"
|
|
|
|
echo Generating .github\scripts\requirements_sync_readme.txt
|
|
pip-compile --generate-hashes --upgrade --strip-extras ^
|
|
--output-file=".github\scripts\requirements_sync_readme.txt" ^
|
|
".github\scripts\requirements_sync_readme.in"
|
|
|
|
echo Generating testing\cucumber\requirements.txt
|
|
pip-compile --generate-hashes --upgrade --strip-extras ^
|
|
--output-file="testing\cucumber\requirements.txt" ^
|
|
"testing\cucumber\requirements.in"
|
|
|
|
echo All done!
|
|
pause
|