Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 38 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,27 @@ developer manuals.

## Table of Contents

1. [Where to ask questions](#where-to-ask-questions)
2. [Setting up a local build environment](#setting-up-a-local-build-environment)
3. [Making changes](#making-changes)
4. [Opening a pull request](#opening-a-pull-request)
5. [Commit message format](#commit-message-format)
6. [DCO sign-off](#dco-sign-off)
7. [Review process](#review-process)
8. [Style guide](#style-guide)
9. [Issue templates](#issue-templates)
1. [Code of Conduct](#code-of-conduct)
2. [Where to ask questions](#where-to-ask-questions)
3. [Setting up a local build environment](#setting-up-a-local-build-environment)
4. [Making changes](#making-changes)
5. [Opening a pull request](#opening-a-pull-request)
6. [Commit message format](#commit-message-format)
7. [DCO sign-off](#dco-sign-off)
8. [Review process](#review-process)
9. [Style guide](#style-guide)
10. [Issue templates](#issue-templates)

---

## Code of Conduct

All contributors are expected to follow the
[Nextcloud Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).

## Where to ask questions

- **GitHub Discussions / Issues** – open an issue in this repository for
- **GitHub Issues** – open an issue in this repository for
documentation-specific questions and suggestions.
- **Nextcloud Community Forum** – <https://help.nextcloud.com>
- **Talk room** – join the public documentation chat room at
Expand All @@ -36,24 +42,37 @@ developer manuals.
Documentation is built with [Sphinx](https://www.sphinx-doc.org/). A local
build lets you preview changes accurately before opening a PR.

### Using a Python virtual environment (recommended)
### Using uv (recommended)

[uv](https://docs.astral.sh/uv/) is the fastest way to get started:

uv picks the Python version from `.python-version`, so the same steps work on
the `stable<N>` branches.

```bash
# 1. Clone the repository
git clone https://github.com/nextcloud/documentation.git
cd documentation

# 2. Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate # on Windows: venv\Scripts\activate
uv venv && source .venv/bin/activate # on Windows: .venv\Scripts\activate

# 3. Install dependencies
pip install -r requirements.txt
uv pip install -r requirements.txt

# 4. Build HTML (all manuals)
make html
```

### Using a plain Python virtual environment

```bash
python3.13 -m venv venv
source venv/bin/activate # on Windows: venv\Scripts\activate
pip install -r requirements.txt
make html
```

The built HTML files appear under each manual's `_build/html/` directory,
e.g. `user_manual/_build/html/index.html`.

Expand All @@ -67,7 +86,7 @@ then run `make html` in the integrated terminal.
### Live-reload while editing

```bash
pip install sphinx-autobuild
uv pip install sphinx-autobuild
cd user_manual # or admin_manual / developer_manual
make SPHINXBUILD=sphinx-autobuild html
# Open http://127.0.0.1:8000 in your browser
Expand All @@ -82,7 +101,7 @@ versions, etc.).

- Work in the correct branch:
- `master` → latest (unreleased) version
- `stable*` branches → the corresponding released version (e.g. `stable29`)
- `stable*` branches → the corresponding released version (e.g. `stable35`)
- If your change applies to multiple versions, open one PR per branch (or
note in the PR description that backporting is needed).
- Keep the scope of a PR focused. Separate unrelated fixes into separate PRs.
Expand All @@ -107,7 +126,7 @@ versions, etc.).
```
5. Open a pull request against the appropriate branch of
`nextcloud/documentation`.
6. Fill in the pull request template — include a screenshot of changed pages
6. Fill in the pull request template; include a screenshot of changed pages
where relevant.

---
Expand All @@ -129,7 +148,7 @@ Signed-off-by: Your Name <your.email@example.com>

| Type | When to use |
| ---------- | ------------------------------------------------------------ |
| `docs` | Content changes — new or updated documentation text |
| `docs` | Content changes: new or updated documentation text |
| `fix` | Correcting errors (broken links, wrong commands, typos, …) |
| `feat` | Adding a new page or section |
| `refactor` | Restructuring without changing the meaning of the content |
Expand Down Expand Up @@ -185,7 +204,7 @@ GitHub's privacy setting enabled, it will be
2. Automated checks (spelling, link validation) run on every PR. Fix any
reported issues before requesting a re-review.
3. The reviewer may request changes. Address feedback and push new commits to
the same branch — do **not** force-push after a review has started.
the same branch.
4. Once approved, a maintainer will merge the PR.

---
Expand Down
Loading
Loading