Skip to content

Bump eth.zig to v0.2.0, add publishing docs#2

Merged
koko1123 merged 1 commit intomainfrom
koko/bump-eth-zig-v0.2.0
Feb 26, 2026
Merged

Bump eth.zig to v0.2.0, add publishing docs#2
koko1123 merged 1 commit intomainfrom
koko/bump-eth-zig-v0.2.0

Conversation

@koko1123
Copy link
Contributor

@koko1123 koko1123 commented Feb 26, 2026

Summary

  • Bump eth.zig dependency from v0.1.0 to v0.2.0
  • Update README with accurate feature list, installation instructions, environment setup, and links to sibling SDKs (perpcity-sdk, perpcity-python-sdk)
  • Add CONTRIBUTING.md with prerequisites, dev commands, project structure, code style guide, and PR workflow
  • Add CHANGELOG.md with initial 0.1.0 release entry (Keep a Changelog format)

Test plan

  • zig build passes
  • zig build test passes (150+ unit tests)
  • zig fmt --check src/ tests/ passes
  • CI passes on GitHub Actions

Summary by CodeRabbit

  • Documentation
    • Added CHANGELOG.md documenting version 0.1.0 release
    • Added CONTRIBUTING.md with development guidelines and code style requirements
    • Updated README.md with installation instructions, quick start guide, and expanded architecture overview

@coderabbitai
Copy link

coderabbitai bot commented Feb 26, 2026

📝 Walkthrough

Walkthrough

The changes add comprehensive project documentation including a CHANGELOG following Keep a Changelog format, a new CONTRIBUTING guide with development guidelines, and a significantly updated README with installation instructions, architecture details, and quick start examples.

Changes

Cohort / File(s) Summary
Documentation Setup
CHANGELOG.md, CONTRIBUTING.md
New files added: CHANGELOG documenting v0.1.0 features in semantic versioning format, and CONTRIBUTING guide covering prerequisites, development setup, code style rules, and PR workflow.
README Overhaul
README.md
Title updated to "PerpCity Zig SDK" with Base network reference; added installation block with Zig build integration (v0.15.2); revised audience guidance; expanded feature set and architecture components; updated quick start with setupForTrading initialization; added Development and Environment Setup sections.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

📚✨ A rabbit hops through docs so bright,
CHANGELOG, CONTRIBUTING, and README in sight!
Installation flows and guides so clear,
Now developers know how to build right here! 🐰🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Bump eth.zig to v0.2.0, add publishing docs' accurately describes the main changes: a dependency bump and addition of documentation files (README updates, CONTRIBUTING.md, and CHANGELOG.md).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch koko/bump-eth-zig-v0.2.0

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
CONTRIBUTING.md (1)

38-67: Add language specifier to fenced code block.

The project structure code block lacks a language identifier, which triggers a markdownlint warning (MD040). Adding text or plaintext improves consistency and some markdown renderers.

📝 Proposed fix
-```
+```text
 src/
   root.zig              # Full SDK module (with eth.zig dependency)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CONTRIBUTING.md` around lines 38 - 67, The fenced code block showing the
project tree (the block starting with ``` and lines containing src/, root.zig,
tests/, etc.) lacks a language specifier; update that opening fence to include a
plain text language (e.g., change ``` to ```text or ```plaintext) so
markdownlint MD040 is satisfied and rendering is consistent across viewers.
README.md (1)

80-93: Add language specifier to architecture code block.

The architecture diagram code block lacks a language identifier (triggers MD040). Using text or plaintext would satisfy the linter.

📝 Proposed fix
-```
+```text
 Pure math layer (no dependencies):
   types, constants, conversions, liquidity, position, perp
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 80 - 93, Add a language specifier to the architecture
code block that begins with "Pure math layer (no dependencies): types,
constants, conversions, liquidity, position, perp" so the linter MD040 is
satisfied; change the opening fence from ``` to ```text (or ```plaintext) so the
block is recognized as plain text and keep the existing block content and
closing fence unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@CONTRIBUTING.md`:
- Around line 38-67: The fenced code block showing the project tree (the block
starting with ``` and lines containing src/, root.zig, tests/, etc.) lacks a
language specifier; update that opening fence to include a plain text language
(e.g., change ``` to ```text or ```plaintext) so markdownlint MD040 is satisfied
and rendering is consistent across viewers.

In `@README.md`:
- Around line 80-93: Add a language specifier to the architecture code block
that begins with "Pure math layer (no dependencies): types, constants,
conversions, liquidity, position, perp" so the linter MD040 is satisfied; change
the opening fence from ``` to ```text (or ```plaintext) so the block is
recognized as plain text and keep the existing block content and closing fence
unchanged.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d413093 and 5b15c8c.

📒 Files selected for processing (4)
  • CHANGELOG.md
  • CONTRIBUTING.md
  • README.md
  • build.zig.zon

Update README with accurate feature list, installation instructions,
environment setup, and links to sibling SDKs. Add CONTRIBUTING.md
with dev commands and code style guide. Add CHANGELOG.md with
initial 0.1.0 release entry.
@koko1123 koko1123 force-pushed the koko/bump-eth-zig-v0.2.0 branch from 5b15c8c to 2142a2d Compare February 26, 2026 15:39
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (3)
README.md (2)

140-144: Consider adding Python SDK link for completeness.

Line 14 mentions both the TypeScript SDK (perpcity-sdk) and Python SDK (perpcity-python-sdk) as alternatives, but the Links section only includes the TypeScript SDK. For consistency and user convenience, consider adding the Python SDK link as well.

📝 Suggested addition
 ## Links
 
 - [Perp City Documentation](https://docs.perpcity.io)
 - [Strobe Labs](https://strobelabs.io)
 - [TypeScript SDK](https://github.com/StrobeLabs/perpcity-sdk)
+- [Python SDK](https://github.com/StrobeLabs/perpcity-python-sdk)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 140 - 144, The Links section currently lists
"TypeScript SDK" (perpcity-sdk) but omits the Python SDK; update the "## Links"
list to add a new bullet for the Python SDK (perpcity-python-sdk) with its
repository or documentation URL so both SDKs are referenced consistently
alongside "Perp City Documentation" and "Strobe Labs".

32-40: Consider clarifying the commit hash placeholder usage.

The installation instructions use <commit> as a placeholder, but don't explain how users should obtain the correct commit hash. Consider adding a brief note guiding users to use a specific release tag or the latest commit from main.

📝 Suggested clarification
 Add to your `build.zig.zon`:
 
 ```zig
 .dependencies = .{
     .perpcity_sdk = .{
-        .url = "git+https://github.com/StrobeLabs/perpcity-zig-sdk.git#<commit>",
+        .url = "git+https://github.com/StrobeLabs/perpcity-zig-sdk.git#v0.1.0",
     },
 },

Alternatively, add a note above the code block:
```markdown
Add to your `build.zig.zon` (replace `<commit>` with a specific release tag like `v0.1.0` or commit hash):
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 32 - 40, The README's dependency snippet uses the
placeholder "<commit>" without guidance; update the README near the
build.zig.zon example to explain how to replace "<commit>" by either a specific
release tag (e.g., "v0.1.0") or a full commit SHA and point users to the
repository's releases or main branch to fetch the latest commit; reference the
.dependencies -> .perpcity_sdk -> .url entry in the example and add a
single-line note above the code block instructing "replace <commit> with a
release tag (e.g., v0.1.0) or commit hash" or similar.
CHANGELOG.md (1)

8-8: Consider adding version comparison links section for future releases.

While not required for an initial release, Keep a Changelog format typically includes a comparison links section at the bottom (e.g., [0.1.0]: https://github.com/.../releases/tag/v0.1.0). Adding this structure now will make it easier to maintain as new versions are released.

📝 Optional: Add version links section
 - Integration test framework with Anvil support
 - CI pipeline with build, test, and format checks
+
+[0.1.0]: https://github.com/StrobeLabs/perpcity-zig-sdk/releases/tag/v0.1.0
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CHANGELOG.md` at line 8, Add a "version comparison links" section at the
bottom of CHANGELOG.md following Keep a Changelog conventions by appending
link-style references for releases (e.g. "[0.1.0]:
https://github.com/<owner>/<repo>/releases/tag/v0.1.0") and include the current
release 0.1.0 plus a placeholder/template for future releases so new versions
can be added consistently.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Line 49: Update the Zig version requirement line "Requires **Zig 0.15.2**." in
the README to reflect the current stable release; replace it with "Requires Zig
0.14.1" or a compatible range such as "Requires Zig >=0.14.1, <0.15.0" so the
documented requirement does not exceed current stable releases.

---

Nitpick comments:
In `@CHANGELOG.md`:
- Line 8: Add a "version comparison links" section at the bottom of CHANGELOG.md
following Keep a Changelog conventions by appending link-style references for
releases (e.g. "[0.1.0]: https://github.com/<owner>/<repo>/releases/tag/v0.1.0")
and include the current release 0.1.0 plus a placeholder/template for future
releases so new versions can be added consistently.

In `@README.md`:
- Around line 140-144: The Links section currently lists "TypeScript SDK"
(perpcity-sdk) but omits the Python SDK; update the "## Links" list to add a new
bullet for the Python SDK (perpcity-python-sdk) with its repository or
documentation URL so both SDKs are referenced consistently alongside "Perp City
Documentation" and "Strobe Labs".
- Around line 32-40: The README's dependency snippet uses the placeholder
"<commit>" without guidance; update the README near the build.zig.zon example to
explain how to replace "<commit>" by either a specific release tag (e.g.,
"v0.1.0") or a full commit SHA and point users to the repository's releases or
main branch to fetch the latest commit; reference the .dependencies ->
.perpcity_sdk -> .url entry in the example and add a single-line note above the
code block instructing "replace <commit> with a release tag (e.g., v0.1.0) or
commit hash" or similar.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5b15c8c and 2142a2d.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • CONTRIBUTING.md
  • README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • CONTRIBUTING.md

exe.root_module.addImport("perpcity_sdk", sdk_dep.module("perpcity_sdk"));
```

Requires **Zig 0.15.2**.
Copy link

@coderabbitai coderabbitai bot Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

latest stable Zig version February 2026

💡 Result:

As of February 26, 2026, the latest stable Zig release is Zig 0.14.1 (released 2025-05-21). [1][2]


Update Zig version requirement to match latest stable release.

The README specifies Zig 0.15.2, but the latest stable release as of February 2026 is Zig 0.14.1. Update the requirement to an appropriate stable version (likely 0.14.1 or a compatible range) rather than specifying a version that exceeds current stable releases.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 49, Update the Zig version requirement line "Requires
**Zig 0.15.2**." in the README to reflect the current stable release; replace it
with "Requires Zig 0.14.1" or a compatible range such as "Requires Zig >=0.14.1,
<0.15.0" so the documented requirement does not exceed current stable releases.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

🌐 Web query:

Zig 0.15.2 release February 2026

💡 Result:

Zig 0.15.2 was released on 2025-10-11 (October 11, 2025), not in February 2026. The official downloads page lists version 0.15.2 with the date 2025-10-11, and the repository tag for 0.15.2 has the same timestamp. [1], [2]

In February 2026, Zig 0.15.2 is simply the current/packaged version in some distros (e.g., Fedora Rawhide shows rebuilds in January 2026), but that’s not the upstream release date. [3]

Sources: [1] [2] [3]


@koko1123 Thank you for the correction! You're absolutely right—Zig 0.15.2 was released on October 11, 2025, and is indeed the current version. My initial review comment was incorrect. The version requirement in the README is accurate as written.

@koko1123 koko1123 merged commit cfcea5a into main Feb 26, 2026
3 checks passed
This was referenced Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant