Skip to content

Update DEVELOPMENT.md - #3236

Merged
kronosapiens merged 5 commits into
mainfrom
maint/update-development
Jun 10, 2025
Merged

Update DEVELOPMENT.md#3236
kronosapiens merged 5 commits into
mainfrom
maint/update-development

Conversation

@kronosapiens

@kronosapiens kronosapiens commented Jun 3, 2025

Copy link
Copy Markdown
Contributor

While setting up my Dojo development environment, I noticed that some of the instructions were inaccurate or out-of-date. I have done my best to improve the information, making it easier for new developers to contribute to Dojo.

I would appreciate someone double-checking my information and letting me know if I've overlooked anything.

Summary by CodeRabbit

  • Documentation

    • Improved the development setup guide with clearer system prerequisites, detailed local testing instructions, artifact rebuilding steps, and troubleshooting tips, distinctly separating development setup from user installation.
  • Chores

    • Enhanced the test artifact rebuild process to verify the presence of the Katana binary and ensure its consistent use during database artifact generation.

@kronosapiens kronosapiens changed the title Update DEVELOPMENT.md with new instructions Update DEVELOPMENT.md Jun 3, 2025
@kronosapiens kronosapiens added the documentation Improvements or additions to documentation label Jun 3, 2025
@coderabbitai

coderabbitai Bot commented Jun 3, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Ohayo sensei! This update revises the development setup documentation to clarify its focus on Dojo development, restructures instructions for environment preparation and testing, and adds guidance for rebuilding test artifacts. The test artifact rebuild script is enhanced to ensure a consistent Katana binary is used during database generation, with error handling if Katana is missing.

Changes

File(s) Summary
DEVELOPMENT.md Reorganized and clarified development setup instructions; expanded testing section; added detailed guidance on rebuilding test artifacts including Katana setup and troubleshooting.
scripts/rebuild_test_artifacts.sh Added conditional logic to verify and copy Katana binary to /tmp/katana before test DB generation; errors out if Katana is not found in PATH.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant Repo
    participant Katana Binary
    participant Test Runner

    Developer->>Repo: Clone repository
    Developer->>Repo: Change to repo directory
    Developer->>Test Runner: Run tests via nextest
    Test Runner->>Katana Binary: Use /tmp/katana for test DB generation
    Note over Test Runner,Katana Binary: If /tmp/katana missing, copy from system katana
    Test Runner->>Repo: Execute tests
Loading

Possibly related PRs

Suggested reviewers

  • glihm
  • kariy

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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 (8)
DEVELOPMENT.md (7)

3-4: Refine introductory phrasing for clarity
Ohayo sensei! The intro could benefit from a slight grammatical tweak—adding the article “the” and using more formal wording.

