Skip to content

Releases: dojoengine/dojo

v0.6.1-alpha.0

09 Apr 12:44
f4c47ba
Compare
Choose a tag to compare
v0.6.1-alpha.0 Pre-release
Pre-release

What's Changed

  • fix: ensure events command picks the correct manifests path for ABIs by @glihm in #1777
  • style(katana-db): standardize naming for historical tables by @kariy in #1773
  • refactor(katana-db): convert StorageChangeSet into a normal table by @kariy in #1774
  • test(katana-db): ensure key/value types implement their respective traits by @kariy in #1776
  • feat(katana-db): integer set using roaring bitmap by @kariy in #1775
  • feat: add verification of the RPC version by @glihm in #1782
  • fix(messaging): update latestBlock to pending by @ybensacq in #1743
  • fix: split_u256 by @greged93 in #1793
  • chore(katana): use deps from workspace by @kariy in #1795
  • fix: add the transaction options to sozo migrate apply by @glihm in #1802
  • Prepare release: v0.6.1-alpha.0 by @tarrencev in #1803

New Contributors

Full Changelog: v0.6.0...v0.6.1-alpha.0

v0.6.0

04 Apr 22:15
fc5ad79
Compare
Choose a tag to compare

Dojo Game Engine v0.6.0 Release Notes

Welcome to the next update of the Dojo Game Engine, version 0.6.0. This release brings a suite of enhancements and new features designed to improve performance, extend functionality, and streamline development workflows. We expect this release to be available by March 29 2024.
Let's dive into what's new:

Katana: Enhanced Execution Engine

  • Multi-executor engine: Katana now supports both blockifier and starknet_in_rust as execution engines, significantly expanding our capabilities in benchmarking and performance optimization through cairo-native.
  • Support for RPC 0.6.0.
  • Expanded RPC API namespaces (torii, saya).
  • Metrics integration: Katana has now an integrated metrics module with prometheus an grafana dashboard.

Sozo: Streamlined World Building

  • Revamped Manifest Format. Sozo introduces a new, comprehensive manifest format in toml, organized across different stages of development. These manifests are designed for clarity and should be version-controlled in .git to track changes in your world efficiently.
    Here are the different manifests folders, under the manifests root directory:

    • base: Generated during the build phase.
    • overlays: For each manifest file present in base, the user can create a new file with the same name and path under the overlays folder. Those files are meant to be edited by developers, to override some values.
    • deployments: Contains the intended state of the world for deployment. Two files are generated when sozo migrate plan is issued: manifest.toml and manifest.json.

    An other folder named abis contains all the ABIs extracted from the contracts for easy access.

  • Simplified Contract Syntax. The new syntax for dojo contracts removes unnecessary boilerplate, focusing on the essentials.

    #[dojo::interface]
    trait IActions {
        fn spawn();
        fn move(direction: Direction);
    }

    No more ref self or self. Only the arguments that your system needs.

    Selective world injection in systems, you can now inject the world only where needed. The world: IWorldDispatcher must be the first argument and with this exact casing:

    // Note that the world argument is only used here, not in the interface.
    fn spawn(world: IWorldDispatcher) {
        let my_model = get!(world, ...);
    }
    
    fn other_system() {
        // no world accessible here.
    }
  • Enhanced sozo auth Command. Authorizations are usually useful to setup a world and configure it. Sozo now supports multicall for those operations. Also, a new syntax aims at providing a more expressive way to configure the world:

    sozo auth grant writer Moves,0x1234 Position,0x1234
    sozo auth grant owner model:Moves,0x2222 contract:0x1234,0x2222

    Both revoke and grant are now supported.

  • Binding generation for Typescript and Unity. To ease the front-end integration of dojo with dojo.js, sozo can now outputs bindings generated from the contracts ABI for typescript and unity.

    sozo build --typescript --unity
  • New sozo clean command for tidying up your project space and ensure old artifacts or manifests are removed effectively.

Torii: Advanced Event and State Management

Audit 🛡️

This version has undergone a security audit by Nethermind, ensuring the robustness and security of the core contracts. Read the full report.

What's Changed

Read more

v0.6.0-alpha.13

03 Apr 22:58
5bdcfdf
Compare
Choose a tag to compare
v0.6.0-alpha.13 Pre-release
Pre-release

What's Changed

  • Migration from ethers to alloy types by @tcoratger in #1693
  • refactor: grpc use model hash as id & libp2p command queue by @Larkooo in #1754
  • fix: ensure scarb compilation even when root package is missing by @glihm in #1759
  • feat: start refactor to integrate testing logic for models and entities by @Larkooo in #1749
  • fix(katana-primitives): enable alloy-primitives's serde on serde feature by @kariy in #1760
  • Prepare release: v0.6.0-alpha.13 by @tarrencev in #1764

New Contributors

Full Changelog: v0.6.0-alpha.12...v0.6.0-alpha.13

v0.6.0-alpha.12

03 Apr 02:51
c595fc9
Compare
Choose a tag to compare
v0.6.0-alpha.12 Pre-release
Pre-release

What's Changed

Full Changelog: v0.6.0-alpha.11...v0.6.0-alpha.12

This release should fix the following:

  1. Torii is now indexing transactions only once, and no duplication should be observed.
  2. The world's ABI and models ABIs are now included into the generated manifests files. The next release will add a better UX to obtain those manifests. For now, you should:
    • sozo build
    • sozo migrate
    • At this point, you should have the KATANA.toml / KATANA.json files into deployments. The folder structure of manifest will be re-worked totally in the next pre-release ⚠️.
  3. Querying the models with same keys should be fixed again.
  4. The output of the loggers is now following the structured logging, to enable filtering the logs.

v0.6.0-alpha.11

02 Apr 11:07
da60403
Compare
Choose a tag to compare
v0.6.0-alpha.11 Pre-release
Pre-release

What's Changed

  • feat(katana-rpc): rpc server metrics by @kariy in #1726
  • fix: ensure free function are not impacted by the injection of world and self by @glihm in #1733
  • feat: use the manifest for dojo bindgen by @glihm in #1732
  • Saya Prove and Verify by @neotheprogramist in #1708
  • fix(katana-core): dont use optional dep in non-feature specific code by @kariy in #1746
  • fix(katana): block env wrongly updated with cli value by @kariy in #1744
  • refactor(katana): make genesis and gas price cli args conflicting by @kariy in #1745
  • fix: duplicate indexation of transactions by @Larkooo in #1748
  • Prepare release: v0.6.0-alpha.11 by @tarrencev in #1751

Full Changelog: v0.6.0-alpha.10...v0.6.0-alpha.11

v0.6.0-alpha.10

29 Mar 21:38
c0da5b4
Compare
Choose a tag to compare
v0.6.0-alpha.10 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.6.0-alpha.9...v0.6.0-alpha.10

Restore the same event syntax with the support of dojo event.
Add sozo auth revoke support.

v0.6.0-alpha.9

28 Mar 05:11
57fa2dc
Compare
Choose a tag to compare
v0.6.0-alpha.9 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.6.0-alpha.8...v0.6.0-alpha.9

v0.6.0-alpha.8

25 Mar 21:13
4af8b03
Compare
Choose a tag to compare
v0.6.0-alpha.8 Pre-release
Pre-release

What's Changed

Full Changelog: v0.6.0-alpha.7...v0.6.0-alpha.8

⚠️ BREAKING CHANGES ⚠️
In this release, the emit! macro is expecting a Model and not a regular event.
This is being discussed and should be reworked before this version is stabilized.

v0.6.0-alpha.7

20 Mar 23:22
f4c8111
Compare
Choose a tag to compare
v0.6.0-alpha.7 Pre-release
Pre-release

What's Changed

  • feat(relay): persist and expose messages through grpc by @Larkooo in #1526
  • fix(torii): Added timezone informations to naive datetime strings by @akhercha in #1668
  • refactor: write manifest file even if migration failed by @lambda-0x in #1652
  • feat(sozo): add seed to manifest by @lambda-0x in #1674
  • fix(sozo): don't upload to ipfs if in offline mode by @lambda-0x in #1678
  • Torii fix queries with keys regex by @broody in #1609
  • [sozo] Detect and manage manifests and artifacts discrepancies by @remybar in #1672
  • Prepare release: v0.6.0-alpha.7 by @tarrencev in #1680

Full Changelog: v0.6.0-alpha.6...v0.6.0-alpha.7

v0.6.0-alpha.6

14 Mar 14:25
cfdd170
Compare
Choose a tag to compare
v0.6.0-alpha.6 Pre-release
Pre-release

What's Changed

  • fix: handle primitive and custom types for enum introspect by @remybar in #1643
  • fix: remove old reference to submodule by @RareSecond in #1612
  • fix(sozo): ensure warnings don't stop tests build by @glihm in #1648
  • fix: [torii/graphql] Added timezone information to timestamps strings by @akhercha in #1657
  • Check model exists on sozo auth by @remybar in #1644
  • fix: error on world.model() call gets mapped wrongly by @kariy in #1661
  • sozo: check existing class-hashes before registering model by @kwkr in #1576
  • feat: add transaction_hash and block_number in the manifest file by @remybar in #1651
  • refactor(sozo): make event parsing logic modular and reusable by @Matth26 in #1556
  • feat(sozo): add --receipt transaction option by @remybar in #1647
  • feat(katana): add simulate transactions by @greged93 in #1590
  • Prepare release: v0.6.0-alpha.6 by @tarrencev in #1666

New Contributors

Full Changelog: v0.6.0-alpha.5...v0.6.0-alpha.6