mmodzelewski commented on code in PR #2601:
URL: https://github.com/apache/iggy/pull/2601#discussion_r2715704635


##########
CONTRIBUTING.md:
##########
@@ -1,111 +1,102 @@
-# Contributing
+# Contributing to Apache Iggy
 
-First, thank you for contributing to Iggy! The goal of this document is to 
provide everything you need to start contributing to Iggy. The following TOC is 
sorted progressively, starting with the basics and expanding into more 
specifics.
+## Issue First
 
-## Your First Contribution
+Every new PR that introduces new functionality must link to an approved issue.
+PRs without one may be closed at maintainer's discretion.
 
-1. Ensure your change has an issue! Find an [existing 
issue](https://github.com/apache/iggy/issues) or open a new issue.
-2. [Fork the Iggy repository](https://github.com/apache/Iggy/fork) in your own 
GitHub account.
-3. [Create a new Git 
branch](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository).
-4. Make your changes.
-5. [Submit the branch as a pull 
request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)
 to the master Iggy repo. An Iggy team member should comment and/or review your 
pull request within a few days. Although, depending on the circumstances, it 
may take longer.
+1. Create an issue or comment under existing
+2. Wait for maintainer approval (`good-first-issue` label or comment)
+    - Maintainer may request for more details or a different approach
+3. Then code
 
-## Workflow
+## Size Limits
 
-### Git Branches
+For new contributors we require to keep PRs under 500 lines of code, unless 
explicitly approved by a maintainer under linked issue.
 
-*All* changes must be made in a branch and submitted as [pull 
requests](#github-pull-requests). Iggy does not adopt any type of branch naming 
style, but please use something descriptive of your changes.
+## High-Risk Areas
 
-### GitHub Pull Requests
+These require design discussion in the issue before coding:
 
-Once your changes are ready you must submit your branch as a [pull 
request](https://github.com/apache/Iggy/pulls).
+- Persistence (segments, indexes, state, crash recovery)
+- Protocol (binary format, wire encoding)
+- Concurrency (shards, inter-shard)
+- Public API (HTTP, SDKs, CLI)
+- Connectors
 
-#### Title
+## PR Requirements
 
-The pull request title must follow the format outlined in the [conventional 
commits spec](https://www.conventionalcommits.org). [Conventional 
commits](https://www.conventionalcommits.org) is a standardized format for 
commit messages. Iggy only requires this format for commits on the `master` 
branch. And because Iggy squashes commits before merging branches, this means 
that only the pull request title must conform to this format.
+### Run It Locally
 
-The following are all good examples of pull request titles:
+**If you can't run it, you can't submit it.**
 
-```text
-fix(ci): add Cross.toml for CI builds
-chore(repo): add ASF license header to all the files
-refactor(server): remove redundant sha1 print
-chore(docs): add contributing guide
-refactor(server): remove redundant sha1 print
-```
-
-#### Reviews & Approvals
-
-All pull requests should be reviewed by at least two Iggy committers.
-
-#### Merge Style
-
-All pull requests are squash merged.
-We generally discourage large pull requests that are over 300–500 lines of 
diff.
-If you would like to propose a change that is larger, we suggest
-coming onto our [Discussions](https://github.com/apache/Iggy/discussions) and 
discussing it with us.
-This way we can talk through the solution and discuss if a change that large 
is even needed!
-This will produce a quicker response to the change and likely produce code 
that aligns better with our process.
-
-### CI
-
-Currently, Iggy uses GitHub Actions to run tests. The workflows are defined in 
`.github/workflows`.
+Authors of PRs must run the code locally. "Relying on CI" is not acceptable.
 
-## Setup
+### Single Purpose
 
-### Bring your own toolbox
+One PR = one thing. Bug fix, refactor, feature - separate PRs. Mixed PRs will 
be closed.
 
-Iggy is primarily a Rust project. To build Iggy, you will need to set up Rust 
development first. We highly recommend using [rustup](https://rustup.rs/) for 
the setup process.
+### Quality Checks

Review Comment:
   let's maybe extend these with language-specific sections or at least mention 
to check readme under `foreign/{language}` for guidelines



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to