Skip to content

Commit 2f5311a

Browse files
docs(ospo): community health rollout v2 — LICENSE, README, agents.md, health files (#97)
* docs(ospo): community health rollout v2 — LICENSE, README, agents.md, health files This repo superseded the archived per-product docs-* repos but never received the OSPO community health rollout v2 that the rest of the org got on 2026-06-22 (docs-main 82dbaaf, docs-server dc082e0). owncloud/.github holds no org-default community health files, so nothing was inherited — most visibly, a public repo publishing AGPL-3.0-derived documentation with no LICENSE at all. Added, verbatim from owncloud/docs-main (byte-identical across the docs family): LICENSE GNU AGPL v3, matching docs-main/docs-server/docs-webui, the upstream sources this content was synced from CONTRIBUTING.md -> owncloud.com/contribute/ CODE_OF_CONDUCT.md -> owncloud.com/contribute/code-of-conduct/ SECURITY.md -> security.owncloud.com + YesWeHack bug bounty SUPPORT.md enterprise / discussions / Matrix / docs channels Adapted to this monorepo rather than copied: agents.md docs-main's section order, retargeted to the Antora monorepo: content/<product>/<version>/ folders, Pagefind, the local extension dirs, npm scripts, Node 22, main branch, and the versions-are-folders / mirror-retired constraints README.md OSPO v2 marker, licence + OSPO badges, and the template sections (Community & Support, Contributing, Security, License, About the OSPO, Apache-2.0 migration) appended around the existing monorepo design notes, which are kept Also added .github/workflows/lint-pr-title.yml from docs-main, with an explicit `permissions: pull-requests: read` to match ci.yml's style. The repo already uses Conventional Commit PR titles and squash-merges, but nothing enforced it. Two stale references to the prototype's personal fork are corrected on the way past: README's live URL and package.json's homepage now point at owncloud/docs.owncloud.com, and package.json declares "license": "AGPL-3.0" consistently with the new LICENSE. Deliberately not included: REUSE.toml/LICENSES/ and SPDX headers (still a three-repo pilot org-wide), GOVERNANCE.md and MAINTAINERS.md (present in no ownCloud repo), a DCO file (enforced by rulesets), .github/settings.yml (superseded by owncloud/admin safe-settings), and issue/PR templates (only pre-OSPO copies exist, referencing retired labels and dead URLs). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> * docs(ospo): fix branch model, actions policy, test command and dead link - README claimed the branch model is `master` only; the default branch is `main`, as agents.md already stated in the same change. - README's GitHub Actions policy omitted the "verified by the ownCloud Maintainers" clause that agents.md carries. Under the narrower wording the lint-pr-title workflow added alongside it was non-compliant with the policy introduced in the same change, since amannn is a personal account and cannot hold a Marketplace verified-creator badge. - The YesWeHack bug bounty URL 404s and no such programme exists on YesWeHack, so both occurrences are dropped; security.owncloud.com remains the reporting route SECURITY.md points at. - agents.md documented `npm test` standalone, but 4 of the redirect/alias tests skip themselves unless public/ has been built, which reads as a pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> * chore(license): use the non-deprecated SPDX id AGPL-3.0-or-later AGPL-3.0 is deprecated in the SPDX licence list, and scanners -- including the reuse lint pilot this rollout is heading towards -- warn or fail on deprecated identifiers. AGPL-3.0-or-later matches the identifier owncloud/core declares in its composer.json. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> * ci(lint-pr-title): restore the reopened trigger, add a concurrency group The explicit types list dropped the default `reopened`, so closing and reopening a PR left the check absent rather than carrying it over, and added a `synchronize` that cannot change a PR title. Without a concurrency group two quick title edits race, and a superseded failing run finishing last leaves a red check on a title that is already valid. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> * docs(readme): title the project "ownCloud Documentation" The H1 dated from the prototype phase and read as a caveat rather than a name. The monorepo/experimental framing already lives in the intro paragraph and the "What changed vs. the legacy setup" table, so nothing is lost. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> * docs(ospo): restore the YesWeHack bounty link to match the org baseline Reverses the "dead link" bullet of 12ab788, which dropped the YesWeHack paragraph from SECURITY.md and the bounty line from README.md because the URL 404s. The 404 is real, but it is an org-wide baseline problem, not a defect of this repo: ~157 files across owncloud carry the same URL, and the community health files exist precisely to be byte-identical copies of the docs-main baseline. Diverging one repo buys a working link at the cost of that rule. SECURITY.md is byte-identical to owncloud/docs-main again (345 bytes, sha256 3e6f3d8ddaf75f6876dcec389587eec9ef31c0fd4dbdab94a15f0ca3f911de9c), and the README Security section matches the upstream template. Fixing the URL belongs to the OSPO as a single org-wide change. The other three bullets of 12ab788 (branch model, Actions policy, npm test) stand unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> --------- Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent dcc68c3 commit 2f5311a

9 files changed

Lines changed: 882 additions & 4 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Lint PR title
2+
3+
on:
4+
pull_request:
5+
# `reopened` is required: without it, closing and reopening a PR leaves the
6+
# check absent rather than carrying it over. `synchronize` is deliberately
7+
# omitted -- a push cannot change the title, so it can only re-run a lint
8+
# whose outcome is already known.
9+
types: [opened, edited, reopened]
10+
11+
permissions:
12+
pull-requests: read
13+
14+
# Scoped per ref, as in ci.yml. Two quick title edits would otherwise race, and
15+
# a superseded failing run finishing last would leave a red check on a title
16+
# that is already valid.
17+
concurrency:
18+
group: lint-pr-title-${{ github.ref }}
19+
cancel-in-progress: true
20+
21+
jobs:
22+
lint:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CODE_OF_CONDUCT.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Code of Conduct
2+
3+
This project follows the ownCloud Code of Conduct.
4+
5+
Please read the full Code of Conduct at:
6+
**<https://owncloud.com/contribute/code-of-conduct/>**
7+
8+
By participating in this project, you agree to abide by its terms.

CONTRIBUTING.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Contributing
2+
3+
Thank you for your interest in contributing to this project!
4+
5+
Please read the full contributing guidelines at:
6+
**<https://owncloud.com/contribute/>**
7+
8+
For development setup, coding standards, and pull request process,
9+
see the README in this repository.

LICENSE

Lines changed: 661 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
# ownCloud Docs — Monorepo (experimental)
1+
# ownCloud Documentation
2+
3+
<!-- OSPO-managed README | Generated: 2026-08-21 | v2 -->
4+
5+
[![License](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](LICENSE) [![ownCloud OSPO](https://img.shields.io/badge/OSPO-ownCloud-blue)](https://kiteworks.com/opensource)
26

37
Consolidated, single-repository prototype of the ownCloud documentation. It
48
replaces the previous 9-repo setup (1 orchestrator + 7 content repos + a custom
59
UI repo) with **one monorepo** built by Antora.
610

7-
Live (GitHub Pages): https://deepdiver1975.github.io/owncloud-docs-monorepo/
11+
Live (GitHub Pages): https://doc.owncloud.com
812

913
## What changed vs. the legacy setup
1014

1115
| Area | Legacy | Here |
1216
|------|--------|------|
1317
| Repos | 9 | 1 (this repo) |
1418
| Versions | git branches + backporting | **folders** under `content/<product>/<version>/` |
15-
| Branch model | `master` + N version branches per repo | `master` only |
19+
| Branch model | `master` + N version branches per repo | `main` only |
1620
| Search | Elasticsearch + custom index extension + CI secrets | **Pagefind** (static, build-time) |
1721
| UI | custom Gulp/Browserify/jQuery `docs-ui` + `ui-bundle.zip` | **stock Antora default UI** + `ui/supplemental/` |
1822
| Content sources | 7 remote GitHub repos × branches | local folders, authored here (upstream mirror retired) |
@@ -164,3 +168,74 @@ npm run serve # http-server on :8080
164168
```
165169

166170
Node 22 is recommended (matches CI).
171+
172+
## Community & Support
173+
174+
**[Star](https://github.com/owncloud/docs.owncloud.com)** this repo and **Watch** for release notifications!
175+
176+
- [ownCloud Website](https://owncloud.com)
177+
- [Community Discussions](https://github.com/orgs/owncloud/discussions)
178+
- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org)
179+
- [Documentation](https://doc.owncloud.com)
180+
- [Enterprise Support](https://owncloud.com/contact-us/)
181+
- [OSPO Home](https://kiteworks.com/opensource)
182+
183+
## Contributing
184+
185+
We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md)
186+
and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started.
187+
188+
### Workflow
189+
190+
- **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR.
191+
- **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
192+
- **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification).
193+
- **DCO Sign-off**: Every commit must carry a `Signed-off-by` line:
194+
```
195+
git commit -s -S -m "your commit message"
196+
```
197+
- **GitHub Actions Policy**: Workflows may only use actions that are (a) owned by `owncloud`, (b) created by GitHub (`actions/*`), (c) verified in the GitHub Marketplace, or (d) verified by the ownCloud Maintainers. Pin every action to its full commit SHA.
198+
199+
## Security
200+
201+
**Do not open a public GitHub issue for security vulnerabilities.**
202+
203+
Report vulnerabilities at **<https://security.owncloud.com>** -- see [SECURITY.md](SECURITY.md).
204+
205+
Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program)
206+
207+
## License
208+
209+
This project is licensed under the [AGPL-3.0](LICENSE).
210+
211+
## About the ownCloud OSPO
212+
213+
The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under
214+
the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source
215+
ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance,
216+
community health, and sustainable collaboration between the open source community and
217+
[Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023.
218+
219+
- **OSPO Home**: <https://kiteworks.com/opensource>
220+
- **GitHub**: <https://github.com/owncloud>
221+
- **ownCloud**: <https://owncloud.com>
222+
223+
For questions about the OSPO or licensing, contact ospo@kiteworks.com.
224+
225+
### License Migration to Apache 2.0
226+
227+
The OSPO is driving a strategic relicensing of ownCloud repositories toward the
228+
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), following
229+
the [Apache Software Foundation's third-party license policy](https://www.apache.org/legal/resolved.html).
230+
231+
Individual repositories will migrate as their audit is completed. The LICENSE file
232+
in each repo reflects its **current** license status (not the target).
233+
234+
**Current license: AGPL-3.0** (Category X per Apache policy -- cannot be included in Apache-2.0 works).
235+
236+
Migration prerequisites for this repository:
237+
238+
- **CLA/DCO coverage**: All past contributors must have signed agreements permitting relicensing
239+
- **Copyleft dependency audit**: All AGPL/GPL dependencies must be replaced or isolated
240+
- **KDE heritage review**: Any code with KDE-era copyrights requires legal analysis
241+
- **Complete relicensing**: AGPL-3.0 is a strong copyleft license; migration requires full relicensing of all files, not just a header change

SECURITY.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Security Policy
2+
3+
## Reporting a Vulnerability
4+
5+
**Do NOT open a public GitHub issue for security vulnerabilities.**
6+
7+
Please report security issues responsibly via:
8+
**<https://security.owncloud.com>**
9+
10+
You can also report vulnerabilities through our YesWeHack bug bounty program:
11+
**<https://yeswehack.com/programs/owncloud-bug-bounty-program>**

SUPPORT.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Support
2+
3+
For support with this project, please use the following channels:
4+
5+
- **Enterprise Support**: <https://owncloud.com/contact-us/>
6+
- **Community discussions**: https://github.com/orgs/owncloud/discussions
7+
- **Matrix Chat**: <https://app.element.io/#/room/#owncloud:matrix.org>
8+
- **Documentation**: <https://doc.owncloud.com>
9+
10+
Please do not use GitHub issues for general support questions.

agents.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# AI Agent Guidelines for ownCloud Docs
2+
3+
This file provides context for AI coding agents (Claude Code, GitHub Copilot, Cursor, etc.) working in this repository.
4+
5+
## Repository Overview
6+
- **Product family:** Documentation
7+
- **Primary language(s):** JavaScript, AsciiDoc
8+
- **Build system:** npm (Antora + Pagefind)
9+
- **Test framework:** `node --test` (`npm test`), plus the Antora build itself (`npm run antora`)
10+
- **CI system:** GitHub Actions (build & deploy to GitHub Pages)
11+
12+
## Architecture & Key Paths
13+
14+
This is the consolidated documentation **monorepo**. It supersedes the previous
15+
9-repo setup (1 orchestrator + 7 content repos + a custom UI repo).
16+
17+
- `site.yml` -- Antora playbook; all content sources are local
18+
- `content/<product>/<version>/` -- documentation content; products are `main`, `server`, `webui`, `ocis`, `desktop`, `android`, `ios`
19+
- `antora-extensions/` -- custom Antora extensions (`comp-version`, `latest-alias`, `sitemap-cleanup`, `load-global-site-attributes`)
20+
- `asciidoc-extensions/` -- custom AsciiDoc extensions (`tabs`, `remote-include-processor`)
21+
- `ui/supplemental/` -- supplemental files layered onto the stock Antora default UI
22+
- `global-attributes.yml` -- site-wide AsciiDoc attributes
23+
- `sync/` -- the retired upstream import tooling (`manifest.yml`, `patches/`); kept for provenance
24+
- `test/` -- Node test suite
25+
- `package.json` -- npm scripts
26+
27+
## Development Conventions
28+
- **Branching:** `main`
29+
- **Commit messages:** Conventional Commits; DCO sign-off required (`git commit -s`)
30+
- **PR process:** Open a PR against `main`. All CI checks must pass. PR titles are linted for Conventional Commits format.
31+
32+
## Build & Test Commands
33+
```bash
34+
# Build
35+
npm run antora # Antora site build only
36+
npm run build # Antora build + Pagefind search index
37+
38+
# Test -- build first: 4 of the redirect/alias tests skip themselves without public/
39+
npm run antora && npm test
40+
41+
# Preview
42+
npm run antora-local && npm run serve # http://localhost:8080
43+
```
44+
45+
Node 22 is used in CI.
46+
47+
## Important Constraints
48+
- All contributions must be compatible with the **AGPL-3.0** license
49+
- Do not introduce new **copyleft-licensed dependencies** (GPL, AGPL, LGPL, MPL) without explicit discussion in an issue first. This is especially important for repos migrating to Apache 2.0.
50+
- Do not introduce new dependencies without discussion in an issue first
51+
- **Versions are folders, not branches.** A new documentation version is a new directory under `content/<product>/<version>/` -- never a git branch, and never a backport.
52+
- **The upstream mirror is retired.** Content is authored in this repository. Do not re-introduce a sync from the archived `docs-*` repos.
53+
54+
## OSPO Policy Constraints
55+
56+
### GitHub Actions
57+
- **Only** use actions owned by `owncloud`, created by GitHub (`actions/*`), verified on the GitHub Marketplace, or verified by the ownCloud Maintainers.
58+
- Pin all actions to their full commit SHA (not tags): `uses: actions/checkout@<SHA> # vX.Y.Z`
59+
- Never introduce actions from unverified third parties.
60+
61+
### Dependency Management
62+
- Dependabot is configured for automated dependency updates.
63+
- Review and merge Dependabot PRs as part of regular maintenance.
64+
- Do not introduce new dependencies without discussion in an issue first.
65+
66+
### Git Workflow
67+
- **Rebase policy**: Always rebase; never create merge commits. Use `git pull --rebase` and `git rebase` before pushing.
68+
- **Signed commits**: All commits **must** be PGP/GPG signed (`git commit -S -s`).
69+
- **DCO sign-off**: Every commit needs a `Signed-off-by` line (`git commit -s`).
70+
- **Conventional Commits & Squash Merge**: Use the [Conventional Commits](https://www.conventionalcommits.org/) format. This repository squash-merges, so the PR title becomes the commit message on `main` -- apply Conventional Commits format to PR titles as well. A GitHub Actions workflow enforces this.
71+
72+
## Context for AI Agents
73+
- Match existing code style
74+
- Do not refactor unrelated code in the same PR
75+
- Write tests for new functionality
76+
- Keep PRs focused and atomic

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"private": true,
33
"description": "The ownCloud documentation (consolidated monorepo)",
4-
"homepage": "https://github.com/DeepDiver1975/owncloud-docs-monorepo#readme",
4+
"homepage": "https://github.com/owncloud/docs.owncloud.com#readme",
5+
"license": "AGPL-3.0-or-later",
56
"scripts": {
67
"antora": "antora --stacktrace site.yml",
78
"antora-local": "antora --stacktrace --url http://localhost:8080 site.yml",

0 commit comments

Comments
 (0)