Skip to content

Commit a51dbde

Browse files
committed
Add CLAUDE.md with instructions for future Debian version updates
1 parent 9c247f6 commit a51dbde

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

CLAUDE.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# Debian Version Update Guide
2+
3+
This document provides instructions for creating new Debian version branches in the netboot.xyz debian-squash repository.
4+
5+
## Overview
6+
7+
This repository contains branches for different Debian versions and flavors. Each branch builds and releases Debian live filesystem squashfs files for netboot.xyz.
8+
9+
## Branch Structure
10+
11+
Each Debian version has multiple flavor branches following the pattern: `{flavor}-{version}`
12+
13+
Standard flavors:
14+
- `core` (standard/minimal)
15+
- `gnome`
16+
- `cinnamon`
17+
- `kde`
18+
- `lxde`
19+
- `lxqt`
20+
- `mate`
21+
- `xfce`
22+
23+
## Creating New Version Branches
24+
25+
When Debian releases a new version, follow these steps to create corresponding branches:
26+
27+
### 1. Identify Source Branches
28+
List all branches for the current version:
29+
```bash
30+
git branch -a | grep -E "{current_version}$"
31+
```
32+
33+
### 2. For Each Flavor Branch
34+
35+
Create new branch from the existing version:
36+
```bash
37+
git checkout {flavor}-{old_version}
38+
git checkout -b {flavor}-{new_version}
39+
```
40+
41+
### 3. Update Files in Each New Branch
42+
43+
#### A. GitHub Workflow File
44+
- Rename: `.github/workflows/{flavor}-{old_version}.yml``.github/workflows/{flavor}-{new_version}.yml`
45+
- Update in the file:
46+
- Workflow name: `name: {flavor}-{new_version}`
47+
- Trigger branch: `branches: - {flavor}-{new_version}`
48+
- Environment variable: `BRANCH: {flavor}-{new_version}`
49+
- Checkout ref: `ref: {flavor}-{new_version}`
50+
51+
#### B. endpoints.template
52+
Update the following:
53+
- Endpoint name: `debian-{old_version}-{flavor}-squash``debian-{new_version}-{flavor}-squash`
54+
- Kernel reference: `debian-{old_version}-live-kernel``debian-{new_version}-live-kernel`
55+
- **IMPORTANT**: Keep `version: "REPLACE_VERSION"` as-is (dynamically populated by version.sh)
56+
57+
#### C. Files That Don't Need Changes
58+
- `settings.sh` - Uses `current-live` URL path (version-agnostic)
59+
- `version.sh` - Dynamically extracts current version from Debian servers
60+
- `README.md` - Generic repository documentation
61+
62+
### 4. Commit and Push
63+
```bash
64+
git add .
65+
git commit -m "Update {flavor}-{new_version} branch with Debian {new_version} references"
66+
git push origin {flavor}-{new_version}
67+
```
68+
69+
## Example: Creating Debian 14 from Debian 13
70+
71+
```bash
72+
# For core flavor
73+
git checkout core-13
74+
git checkout -b core-14
75+
mv .github/workflows/core-13.yml .github/workflows/core-14.yml
76+
77+
# Edit workflow file to replace all "13" references with "14"
78+
# Edit endpoints.template to update endpoint name and kernel version
79+
# Keep version field as "REPLACE_VERSION"
80+
81+
git add .
82+
git commit -m "Update core-14 branch with Debian 14 references"
83+
git push origin core-14
84+
85+
# Repeat for other flavors: gnome, cinnamon, kde, lxde, lxqt, mate, xfce
86+
```
87+
88+
## Automation Tips
89+
90+
When updating multiple branches, you can use the MultiEdit tool or sed commands to batch update references:
91+
92+
```bash
93+
# Example for workflow file updates
94+
sed -i 's/core-13/core-14/g' .github/workflows/core-14.yml
95+
96+
# Example for endpoints.template
97+
sed -i 's/debian-13-/debian-14-/g' endpoints.template
98+
sed -i 's/debian-13-live-kernel/debian-14-live-kernel/g' endpoints.template
99+
```
100+
101+
## Important Notes
102+
103+
1. **Version Placeholder**: Always keep `version: "REPLACE_VERSION"` in endpoints.template. This is replaced dynamically during the build process.
104+
105+
2. **CI/CD**: Each branch has its own GitHub Actions workflow that triggers on:
106+
- Push to the branch (excluding workflow file changes)
107+
- Weekly schedule (Fridays at 4 AM)
108+
- Manual workflow dispatch
109+
110+
3. **Testing**: After creating new branches, you can manually trigger the workflow to test the build process using GitHub's "Actions" tab.
111+
112+
4. **Debian Versions**: The actual Debian version number (e.g., 12.5.0) is extracted dynamically from Debian's servers by version.sh
113+
114+
## Troubleshooting
115+
116+
- If builds fail, check that the ISO URLs in settings.sh match Debian's current directory structure
117+
- Verify that version.sh correctly extracts version numbers from SHA256SUMS
118+
- Ensure GitHub Actions has necessary permissions for creating releases
119+
120+
## Additional Resources
121+
122+
- [netboot.xyz build pipelines](https://github.com/netbootxyz/build-pipelines)
123+
- [Debian CD Images](https://cdimage.debian.org/debian-cd/current-live/)

0 commit comments

Comments
 (0)