Big Commit

The changes affects multiple places in the repo and this one of the rare
instances where I cant be bothered writing a comprehensive commit. Look
at the diff for changes.

Signed-off-by: Ronald Caesar <github43132@proton.me>
This commit is contained in:
Ronald Caesar 2025-09-23 19:20:25 -04:00
parent 4dd8506346
commit 6bdfd6fcea
No known key found for this signature in database
GPG key ID: 04307C401999C596
10 changed files with 669 additions and 25 deletions

34
3rd_Party/PINNED_DEPENDENCIES.md vendored Normal file
View file

@ -0,0 +1,34 @@
# Pinned Submodule Versions
## Overview
This document tracks all pinned third-party submodules in the Pound project. Each submodule is locked to a specific commit hash to ensure reproducible builds and prevent unexpected updates.
## Update Policy
**NEVER update submodule commits without explicit approval from the project lead.** All updates must:
1. Be tested thoroughly
2. Have documented justification
3. Update this document with the new commit hash
4. Be committed as a separate, clear change
### ImGui
- **Repository**: https://github.com/ocornut/imgui.git
- **Version Tag**: v1.92.3
- **Pinned Commit**: bf75bfec48fc00f532af8926130b70c0e26eb099:
- **License**: MIT
- **Purpose**: Provides the graphical user interface for Pound.
- **Pinning Date**: 2025-09-20
- **Pinning Reason**: Provides the UI functionality we need with no known security issues
- **Last Review**: 2025-09-20
- **Next Review**: 2026-03-20
### SDL3
- **Repository**: https://github.com/libsdl-org/SDL
- **Version Tag**: v3.2.22
- **Commit Hash**: a96677bdf6b4acb84af4ec294e5f60a4e8cbbe03
- **License**: Zlib
- **Purpose**: Provides the backend renderer for ImGui.
- **Pinning Date**: 2025-09-20
- **Pinning Reason**: Provides the UI render backend functionality we need with no known security issues
- **Last Review**: 2025-09-20
- **Next Review**: 2026-03-20

43
3rd_Party/UPDATE_PROCEDURE.md vendored Normal file
View file

@ -0,0 +1,43 @@
# Updating Git Submodules
1. **Update to New Version (Manual)**
```bash
cd 3rd_party/imgui #imgui for example
git fetch origin
git tag -l "v*" # List available versions
git checkout v1.90.0 # Or desired version
cd ../..
git add 3rd_party/imgui
git commit -m "Update ImGui to v1.90.0"
git submodule update --init --recursive
```
2. **Update to New Version (Automatated)**
`scripts/update_submodule.sh`
3. **Update Documentation**
- Update relevant information in PINNED_DEPENDENCIES.md
## For Security Updates
1. Identify the security vulnerability and the specific commit that fixes it
2. Review the changes between current pinned commit and the fix
3. Test the updated version thoroughly
4. Update the submodule to the fixing commit
5. Update this document with the new commit hash
6. Commit with clear message with `scripts/update_submodule.sh`
## For Feature Updates
1. Justify why the feature update is necessary
2. Get approval from project lead
3. Review all changes between current and new version
4. Test thoroughly including regression testing
5. Update the submodule to the new commit
6. Update this document
7. Commit with clear message with `scripts/update_submodule.sh`
## For Emergency Rollbacks
If a pinned commit introduces issues:
1. Immediately revert to the previous known-good commit
2. Document the issue and reason for rollback
3. Update this document
4. Commit with clear message with `scripts/update_submodule.sh`