Switches from a fully permissive license to BSL 1.1 (the same family Outline's own server uses, for the same underlying reason): personal use, self-hosting, and non-commercial forks stay explicitly allowed, but shipping a competing hosted/distributed product off this code, or distributing a fork under branding that claims official/affiliated status, now requires a separate commercial agreement. Converts automatically to Apache License 2.0 on the change date in LICENSE. Adds an explicit trademark notice for the "Outpost" name/logo, independent of the code license — the specific thing this was meant to close off (a fork getting relabeled as an official/endorsed product). README gets a plain-English summary of what changed; CONTRIBUTING gets a one-line note that PRs are contributed under the same terms.
78 lines
2.3 KiB
Markdown
78 lines
2.3 KiB
Markdown
# Contributing to Outpost
|
|
|
|
Thank you for contributing. Please read this guide before opening issues or PRs.
|
|
|
|
Outpost is early alpha (`0.0.x`) — expect the codebase and conventions here to shift as Phase 1 (see [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)) settles. If something in this guide is stale, flag it.
|
|
|
|
---
|
|
|
|
## Branching
|
|
|
|
Branch from `main` using `type/short-description`:
|
|
|
|
```bash
|
|
git checkout -b feature/document-permissions
|
|
git checkout -b fix/sidebar-context-menu
|
|
```
|
|
|
|
---
|
|
|
|
## Commit Messages
|
|
|
|
Follow the Conventional Commits standard: `type(scope): message`.
|
|
|
|
| Type | Description |
|
|
| :--- | :--- |
|
|
| `feat` | New feature |
|
|
| `fix` | Bug fix |
|
|
| `docs` | Documentation |
|
|
| `style` | Formatting |
|
|
| `refactor` | Refactor |
|
|
| `perf` | Performance |
|
|
| `test` | Tests |
|
|
| `build` | Build system |
|
|
| `ci` | CI/CD config |
|
|
| `chore` | Maintenance |
|
|
|
|
**Examples:**
|
|
- `feat(collections): add document right-click context menu`
|
|
- `fix(reader): correct off-main AppKit calls in save action`
|
|
|
|
---
|
|
|
|
## Pull Requests
|
|
|
|
- Link the related issue in your PR description, if any
|
|
- Keep PRs focused — one feature or fix per PR
|
|
- Self-review before requesting review
|
|
- Run the tests that apply to what you touched (see below) and confirm the app still launches and behaves correctly in Xcode
|
|
|
|
### Testing
|
|
|
|
- **`OutlineKit`** (the REST client package) has real unit test coverage:
|
|
```bash
|
|
cd OutlineKit && swift test
|
|
```
|
|
- **The `Outpost` app target** has no meaningful CLI build path — `xcodebuild` from the command line is not a reliable way to verify it in this project's current setup. Build and run through Xcode, and manually verify the feature you changed (and anything obviously adjacent) before opening a PR.
|
|
|
|
---
|
|
|
|
## Labels
|
|
|
|
Issues and PRs use two label prefixes:
|
|
|
|
- `type:` — what kind of change/issue this is (`type: bug`, `type: docs`, `type: security`, ...)
|
|
- `priority:` — how urgent it is (used mainly for security reports)
|
|
|
|
---
|
|
|
|
## Questions
|
|
|
|
Open an issue — this is a single-repo project, there's no separate issue tracker to route to.
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
Outpost is licensed under the [Business Source License 1.1](./LICENSE), not a traditional OSI open-source license — see the [README's License section](./README.md#license) for what that means in practice. By submitting a PR, you agree your contribution is licensed under the same terms as the rest of the project.
|