- This guide outlines the steps for setting up a development environment for Dojo itself.
+ This guide outlines the steps for setting up the development environment for Dojo itself.
- If you want to use Dojo to make things, follow the [Dojo Installation guide](https://book.dojoengine.org/installation) instead.
+ If you want to use Dojo to build applications, follow the [Dojo Installation Guide](https://book.dojoengine.org/installation) instead.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ...etting up a development environment for Dojo itself. If you want to use Dojo to make...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


15-15: Clarify Linux dependency note
Consider rephrasing the Linux distro note for brevity and consistency, e.g.:

> Additional system packages may be required per Linux distribution.

22-24: Remove redundant in-block comment
The code block’s comment repeats the step heading. You can streamline by removing # Clone and enter the repo and relying on the numbered heading.

- # Clone and enter the repo
  git clone https://github.com/dojoengine/dojo.git
- cd dojo
+ cd dojo

29-31: Document nextest installation
It’d help newcomers if we add how to install nextest. For example:

cargo install cargo-nextest --version <latest_version>

60-60: Add missing comma and style upgrade
Recommend adding a comma and capitalizing “DB” for consistency:

- If you modified the `dojo-core` or `dojo-lang` crates you must rebuild the db artifacts.
+ If you modified the `dojo-core` or `dojo-lang` crates, you must rebuild the DB artifacts.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~60-~60: A comma might be missing here.
Context: ...modified the dojo-core or dojo-lang crates you must rebuild the db artifacts. This...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


76-78: Make Katana clone instruction explicit
The in-script comment is generic. Specify the Katana repo to avoid confusion:

- # Clone and enter the repo
+ # Clone the Katana repository and enter it

94-97: Polish release section language
For clarity, define “semver” and unify casing:

- Propose a new release by manually triggering the `release-dispatch` github action. The version value can be an semver or a level: `[patch, minor, major]`.
+ Propose a new release by manually triggering the `release-dispatch` GitHub Action. The version may be a semantic version (e.g., `1.2.3`) or a bump level (`patch`, `minor`, `major`).
🧰 Tools
🪛 LanguageTool

[misspelling] ~94-~94: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...github action. The version value can be an semver or a level: `[patch, minor, majo...

(EN_A_VS_AN)


[uncategorized] ~96-~96: Possible missing comma found.
Context: ...low will create a PR with the versioned repo which will trigger the release flow and...

(AI_HYDRA_LEO_MISSING_COMMA)

scripts/rebuild_test_artifacts.sh (1)

1-2: Enforce strict mode for reliability
Adding strict flags will cause the script to fail early on errors and undefined variables.

+ set -euo pipefail
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6c41649 and 00146bc.

⛔ Files ignored due to path filters (4)
  • crates/dojo/core-cairo-test/Scarb.lock is excluded by !**/*.lock
  • examples/simple/Scarb.lock is excluded by !**/*.lock
  • examples/spawn-and-move/Scarb.lock is excluded by !**/*.lock
  • spawn-and-move-db.tar.gz is excluded by !**/*.gz
📒 Files selected for processing (2)
  • DEVELOPMENT.md (1 hunks)
  • scripts/rebuild_test_artifacts.sh (1 hunks)
🧰 Additional context used
🪛 LanguageTool
DEVELOPMENT.md

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ...etting up a development environment for Dojo itself. If you want to use Dojo to make...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~60-~60: A comma might be missing here.
Context: ...modified the dojo-core or dojo-lang crates you must rebuild the db artifacts. This...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: fmt

Comment thread scripts/rebuild_test_artifacts.sh
@kronosapiens
kronosapiens force-pushed the maint/update-development branch from c50585c to a26a93b Compare June 3, 2025 17:35
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@kronosapiens
kronosapiens force-pushed the maint/update-development branch from a26a93b to cd839f5 Compare June 3, 2025 17:37

@kariy kariy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for this. While you're at it, can you also mention that katana is also a dependency for running the tests.

Comment thread DEVELOPMENT.md Outdated
Comment thread DEVELOPMENT.md
Comment on lines +75 to +84
```sh
# Clone and enter the repo
git clone https://github.com/dojoengine/katana.git
cd katana

# Build a new katana binary from source
cargo build --bin katana -r

# Copy the binary to the /tmp/ directory
cp target/release/katana /tmp/

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

not sure abt this but i believe for generating the test db, it only needs to be available at $PATH

cc @remybar @glihm

@kronosapiens kronosapiens Jun 6, 2025

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The rebuild_tests_artifacts script specifically look in /tmp/ for the binary. Idk if it works if it's only on the path. I'd be happy to re-work it to use any katana but I don't want to change conventions if folks like things the way they are.

Comment thread spawn-and-move-db.tar.gz

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

i don't think this should be affected ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'm guessing it got bumped b/c of Dojo 1.5.1 in the spawn-and-move/Scarb.lock change. What do you think?

Comment thread DEVELOPMENT.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (4)
DEVELOPMENT.md (4)

3-4: Clarify guide scope
Ohayo sensei, consider rephrasing “for Dojo itself” to something like “for developing the Dojo codebase” to make it crystal clear this isn’t the end-user installation guide.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ...etting up a development environment for Dojo itself. If you want to use Dojo to make...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


6-15: Enhance System prerequisites section
Ohayo sensei, the list is solid, but you might add a brief note on why the VS Code extension is recommended (e.g., Cairo syntax support) and emphasize that full install steps live in the Dojo Installation guide.


17-25: Streamline clone instructions
Ohayo sensei, the two-step clone and cd dojo is clear, but you could combine them (git clone … && cd dojo) or drop the inline comment since the commands are self-explanatory.


58-63: Document rebuild prerequisites & fix punctuation
Ohayo sensei, add a comma after “crates” on line 60 (“crates, you must rebuild…”), and consider mentioning that you can set KATANA_RUNNER_BIN to override which Katana binary rebuild_test_artifacts.sh uses.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~60-~60: A comma might be missing here.
Context: ...modified the dojo-core or dojo-lang crates you must rebuild the db artifacts. This...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a26a93b and 7afe458.

📒 Files selected for processing (2)
  • DEVELOPMENT.md (1 hunks)
  • scripts/rebuild_test_artifacts.sh (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/rebuild_test_artifacts.sh
🧰 Additional context used
🪛 LanguageTool
DEVELOPMENT.md

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ...etting up a development environment for Dojo itself. If you want to use Dojo to make...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~60-~60: A comma might be missing here.
Context: ...modified the dojo-core or dojo-lang crates you must rebuild the db artifacts. This...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: fmt
🔇 Additional comments (4)
DEVELOPMENT.md (4)

27-31: Clear test runner instructions
Ohayo sensei, the intro to nextest and the DB artifact note are concise and on point—this will help new contributors get up and running.


34-42: Approve test commands block
Ohayo sensei, the step-by-step extraction and test commands cover both workspace-wide and per-package runs perfectly.


66-85: Approve rebuild artifact commands
Ohayo sensei, the primary and fallback Katana build instructions are thorough and clear—contributors will know exactly how to rebuild the DB artifacts.


89-90: Approve Bun dependency note
Ohayo sensei, the reminder about Bun and the link to Katana’s README cover the final piece of the rebuild puzzle.

@kronosapiens
kronosapiens force-pushed the maint/update-development branch from 7d69719 to 5f0e166 Compare June 9, 2025 20:59

@glihm glihm left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Minor comments and let's go. Thank you @kronosapiens for the rewording there and adding the missing info for a flawless run. 👍

Comment thread DEVELOPMENT.md Outdated
Comment thread DEVELOPMENT.md Outdated
Comment thread scripts/rebuild_test_artifacts.sh

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
DEVELOPMENT.md (1)

59-64: Duplicate: PATH‐based Katana approach

This matches previous feedback to support a Katana binary in $PATH. Good to see it applied.

🧹 Nitpick comments (3)
DEVELOPMENT.md (3)

14-17: Fix blank line inside blockquote

The blockquote on Linux distro dependencies has an empty line (line 17), triggering MD028. Remove the blank or prefix it with > to keep the quote contiguous.


23-23: Consider splitting clone and cd commands

Chaining git clone && cd is concise but can fail if clone errors. Splitting into two commands improves clarity and error visibility.


88-91: Tighten blockquote formatting

In line 88 there are two spaces before `spawn-and-move`—reduce to a single space. Also ensure consistent > prefixes for multi-line notes.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

89-89: Blank line inside blockquote
null

(MD028, no-blanks-blockquote)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5f0e166 and fe3d91a.

📒 Files selected for processing (1)
  • DEVELOPMENT.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
DEVELOPMENT.md

89-89: Blank line inside blockquote
null

(MD028, no-blanks-blockquote)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: fmt
🔇 Additional comments (9)
DEVELOPMENT.md (9)

3-5: ohayo sensei – Clarify introduction split of dev vs usage

The new intro clearly separates Dojo development from end-user usage. Nice touch!


6-7: Approve heading rename for clarity

Renaming “Prerequisites” to “System prerequisites” better scopes the section.


10-12: Approve addition of Katana and VS Code extension

Listing Katana as a core dependency and providing an optional Cairo syntax highlighter improves onboarding.


18-18: Approve environment setup heading

“## Setting up your environment” clearly scopes the next steps.


33-41: Approve test commands block

The steps for preparing the DB artifact and running all or single‐package tests are clear and accurate.


43-50: Approve “Testing your changes” section

Local test instructions match CI workflow and reinforce best practices before PR submission.


52-58: Approve CI & devcontainer info

Pointing to the workflow file and devcontainer details gives newcomers full context.


67-69: Approve rebuild script invocation

Instructions to invoke scripts/rebuild_test_artifacts.sh are well-positioned and clear.


73-84: Approve build-from-source instructions

The step-by-step Katana build & /tmp copy is comprehensive.

Comment thread DEVELOPMENT.md
@kronosapiens
kronosapiens force-pushed the maint/update-development branch from fe3d91a to 2f6c34c Compare June 10, 2025 19:31

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
DEVELOPMENT.md (1)

26-31: Add installation step for nextest
We reference nextest without showing how to install it. Please include a prerequisite command such as cargo install cargo-nextest to ensure it's available.

🧹 Nitpick comments (5)
DEVELOPMENT.md (5)

6-12: System prerequisites expanded appropriately
The new heading and added dependencies (Katana via Dojo, optional VS Code Cairo extension) improve clarity. Consider specifying minimum supported versions for Rust, Cairo, and Katana to prevent environment mismatches.


56-57: Devcontainer link text slight mismatch
The link text .devcontainer.json differs from the linked path .devcontainer/devcontainer.json. Consider renaming the link label to match.


64-69: Katana PATH usage clarified
Good explanation for using a PATH-installed Katana vs explicit /tmp/ copy. It may help to note supported OS platforms for this step.


71-84: Build-from-source instructions are comprehensive
The Katana build steps are detailed. Optionally, mention selecting a stable tag or release branch instead of default main to avoid unexpected changes.


88-90: Additional troubleshooting notes
The Bun dependency and Katana README link are useful. Ensure there are no blank lines inside the blockquote to satisfy markdown linting rules.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

89-89: Blank line inside blockquote
null

(MD028, no-blanks-blockquote)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fe3d91a and 2f6c34c.

📒 Files selected for processing (1)
  • DEVELOPMENT.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
DEVELOPMENT.md

89-89: Blank line inside blockquote
null

(MD028, no-blanks-blockquote)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: fmt
🔇 Additional comments (6)
DEVELOPMENT.md (6)

3-4: Guide intro clarifies purpose
Ohayo sensei! The updated intro clearly distinguishes development setup from user installation.


14-16: Reference to Installation guide is helpful
Linking back to the Dojo Installation guide ensures users can find detailed install steps.


23-23: Combine clone and cd for brevity
The one-liner git clone && cd dojo is concise and on point.


33-40: Validate test DB script and commands
Ohayo sensei! Confirm that scripts/extract_test_db.sh and scripts/rebuild_test_artifacts.sh exist and have executable permissions. Also verify that the cargo nextest run commands succeed.


43-50: Local test commands match CI configuration
The added local test instructions mirror the CI workflow. Great alignment.


59-62: Rebuilding artifacts section is clear
The new section on rebuilding database artifacts is well structured.

@kronosapiens
kronosapiens merged commit 26dd59f into main Jun 10, 2025
@kronosapiens
kronosapiens deleted the maint/update-development branch June 10, 2025 20:17
glihm added a commit that referenced this pull request Jul 3, 2025
* Fix broken getting started link in README (#3235)

* chore(versions): add torii 1.5.6

* Update DEVELOPMENT.md (#3236)

* Update DEVELOPMENT.md with new instructions

* Update scripts/rebuild_test_artifacts.sh with Rabbit suggestion

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Respond to review comments

* Respond to review comments II

* Respond to review comments III

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: update rpc spec to 0.8 (#3179)

* release(prepare): v1.6.0-alpha.0 (#3241)

Prepare release: v1.6.0-alpha.0

Co-authored-by: glihm <glihm@users.noreply.github.com>

* chore(versions): bump katana to 1.6.0-alpha.0

* fix(dojoup): remove new line in the source cmd (#3244)

fix: fixed new line in the source cmd

* chore: edited the build badge and its link (#3221)

Co-authored-by: Ammar Arif <evergreenkary@gmail.com>

* chore(devcontainer): update image: v1.6.0-alpha.0 (#3242)

Update devcontainer image: v1.6.0-alpha.0

Co-authored-by: glihm <glihm@users.noreply.github.com>

* chore: add katana 1.5.4 (#3245)

* chore: add the missing backticks in the comments (#3243)

Signed-off-by: one230six <723682061@qq.com>

* fix(bindgen): use world namespace for imported models in TypeScript S… (#3249)

* fix(bindgen): filter out Value models (#3248)

* fix(bindgen): fix ts bytearray type mapping (#3247)

* chore: update katana versions (#3253)

add katana versions

* sozo(unrealengine): handle UE5.6 and Dojo 1.5 (#3252)

* fix(sozo): assert caller permission with match (#3254)

* handle call_contract_syscall() result for better panic trace

* avoid using 0 as caller address

* remove temporarly the RPC version check.

Currently, Katana uses the new RPC types, without
bumping the spec version. To ensure we can still use
sozo with sepolia/mainnet and Katana, Sozo will not check
the RPC version for now

* update test dbs

---------

Co-authored-by: glihm <dev@glihm.net>

* feat(sozo): create standalone bindgen command (#3246)

* feat: create standalone bindgen command

* cleanup unused inputs

* remove dbg

* add meaningful error if project is not built

---------

Co-authored-by: glihm <dev@glihm.net>

* feat(sozo): add MCP sever (#3256)

* feat(sozo): add mvp for mcp server

* refacto: restructure MCP server

* evaluate changes using official rust sdk

* feat(mcp): add stdio support

* refacto with rmcp crate

* wip

* bump rmcp

* add testing support

* wip

* refacto

* cleanup

* add instructions

* add instructions

* wip test

* refacto tests

* add debugging

* ignore test with katana at the moment

* fix typos and sozo path

* refacto uri parsing

* remove dbg

* disable test that should be run with katana

* fix test, windows fails because of new reqwest version

* refactor(types): schema json sql value (#3257)

* refactor(types): schema json sql value

* remove excess comma

* fix clippy

---------

Co-authored-by: glihm <dev@glihm.net>

* chore: bump cairo packages to 1.6.0-alpha.0

* fix(mcp): ensure test is using latest version

* split scarb metadata ext in a different crate for dependencies

* wip: controller issue

* wip

* wip: resolve conflicts and update deps

* cleanup

* lint

* wip

* wip tests

* fix all tests

* rebuild test db

* fix: run linter

* fix slot dep with github commit

* fix clippy

* fix inspect by adding missing json format

* fix mcp formatting

* fix stdio_test

* use sozo from path

---------

Signed-off-by: one230six <723682061@qq.com>
Co-authored-by: Ritik <ritikverma0050@gmail.com>
Co-authored-by: Daniel Kronovet <kronovet@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ammar Arif <evergreenkary@gmail.com>
Co-authored-by: Tarrence van As <tarrencev@users.noreply.github.com>
Co-authored-by: glihm <glihm@users.noreply.github.com>
Co-authored-by: Benjamin <158306087+bengineer42@users.noreply.github.com>
Co-authored-by: braveocheretovych <braveocheretovych@gmail.com>
Co-authored-by: one230six <163239332+one230six@users.noreply.github.com>
Co-authored-by: Brother MartianGreed <valentin@pupucecorp.com>
Co-authored-by: Corentin Cailleaud <corentin.cailleaud@caillef.com>
Co-authored-by: Rémy Baranx <remy.baranx@gmail.com>
Co-authored-by: Larko <59736843+Larkooo@users.noreply.github.com>
glihm added a commit that referenced this pull request Jul 14, 2025
…3266)

* feat: add external contract registering in the world (#3195)

* Use the world as external contract reference and manage upgrades with sozo

* update spawn-and-move with new external contract features

* update test artifacts + world_address in dojo_dev.toml

* export entrypoints + fix tests + remove TODO RBA

* restore test_metadata_updated_event test

* fix tests

* rabbit improvements

* fix test

* feat: add proc macros (#3212)

* WIP

* add macros + core-tests crates + update them from 1.6.0

* update scripts/cairo_fmt.sh + fix fmt

* update CI + Scarb.toml files

* fix fmt

* change from 2.11.2 to 2.11.4

* fix scarb issue + fmt

* one testing library for each test runner (cairo, snfoundry) + update examples

* fix fmt

* update comment

* chore: apply patches to sync exact same commits than scarb

* fix(ci): update rust-toolchain version

* fix(ci): bump clippy to use nightly compatible with 1.86

* fix: clippy and fmt

* update spawn-and-move to use dojo-snf-test

* update world address

---------

Co-authored-by: glihm <dev@glihm.net>

* Scarb crate removing (#3223)

* introduce scarb_interop crate

* handle missing scarb

* introduce metadata instead of workspace to manage dojo related paths and config

* add stats back and ensure profile is propagated until build not only metadata

* cleanup and add error message if SCARB is not set correctly

* add features + packages to build command

* update scarb build/test command

* refactor packages/features

* fix utils.rs + enable auth command

* fix rust fmt

* re-enable sozo commands

* re-enable the last sozo commands + new version command

* fix issue with conflicts_with_all

* check if manifest_path does not exist

* set run() functions as async instead of using tokio

* update init command management

* refactor metadata loading + dead code cleaning

* add build_simple_dev() function to be used to easily build spawn-and-move for tests/benches

* update tests + fmt + clippy

* remove dojo/lang

* remove useless sozo files

* tiny change

* fix CI

* use scarb nightly in CI

* fix manifest_path/manifest_dir issue

* fix fmt

* update snfoundry version + update tests accordingly + add cairo-profiler to .tool-versions

---------

Co-authored-by: glihm <dev@glihm.net>

* feat: add DojoStore trait to handle storage serialization (#3219)

* add DojoStore management

* fix rust fmt after abigen

* fix ModelReader

* fix fmt

* set DojoStore functions as inline(always)

* update test artifacts

* fix fmt

* remove dojo-core test from CI as all tests are now in core-tests

* feat: add block number for external contract events (#3224)

* add block_number to ExternalContractRegistered/ExternalContractUpgraded events

* remove useless println

* restore external_contracts tests + update with block_number

* update test artifacts

* fix clippy

* rework: handle block_number

* fix world.dns for external contract + update tests

* update sozo events with missing events

* add a self-managed external contract called from spawn-and-move

* update manifest_dev.json

* use dns_address

* fix fmt + abigen

* update test artifacts

* fix fmt

* update starkli path

* update policies

* rebuild test db

* fix: restore resource order to avoid storage conflict (#3238)

* Resource enum variant order should not change as it is used in the world storage

* fix fmt

* fix world address and test db

* fix fmt

---------

Co-authored-by: glihm <dev@glihm.net>

* fix(lang): remove warning with unit type (#3255)

fix warning with unit type for enumerations serialization generated code.

* dev: merge main in dev 1.6.0 (#3263)

* Fix broken getting started link in README (#3235)

* chore(versions): add torii 1.5.6

* Update DEVELOPMENT.md (#3236)

* Update DEVELOPMENT.md with new instructions

* Update scripts/rebuild_test_artifacts.sh with Rabbit suggestion

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Respond to review comments

* Respond to review comments II

* Respond to review comments III

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: update rpc spec to 0.8 (#3179)

* release(prepare): v1.6.0-alpha.0 (#3241)

Prepare release: v1.6.0-alpha.0

Co-authored-by: glihm <glihm@users.noreply.github.com>

* chore(versions): bump katana to 1.6.0-alpha.0

* fix(dojoup): remove new line in the source cmd (#3244)

fix: fixed new line in the source cmd

* chore: edited the build badge and its link (#3221)

Co-authored-by: Ammar Arif <evergreenkary@gmail.com>

* chore(devcontainer): update image: v1.6.0-alpha.0 (#3242)

Update devcontainer image: v1.6.0-alpha.0

Co-authored-by: glihm <glihm@users.noreply.github.com>

* chore: add katana 1.5.4 (#3245)

* chore: add the missing backticks in the comments (#3243)

Signed-off-by: one230six <723682061@qq.com>

* fix(bindgen): use world namespace for imported models in TypeScript S… (#3249)

* fix(bindgen): filter out Value models (#3248)

* fix(bindgen): fix ts bytearray type mapping (#3247)

* chore: update katana versions (#3253)

add katana versions

* sozo(unrealengine): handle UE5.6 and Dojo 1.5 (#3252)

* fix(sozo): assert caller permission with match (#3254)

* handle call_contract_syscall() result for better panic trace

* avoid using 0 as caller address

* remove temporarly the RPC version check.

Currently, Katana uses the new RPC types, without
bumping the spec version. To ensure we can still use
sozo with sepolia/mainnet and Katana, Sozo will not check
the RPC version for now

* update test dbs

---------

Co-authored-by: glihm <dev@glihm.net>

* feat(sozo): create standalone bindgen command (#3246)

* feat: create standalone bindgen command

* cleanup unused inputs

* remove dbg

* add meaningful error if project is not built

---------

Co-authored-by: glihm <dev@glihm.net>

* feat(sozo): add MCP sever (#3256)

* feat(sozo): add mvp for mcp server

* refacto: restructure MCP server

* evaluate changes using official rust sdk

* feat(mcp): add stdio support

* refacto with rmcp crate

* wip

* bump rmcp

* add testing support

* wip

* refacto

* cleanup

* add instructions

* add instructions

* wip test

* refacto tests

* add debugging

* ignore test with katana at the moment

* fix typos and sozo path

* refacto uri parsing

* remove dbg

* disable test that should be run with katana

* fix test, windows fails because of new reqwest version

* refactor(types): schema json sql value (#3257)

* refactor(types): schema json sql value

* remove excess comma

* fix clippy

---------

Co-authored-by: glihm <dev@glihm.net>

* chore: bump cairo packages to 1.6.0-alpha.0

* fix(mcp): ensure test is using latest version

* split scarb metadata ext in a different crate for dependencies

* wip: controller issue

* wip

* wip: resolve conflicts and update deps

* cleanup

* lint

* wip

* wip tests

* fix all tests

* rebuild test db

* fix: run linter

* fix slot dep with github commit

* fix clippy

* fix inspect by adding missing json format

* fix mcp formatting

* fix stdio_test

* use sozo from path

---------

Signed-off-by: one230six <723682061@qq.com>
Co-authored-by: Ritik <ritikverma0050@gmail.com>
Co-authored-by: Daniel Kronovet <kronovet@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ammar Arif <evergreenkary@gmail.com>
Co-authored-by: Tarrence van As <tarrencev@users.noreply.github.com>
Co-authored-by: glihm <glihm@users.noreply.github.com>
Co-authored-by: Benjamin <158306087+bengineer42@users.noreply.github.com>
Co-authored-by: braveocheretovych <braveocheretovych@gmail.com>
Co-authored-by: one230six <163239332+one230six@users.noreply.github.com>
Co-authored-by: Brother MartianGreed <valentin@pupucecorp.com>
Co-authored-by: Corentin Cailleaud <corentin.cailleaud@caillef.com>
Co-authored-by: Rémy Baranx <remy.baranx@gmail.com>
Co-authored-by: Larko <59736843+Larkooo@users.noreply.github.com>

* feat(core): use metaprogramming for tuple and fixed size array Introspect and DojoStore (#3260)

* reuse Starkware metaprogramming stuff to manage tuples

* fix fmt + clippy + artifacts

* use metaprogramming to handle tuple introspect

* fix fmt + clippy + artifacts

* add fixed size array support

* update dojo-world

* update abigen + artifacts after rebase

* add a sum_sizes function

* update artifacts

* tooling: add cairo-bench tool + bench tests (#3240)

* add cairo-bench tool

* add bench tests

* first optimisation batch

* fix fmt

* add license info

* update artifacts after rebase

* fix cairo-bench tests

* update artifacts

* update artifacts

* update scarb lock

---------

Co-authored-by: glihm <dev@glihm.net>

* fix(cairo-bench): use write and threshold + refactor fixed size array (#3267)

* remove update-ref-test-list argument

* add threshold parameter to cairo-bench (set to 3% by default)

* max_fee_raw and fee_estimate_multiplier don't exist anymore

* update sozo model commands for fixed size arrays

* fix fmt + clippy

* rename --update-ref to --write

* fix some tests

* fix fmt

* fix(ci): update katana to 1.6.2 for compatible db

---------

Signed-off-by: one230six <723682061@qq.com>
Co-authored-by: Rémy Baranx <remy.baranx@gmail.com>
Co-authored-by: Ritik <ritikverma0050@gmail.com>
Co-authored-by: Daniel Kronovet <kronovet@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ammar Arif <evergreenkary@gmail.com>
Co-authored-by: Tarrence van As <tarrencev@users.noreply.github.com>
Co-authored-by: glihm <glihm@users.noreply.github.com>
Co-authored-by: Benjamin <158306087+bengineer42@users.noreply.github.com>
Co-authored-by: braveocheretovych <braveocheretovych@gmail.com>
Co-authored-by: one230six <163239332+one230six@users.noreply.github.com>
Co-authored-by: Brother MartianGreed <valentin@pupucecorp.com>
Co-authored-by: Corentin Cailleaud <corentin.cailleaud@caillef.com>
Co-authored-by: Larko <59736843+Larkooo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants