owncloud / owncloud/docs.owncloud.com
Migrate docs monorepo to owncloud org & retire legacy multi-repo setup (Phases 2–5)
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 0
- Forks
- 2
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 37
Description
Context
The ownCloud documentation is migrating from a 9-repo setup (1 orchestrator owncloud/docs, 7 owncloud/docs-* content repos, 1 owncloud/docs-ui) to this single Antora monorepo, where each product version is a folder (content/<product>/<version>/) instead of a git branch.
This issue tracks the migration into the owncloud org and retirement of the legacy multi-repo setup (Phases 2–5). Phase 0–1 (sync-manifest drift reconciliation) are handled separately in a code PR.
Decisions locked
- Target repo: fresh
owncloud/docs— rename/retire the old orchestrator first, then create a cleanowncloud/docsfor the monorepo. - Drift handling: reconcile manifest mappings, keep the sync bridge running during a transition (do not freeze yet).
- Hosting: GitHub Pages under the
owncloudorg. - Retirement: archive legacy repos read-only (reversible, history preserved), sequenced after the transition.
Phase 2 — Create fresh owncloud/docs and move the monorepo
- Rename old orchestrator
owncloud/docs→owncloud/docs-legacy(frees the canonical name, keeps history). - Create fresh empty
owncloud/docsin the org. - Push this monorepo's full history to
main. - Configure repo settings: branch protection on
main(no direct pushes), Dependabot config incl.github-actionsecosystem (add if missing),upstream-syncPR label. - Update
site.ymlsite.urlfromhttps://deepdiver1975.github.io/owncloud-docs-monorepoto the org Pages URL — drives canonical links (Pagefind dedup) + asset resolution, must match publish location. - Review
ci.yml+sync-upstream.ymlunder the org; pin third-party actions to full commit SHAs (mikefarah/yq,peter-evans/create-pull-requestcurrently unpinned); confirm org Actions permissions for scheduled sync + Pages deploy.
Phase 3 — Enable GitHub Pages under the org
- Enable Pages (GitHub Actions source).
- Custom domain: add
CNAME+ DNS + TLS; orgithub.io: confirmsite.urlmatches. - Trigger build; verify landing page, per-product version dropdowns, Pagefind search, static redirect facility, legacy
go.phpredirects. - Verify
/server/latest/publish behavior is intended (current stable publishes only underlatest).
Phase 4 — Transition period (sync bridge stays live)
- Keep
sync-upstream.ymlmirroring upstreamdocs-*→ folders; authoring continues upstream. - Monitor first automated sync PRs to confirm reconciled mappings produce correct diffs (esp. repointed ocis/desktop/ios/android folders).
- Define exit criterion with maintainers: when authoring moves into the monorepo (PRs against
content/directly) and the sync bridge is retired.
Phase 5 — Freeze sync & retire legacy repos (read-only)
- Disable/remove
sync-upstream.yml; marksync/manifest.yml+sync/historical (dedicated PR). - For each legacy repo (7 content + orchestrator +
docs-ui): add deprecation notice →owncloud/docs, then archive read-only.owncloud/docs,owncloud/docs-main,owncloud/docs-server,owncloud/docs-ocis,owncloud/docs-webui,owncloud/docs-client-desktop,owncloud/docs-client-ios-app,owncloud/docs-client-android,owncloud/docs-ui
- Update external inbound links/references pointing at legacy repos.
Open items to confirm with maintainers
- Exact new dev-version folder numbers for ocis
master, desktopmaster, iosmaster, androidmaster. - Whether ocis
8.1(prerelease branch) ormaster(=next) is the authoritative dev line. - Final production URL/domain for
site.url(orggithub.iopath vs. customdoc.owncloud.com). - Old-orchestrator rename target name.
- Phase 4→5 exit criterion (when authoring moves in-repo).
Prerequisite (done separately)
Phase 0–1: reconcile sync/manifest.yml version drift — 4 folders (ocis/8.0, desktop/7.1, ios/12.7, android/4.8) are currently fed from upstream master (=next) instead of their now-cut release branches; ocis 8.1 and the new dev lines are unmapped.
🤖 Generated with Claude Code
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Phase 2–5 checklist and read site.yml, ci.yml, sync-upstream.yml, and sync/manifest.yml. Confirm the open items with maintainers before changing repository, Pages, or sync settings. Done means the org-hosted monorepo is published and verified, the sync transition is complete, and legacy repositories are deprecated and archived.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, github-actions, shell
- Domain
- devops, documentation, release
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100