Bump eth.zig to v0.2.0, add publishing docs#2
Conversation
📝 WalkthroughWalkthroughThe 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
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 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
textorplaintextimproves 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
textorplaintextwould 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.
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.
5b15c8c to
2142a2d
Compare
There was a problem hiding this comment.
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
📒 Files selected for processing (3)
CHANGELOG.mdCONTRIBUTING.mdREADME.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**. |
There was a problem hiding this comment.
🧩 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.
There was a problem hiding this comment.
0.15.x is the default release: https://github.com/ziglang/zig/releases/tag/0.15.1
There was a problem hiding this comment.
🧩 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.
Summary
Test plan
zig buildpasseszig build testpasses (150+ unit tests)zig fmt --check src/ tests/passesSummary by CodeRabbit