Skip to content

Commit 121b46a

Browse files
authored
Merge branch 'unstable' into feat-bitpos-byte-bit-option
2 parents cf463aa + 8d02125 commit 121b46a

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

AGENTS.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@ While working on Apache Kvrocks, please remember:
88
- Only add meaningful comments when the code's behavior is difficult to understand.
99
- Add or update tests to cover externally observable behavior and regressions when you change or add functionality.
1010
- Always run the formatter before submitting changes.
11+
- For non-trivial behavior, storage format, replication, or cluster changes, first look for an existing issue, discussion, or mailing list context before implementing.
1112

1213
## Build and Development Commands
1314

1415
### Building
1516

1617
```bash
18+
# Configure with Ninja when you want faster incremental builds.
19+
# The default generator is Makefiles unless --ninja is specified.
20+
./x.py build --ninja
21+
1722
# Build kvrocks and utilities
1823
./x.py build # Build to ./build directory
1924
./x.py build -j N # Build with N parallel jobs
@@ -30,6 +35,8 @@ While working on Apache Kvrocks, please remember:
3035
./x.py fetch-deps # Fetch dependency archives
3136
```
3237

38+
If the build directory was configured with Ninja, prefer incremental rebuilds like `cd build && ninja -j16 kvrocks` instead of re-running CMake.
39+
3340
### Testing
3441

3542
```bash
@@ -40,8 +47,9 @@ While working on Apache Kvrocks, please remember:
4047
# Run Go integration tests
4148
./x.py test go
4249

43-
# Run specific Go test by path
44-
./x.py test go tests/gocase/unit/...
50+
# Re-run a specific Go test name.
51+
# x.py test go currently forwards extra flags to "go test" but still runs "./...".
52+
./x.py test go build -run TestKMetadata
4553
```
4654

4755
### Lint
@@ -159,7 +167,10 @@ Common scopes: `server`, `storage`, `commands`, `cluster`, `search`, `types`, `r
159167
## Important Notes
160168

161169
- Kvrocks aims for Redis protocol compatibility; always verify behavior against Redis when implementing or fixing commands.
162-
- All changes must pass `./x.py check format` and `./x.py check tidy`.
170+
- All changes must pass `./x.py check format`, and you should run `./x.py check tidy`, `./x.py check golangci-lint`, and the relevant tests when the touched code requires them.
163171
- Don't change public command behavior unless requested.
164172
- RocksDB is the core storage dependency; be cautious with storage-layer changes.
165173
- Adding a new column family breaks forward compatibility; avoid this if possible and prefer using existing column families.
174+
- Prefer focused patches over broad refactors when contributing.
175+
- Some website or documentation tasks may belong in the separate website repository rather than this repository.
176+
- If AI assistance is used, keep the generated changes reviewable and be able to explain and defend the final patch.

0 commit comments

Comments
 (0)