Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ body:
attributes:
value: |
Use this template for tasks that aren't bug fixes or new features.
Small tasks (typos, broken links) can go straight to a PR without an issue — see [CONTRIBUTING.md](../../CONTRIBUTING.md).
Small tasks (typos, broken links) can go straight to a PR without an issue.

- type: textarea
id: description
Expand Down
86 changes: 15 additions & 71 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,90 +1,34 @@
# Contributing to Baserow

We appreciate your interest in contributing to Baserow. To make the process smooth for everyone, please read these guidelines before opening a pull request.
Thank you for your interest in Baserow. This document explains how you can get involved.

We're a small team. Creating a PR with some changes is easy — reviewing it thoroughly and ensuring it meets our standards takes significantly more time. These guidelines exist to make sure that effort is well spent on both sides.
## We are not accepting unsolicited pull requests

## Types of contributions
We've decided to stop accepting unsolicited external pull requests for now. Reviewing external code contributions thoroughly takes significant time, and a growing volume of low-quality, AI-generated PRs has made the process difficult to manage for our small team.

### Bug fixes
This wasn't an easy decision, and we know it affects well-intentioned contributors. See the [announcement](https://github.com/baserow/baserow/issues/5598) for the full reasoning.

1. **Open a bug issue first** with steps to reproduce and expected behavior
2. If the fix is obvious, open a PR right away. If you're unsure about the expected behavior or the right approach, wait for confirmation on the issue first.
**We will only review pull requests that were coordinated with the team in advance.** PRs opened without prior coordination will be closed without review.

PRs without a corresponding issue will be closed.
## How you can still contribute

### Features and behavior changes
There's a lot you can do that we genuinely value:

Any PR that adds new functionality or changes existing behavior — no matter how small — requires prior approval.
- **Report bugs** — open a [bug report](https://github.com/baserow/baserow/issues/new?template=bug.yml) with steps to reproduce and the expected behavior.
- **Request features** — open a [feature request](https://github.com/baserow/baserow/issues/new?template=feature_request.yml) describing what you need and why.
- **Join the discussion** — share ideas, feedback, and use cases in our [community forum](https://community.baserow.io/).

1. Check [existing issues](https://github.com/baserow/baserow/issues) first — if an approved issue for the feature already exists, reference it in your PR instead of opening a new one. Only open a new feature request if no matching issue exists.
2. **Open a feature request issue** using the [feature request template](https://github.com/baserow/baserow/issues/new?template=feature_request.yml)
3. Describe what you want to build, why and your proposed approach
4. **Wait for explicit approval** from a maintainer before writing code
5. Open your PR referencing the approved issue
Well-described issues and feedback help us shape the product and are always welcome.

PRs for features without an approved issue will be closed. This isn't about gatekeeping — it's about making sure you don't invest time in something that won't be merged.
## Want to contribute code?

### Tasks
If you have something specific in mind, contact us first through the [community forum](https://community.baserow.io/) or the contact form at https://baserow.io/contact. If we agree the change makes sense, we'll coordinate the approach with you before any code is written — only then should you open a PR.

Tasks cover everything that isn't a feature or bug fix: typo corrections, broken links, documentation updates, refactoring, dependency bumps, etc.

- **Small tasks** where the correctness is obvious on sight (typos, broken links, minor doc edits) can be submitted directly as a PR without an issue.
- **Larger tasks** that touch multiple files or require design decisions need an issue and likely approval, same as features.

If you're unsure, check whether a related issue already exists — if not, open one.

## Before you start

- Make sure your contribution either doesn't require an issue (small task) or has an approved issue (bug fix, feature, or large task). Don't write code before that.
- Check [existing issues](https://github.com/baserow/baserow/issues) to avoid duplicate work
- Fork the repository and create your branch from `develop`
- Read the quality standards below

## Pull request requirements

Your PR title must follow [Conventional Commits](https://www.conventionalcommits.org/) format — it becomes the commit message in our git history. Keep it short and focused on the **intent** of the change, not what files were touched.

Allowed prefixes: `fix:`, `feat:`, `chore:`, `docs:`. An optional scope in parentheses is encouraged: `fix(grid):`, `feat(formulas):`, `chore(deps):`.

Examples:
- `fix(forms): prevent submission with invalid rating value`
- `feat: add Cloudflare Turnstile captcha to auth`
- `chore(deps): bump requests to 2.33.0`
- `docs: update contribution guidelines`

Your PR must also include:

- **A clear description** of what was changed and why
- **How to test it** — steps a reviewer can follow to verify your changes
- **A link to the issue** in the description (e.g., `Closes #123`), when applicable
- **Tests** — backend changes need tests
- **A changelog entry** generated using the script in `changelog/`

### What will get your PR closed

- **Modifying premium or enterprise code.** The `premium/` and `enterprise/` directories contain licensed code that is not open to external contributions. PRs that touch these directories — including moving code from them into core — will be closed immediately.
- **No linked issue** for bug fixes or features (see above)
- **No description or test instructions**
- **Not following these guidelines** after being asked to

### Size guideline

Aim for focused, well-scoped PRs. As a rough guideline, we look at **lines of useful code (LOUC)** — excluding tests, boilerplate, translations, docs. A PR touching ~10 files with ~10 LOUC each is a reasonable upper bound, but complexity matters more than line count — a few lines in a critical path can be harder to review than hundreds of boilerplate. Tests and docs are excluded from LOUC but still need to be reviewed, so keep them concise and follow existing patterns. We may ask you to split a PR, reduce scope, or remove scope creep at our discretion.

## What happens after you submit

We review PRs as capacity allows.

Possible outcomes:

- **Approved and merged** — your PR meets our standards
- **Changes requested** — we'll list what needs to change. Please respond within 2 weeks; PRs with no activity after that will be closed. You can always reopen later.
- **Closed** — with an explanation of why. This is not personal — it's about priorities, alignment, and capacity. You can reopen if you resolve the issues, or open a fresh PR after incorporating our feedback.
Note that the `premium/` and `enterprise/` directories contain licensed code that is not open to external contributions.

## Quality standards

See [Code quality](docs/development/code-quality.md) for the full list of standards, linters, and testing expectations. The CI pipeline must pass and security impact must be considered.
For coordinated contributions, see [Code quality](docs/development/code-quality.md) for our standards, linters, and testing expectations. The CI pipeline must pass and the security impact of every change must be considered.

## License

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ going forward at: https://github.com/baserow/baserow.
## Get Involved

Join our forum at https://community.baserow.io/. See
[CONTRIBUTING.md](./CONTRIBUTING.md) on how to become a contributor.
[CONTRIBUTING.md](./CONTRIBUTING.md) for how to get involved.

## Installation

Expand Down
Loading
Loading