docs: expand CONTRIBUTING.md with local development setup#314
Conversation
Add sections covering prerequisites, cloning/building, running unit and e2e tests, linting/formatting, protobuf generation, and EVM precompile compilation. Also fix stale link references that pointed to kiijs-sdk instead of kiichain. Closes KiiChain#64
WalkthroughThis change updates project documentation to improve developer onboarding. The Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Expands the contributor documentation to include a step-by-step local development setup guide for the KiiChain repository, and fixes stale GitHub link references.
Changes:
- Add a new “Local Development Setup” section to
CONTRIBUTING.mdcovering prerequisites, build, tests (unit/e2e), lint/format, protobuf, and EVM precompile workflows. - Fix footer link references in
CONTRIBUTING.mdthat incorrectly pointed toKiiChain/kiijs-sdk. - Add a corresponding “Added” entry to
CHANGELOG.mdreferencing issue #64.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| CONTRIBUTING.md | Adds local dev setup documentation and corrects GitHub link references. |
| CHANGELOG.md | Records the documentation expansion in the Unreleased “Added” section. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | Tool | Version | Required | | ||
| |------|---------|----------| | ||
| | [Go](https://golang.org/dl/) | 1.24+ | Yes | | ||
| | [Git](https://git-scm.com/) | any recent | Yes | | ||
| | [GNU Make](https://www.gnu.org/software/make/) | any recent | Recommended | | ||
| | [Docker](https://docs.docker.com/get-docker/) | any recent | For e2e tests only | |
There was a problem hiding this comment.
The prerequisites table syntax has an extra leading | on each row (|| Tool | ...), which renders an empty first column in Markdown. Use standard table formatting (| Tool | Version | Required | and | --- | --- | --- |) so the table renders correctly on GitHub.
| | [Go](https://golang.org/dl/) | 1.24+ | Yes | | ||
| | [Git](https://git-scm.com/) | any recent | Yes | | ||
| | [GNU Make](https://www.gnu.org/software/make/) | any recent | Recommended | | ||
| | [Docker](https://docs.docker.com/get-docker/) | any recent | For e2e tests only | |
There was a problem hiding this comment.
This line says Docker is "for e2e tests only", but the Protobuf targets (make proto-gen/format/lint) run a Docker-based proto-builder image (see Makefile protoImage=$(DOCKER) run ...). Please update the prerequisites to reflect that Docker is also required for protobuf workflows (or document an alternative non-Docker path).
| docker build -t kiichain/kiichaind-e2e -f Dockerfile . | ||
| cd tests/e2e/docker && docker build -t kiichain/hermes-e2e:1.0.0 -f hermes.Dockerfile . | ||
| cd ../../.. |
There was a problem hiding this comment.
This doc uses raw docker build/cd ... && docker build commands for e2e images, but the Makefile already provides make docker-build-debug, make docker-build-hermes, and make docker-build-all. Referencing the Makefile targets here would reduce duplication and prevent the docs from drifting if image names/paths change.
| docker build -t kiichain/kiichaind-e2e -f Dockerfile . | |
| cd tests/e2e/docker && docker build -t kiichain/hermes-e2e:1.0.0 -f hermes.Dockerfile . | |
| cd ../../.. | |
| make docker-build-debug # Build kiichain e2e image | |
| make docker-build-hermes # Build Hermes e2e image | |
| # Or build all e2e images at once: | |
| # make docker-build-all |
| # Contribution Guidelines | ||
|
|
||
| Contributions to the Kiijs library are welcome. As a contributor, here are the guidelines we would like you to follow: | ||
| Contributions to KiiChain are welcome. As a contributor, here are the guidelines we would like you to follow: |
There was a problem hiding this comment.
The intro now refers to "KiiChain", but this file still contains references to "Kiijs" later (e.g., "The Kiijs team..." and "code under Kiijs"), which is inconsistent and confusing for contributors. Please update those remaining mentions so the project name is consistent throughout the guide.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
CONTRIBUTING.md (3)
175-175:⚠️ Potential issue | 🟡 MinorUpdate remaining "Kiijs" reference to "KiiChain".
This line still references "The Kiijs team" which is inconsistent with the terminology update made elsewhere in the document.
📝 Proposed fix
-The Kiijs team reserves the right not to accept pull requests from community members who haven't been good citizens of the community. Such behavior includes not following our [code of conduct][coc] and applies within or outside the managed channels. +The KiiChain team reserves the right not to accept pull requests from community members who haven't been good citizens of the community. Such behavior includes not following our [code of conduct][coc] and applies within or outside the managed channels.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@CONTRIBUTING.md` at line 175, Update the remaining "Kiijs" reference to "KiiChain": locate the sentence containing the exact phrase "The Kiijs team reserves the right not to accept pull requests..." and replace "The Kiijs team" with "The KiiChain team" so the document consistently uses the updated project name; ensure linkage and surrounding punctuation remain unchanged.
205-205:⚠️ Potential issue | 🟡 MinorUpdate remaining "Kiijs" reference to "KiiChain".
The API compatibility guidance still references "Kiijs" which should be updated to "KiiChain" for consistency.
📝 Proposed fix
-- Keep API compatibility in mind when you change any code under `Kiijs`. Above version `1.0.0`, breaking changes can happen across versions with different left digit. Below version `1.0.0`, they can happen across versions with different middle digit. Reviewers of your pull request will comment on any API compatibility issues. +- Keep API compatibility in mind when you change any code under `KiiChain`. Above version `1.0.0`, breaking changes can happen across versions with different left digit. Below version `1.0.0`, they can happen across versions with different middle digit. Reviewers of your pull request will comment on any API compatibility issues.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@CONTRIBUTING.md` at line 205, Replace the remaining occurrence of the project name "Kiijs" with "KiiChain" in the CONTRIBUTING.md API compatibility paragraph; specifically update the text that currently reads "Keep API compatibility in mind when you change any code under `Kiijs`." to use `KiiChain` so the documentation consistently references the correct project name.
165-165:⚠️ Potential issue | 🟡 MinorFix broken link reference.
The text references
[developing]but this link is not defined anywhere in the document.🔗 Proposed fix
Either define the link at the bottom of the document or replace the reference with the actual section:
-8. Run all tests and checks locally, as described in the [development guide][developing], and ensure they pass. This saves CI hours and ensures you only commit clean code. +8. Run all tests and checks locally, as described in the [Local Development Setup](`#local-development-setup`) section, and ensure they pass. This saves CI hours and ensures you only commit clean code.Alternatively, if a separate development guide exists, add the link definition at the bottom with the other references.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@CONTRIBUTING.md` at line 165, The markdown reference [developing] in the sentence "Run all tests and checks locally, as described in the [development guide][developing], and ensure they pass." is undefined; fix it by either adding a link definition for [developing] at the bottom alongside the other reference definitions pointing to the development guide URL or replacing the bracketed reference inline with the actual section title or relative anchor (e.g., the "development guide" heading) so the link resolves correctly; update the document so the symbol [developing] is defined and points to the intended resource.
🧹 Nitpick comments (1)
CONTRIBUTING.md (1)
98-108: Consider simplifying the Docker build commands.The current approach with
cdnavigation works but could be more maintainable.♻️ Optional refactor for clearer Docker builds
# Build the required Docker images first docker build -t kiichain/kiichaind-e2e -f Dockerfile . -cd tests/e2e/docker && docker build -t kiichain/hermes-e2e:1.0.0 -f hermes.Dockerfile . -cd ../../.. +docker build -t kiichain/hermes-e2e:1.0.0 -f tests/e2e/docker/hermes.Dockerfile tests/e2e/docker # Run e2e tests make test-e2eThis eliminates directory changes and makes the build context explicit.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@CONTRIBUTING.md` around lines 98 - 108, Update the Docker build examples in CONTRIBUTING.md to avoid changing directories: replace the two-step builds that use `cd` (the `cd tests/e2e/docker && docker build -t kiichain/hermes-e2e:1.0.0 -f hermes.Dockerfile .` line) with explicit docker build commands that set the Dockerfile path and the build context (e.g., `docker build -t kiichain/hermes-e2e:1.0.0 -f tests/e2e/docker/hermes.Dockerfile tests/e2e/docker`) so all builds are self-contained and more maintainable; keep the top-level build command and the `make test-e2e` invocation unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@CONTRIBUTING.md`:
- Line 175: Update the remaining "Kiijs" reference to "KiiChain": locate the
sentence containing the exact phrase "The Kiijs team reserves the right not to
accept pull requests..." and replace "The Kiijs team" with "The KiiChain team"
so the document consistently uses the updated project name; ensure linkage and
surrounding punctuation remain unchanged.
- Line 205: Replace the remaining occurrence of the project name "Kiijs" with
"KiiChain" in the CONTRIBUTING.md API compatibility paragraph; specifically
update the text that currently reads "Keep API compatibility in mind when you
change any code under `Kiijs`." to use `KiiChain` so the documentation
consistently references the correct project name.
- Line 165: The markdown reference [developing] in the sentence "Run all tests
and checks locally, as described in the [development guide][developing], and
ensure they pass." is undefined; fix it by either adding a link definition for
[developing] at the bottom alongside the other reference definitions pointing to
the development guide URL or replacing the bracketed reference inline with the
actual section title or relative anchor (e.g., the "development guide" heading)
so the link resolves correctly; update the document so the symbol [developing]
is defined and points to the intended resource.
---
Nitpick comments:
In `@CONTRIBUTING.md`:
- Around line 98-108: Update the Docker build examples in CONTRIBUTING.md to
avoid changing directories: replace the two-step builds that use `cd` (the `cd
tests/e2e/docker && docker build -t kiichain/hermes-e2e:1.0.0 -f
hermes.Dockerfile .` line) with explicit docker build commands that set the
Dockerfile path and the build context (e.g., `docker build -t
kiichain/hermes-e2e:1.0.0 -f tests/e2e/docker/hermes.Dockerfile
tests/e2e/docker`) so all builds are self-contained and more maintainable; keep
the top-level build command and the `make test-e2e` invocation unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 58a29604-1b12-45c2-b1cc-bea3e6a4211a
📒 Files selected for processing (2)
CHANGELOG.mdCONTRIBUTING.md
|
Hi @jhelison — friendly ping! This PR is ready for review whenever you have a moment. All CI checks are passing. Happy to address any feedback. Thanks! |
|
Hey @Thaleszh, would love to get your eyes on this when you have a moment. Thanks! |
Summary
Expand
CONTRIBUTING.mdwith a complete local development setup guide, as requested in #64.Changes
New "Local Development Setup" section
Covers every step a new contributor needs:
make build/make install(with non-Make fallback)make test-unit,make test-unit-cover,make test-race,go test ./...make test-e2emake lint,make lint-fix,make formatmake proto-gen,make proto-format,make proto-lintmake compile-evm-precompilesBug fix: stale link references
The footer link references (
[issues],[prs],[github], etc.) pointed toKiiChain/kiijs-sdkinstead ofKiiChain/kiichain. Fixed all four.Closes #64