updated post commit to stop infinite loop
Some checks failed
Comprehensive CI/CD Pipeline / Build and Test (push) Successful in 6m19s
Comprehensive CI/CD Pipeline / Security Audit (push) Failing after 6s
Comprehensive CI/CD Pipeline / Package Validation (push) Successful in 37s
Comprehensive CI/CD Pipeline / Status Report (push) Has been skipped

---
Session Changes:

Add your changes here during development...
This commit is contained in:
apt-ostree-dev 2025-08-21 17:17:58 -07:00
parent 568a8a011c
commit e1d682f6a8
18 changed files with 758 additions and 303 deletions

136
docs/CHANGELOG_WORKFLOW.md Normal file
View file

@ -0,0 +1,136 @@
# Changelog Workflow Documentation
## Overview
This document explains the different ways to work with the CHANGELOG.md file and how to safely commit changes with changelog content.
## The Problem
The original post-commit git hook had several issues:
1. **Infinite Loop Risk**: It called `git commit --amend` which triggered the hook again
2. **Double Amending**: It tried to amend commits multiple times
3. **System Instability**: Could cause resource exhaustion requiring system reboot
## Solutions
### Option 1: Fixed Post-Commit Hook (Safest)
The post-commit hook has been fixed to:
- Temporarily disable itself during operations to prevent infinite loops
- Only amend the commit once
- Stage the cleared changelog without committing it
**Usage**: Just commit normally, the hook will automatically process the changelog.
### Option 2: Pre-Commit Hook (Recommended)
A new pre-commit hook that:
- Runs before the commit happens
- Modifies the commit message to include changelog content
- Clears the changelog after the commit
- No risk of infinite loops
**Usage**: Just commit normally, the hook will automatically process the changelog.
### Option 3: Manual Script (Most Control)
A manual script `scripts/commit-with-changelog.sh` that:
- Gives you full control over the process
- No git hooks involved
- Interactive commit message input
- Safe and predictable
**Usage**:
```bash
# Stage your changes first
git add .
# Run the script
./scripts/commit-with-changelog.sh
```
## How to Use
### 1. Add Changes to CHANGELOG.md
Edit `CHANGELOG.md` and add your changes under the "Current Session Changes" section:
```markdown
# apt-ostree Changelog
## Current Session Changes
- Fixed bug in container composition
- Added support for new treefile format
- Improved error handling in build process
```
### 2. Stage Your Changes
```bash
git add .
```
### 3. Commit
**With hooks enabled** (automatic):
```bash
git commit -m "Your commit message"
```
**With manual script** (manual control):
```bash
./scripts/commit-with-changelog.sh
```
## Troubleshooting
### If the hook causes issues:
1. **Disable hooks temporarily**:
```bash
mv .git/hooks/post-commit .git/hooks/post-commit.disabled
mv .git/hooks/pre-commit .git/hooks/pre-commit.disabled
```
2. **Use the manual script instead**:
```bash
./scripts/commit-with-changelog.sh
```
3. **Reset if needed**:
```bash
git reset --soft HEAD~1 # Undo last commit
```
### If you get infinite loops:
1. **Kill git processes**:
```bash
pkill -f git
```
2. **Disable all hooks**:
```bash
chmod -x .git/hooks/*
```
3. **Reboot if system becomes unresponsive**
## Best Practices
1. **Keep changelog entries concise** - one line per change
2. **Use present tense** - "Fix bug" not "Fixed bug"
3. **Test hooks in a safe environment** before using in production
4. **Have a backup plan** - the manual script is always available
5. **Monitor system resources** when using automated hooks
## Current Status
- ✅ Post-commit hook fixed (safer)
- ✅ Pre-commit hook added (recommended)
- ✅ Manual script available (most control)
- ✅ Documentation created
- ✅ All scripts are executable
Choose the approach that best fits your workflow and comfort level with automation.

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-Fedora_process.md

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-bootc-archtiecture.md

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-bootc-image-builder.md

1
docs/research-bootc.md Symbolic link
View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-bootc.md

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-debian-tools.md

1
docs/research-ostree.md Symbolic link
View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-ostree.md

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-rpm-ostree-WITHOUT-FEDORA.md

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-rpm-ostree-WITHOUT-FEDORAv2.md

1
docs/research-rpm-ostree.md Symbolic link
View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-rpm-ostree.md

View file

@ -0,0 +1 @@
/opt/Projects/debian-bootc-simple/research-similiar-projects.md