You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: MIGRATION.md
+91-8Lines changed: 91 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,6 +51,66 @@ LAF-PRIVATE/
51
51
52
52
---
53
53
54
+
## Pre-flight Checks: How the Existing Repos Interact
55
+
56
+
Before merging anything, these cross-repo dependencies must be understood and explicitly resolved.
57
+
58
+
### 1. THE-GEMSTONE is a Quartz 4.0 fork — not plain content
59
+
60
+
THE-GEMSTONE is NOT a simple collection of documents. It is a full fork of the [Quartz](https://quartz.jzhao.xyz/) static site generator (v4). Its root contains an entire Node.js build system:
|`Dockerfile`| Container build for local preview |
70
+
|`content/`| Obsidian Markdown source notes (the actual publication content) |
71
+
|`.github/workflows/deploy.yml`| CI pipeline: builds Quartz → deploys to GitHub Pages |
72
+
73
+
When merged flat into LAF-PUBLIC, all of these files land at the repo root and will conflict with files from other source repos (e.g., multiple `README.md`, `package.json`, `.gitignore`, `.github/workflows/` files).
74
+
75
+
### 2. THE-GEMSTONE self-deploys to GitHub Pages with a custom domain
76
+
77
+
THE-GEMSTONE's `.github/workflows/deploy.yml` runs on every push to `main`:
78
+
1. Checks out the repo
79
+
2. Runs `npm ci && npx quartz build` → outputs to `public/`
80
+
3. Uploads the `public/` artifact and deploys it via `actions/deploy-pages`
81
+
82
+
The site is served at the custom domain **`thegemstone.org`** (configured in `quartz.config.ts`).
83
+
84
+
**Impact on migration:** Moving THE-GEMSTONE into LAF-PUBLIC means:
85
+
- GitHub Pages must be enabled on **LAF-PUBLIC** in repo Settings → Pages → Source: GitHub Actions
86
+
- The `CNAME` / custom domain (`thegemstone.org`) must be re-configured on LAF-PUBLIC
87
+
-`quartz.config.ts` → `baseUrl` value may need updating if the domain changes
88
+
- The deploy workflow must still exist at `.github/workflows/deploy.yml` in LAF-PUBLIC after the merge (it will come in via the flat merge — confirm there are no conflicts with other workflows)
89
+
90
+
### 3. `loganfinney27.github.io` is independent of THE-GEMSTONE
91
+
92
+
`loganfinney27.github.io` is a **separate, standalone repo** — it contains only a hand-written `index.html` ("Hello World, I'm hosted with GitHub Pages") and a `README.md`. It does **not** serve as the build target for THE-GEMSTONE; that site deploys to its own GitHub Pages environment under `thegemstone.org`.
93
+
94
+
Both repos can be merged into LAF-PUBLIC independently. The `index.html` from `loganfinney27.github.io` will conflict with any root-level HTML from other repos — resolve manually.
95
+
96
+
### 4. Filename conflict map (known collisions before merging)
97
+
98
+
| Filename | Repos that contain it |
99
+
|---|---|
100
+
|`README.md`|**All 5 public repos** — must be manually merged into one |
THE-GEMSTONE was set up to receive upstream patches from `jackyzha0/quartz`. After consolidation, the upstream remote in THE-GEMSTONE's Quartz fork history no longer exists as a separate repo. If upstream Quartz updates are needed in the future, they must be cherry-picked or merged directly into LAF-PUBLIC from the upstream Quartz repo.
111
+
112
+
---
113
+
54
114
## Migration Steps
55
115
56
116
### Step 1: Create a GitHub Organization (optional but recommended)
@@ -69,44 +129,62 @@ gh repo create LAF-US/LAF-PUBLIC --public --description "All public-facing LAF p
69
129
70
130
### Step 3: Migrate each public repo into LAF-PUBLIC (flat — no subdirectories)
71
131
72
-
Merge each existing repo directly into the root of `LAF-PUBLIC`, preserving commit history:
132
+
Merge each existing repo directly into the root of `LAF-PUBLIC`, preserving commit history.
133
+
See the **Pre-flight Checks** section above for known filename conflicts before starting.
# index.html conflicts with any root HTML — merge content manually.
104
172
git commit -m "chore: merge loganfinney27.github.io into LAF-PUBLIC"
105
173
106
174
git push origin main
107
175
```
108
176
109
-
> **Conflict resolution:** If two repos have a file with the same name (e.g., `README.md`), Git will flag a merge conflict. Manually combine the content, `git add` the resolved file, then commit before moving to the next repo.
177
+
> **Conflict resolution:** When Git flags a merge conflict, manually combine the file content, run `git add <file>`, then commit before moving to the next repo. The README.md conflict will occur on every merge — keep building a single consolidated README.
178
+
179
+
### Step 3a: Re-enable GitHub Pages and custom domain on LAF-PUBLIC
180
+
181
+
After the merge, THE-GEMSTONE's Quartz deployment pipeline is now in LAF-PUBLIC. To restore the live site:
182
+
183
+
1. In **LAF-PUBLIC repo Settings → Pages**, set Source to **GitHub Actions**.
184
+
2. Re-enter the custom domain **`thegemstone.org`** in the Custom domain field and save.
185
+
3. Update your DNS provider: point the `CNAME` (or `A` records) for `thegemstone.org` to `laf-us.github.io` (replacing the old `loganfinney27.github.io` target).
186
+
4. Confirm `quartz.config.ts` still has `baseUrl: "thegemstone.org"` — update if the domain changes.
187
+
5. Push a commit to trigger the deploy workflow and verify the site loads at `thegemstone.org`.
110
188
111
189
### Step 4: Create the LAF-PRIVATE repository
112
190
@@ -143,12 +221,17 @@ Once migration is complete and verified:
0 commit comments