Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version Packages (next) #1716

Merged
merged 1 commit into from
Oct 20, 2023
Merged

Version Packages (next) #1716

merged 1 commit into from
Oct 20, 2023

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Oct 9, 2023

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@latticexyz/[email protected]

Major Changes

  • 29c3f50: deploy, test, dev-contracts were overhauled using a declarative deployment approach under the hood. Deploys are now idempotent and re-running them will introspect the world and figure out the minimal changes necessary to bring the world into alignment with its config: adding tables, adding/upgrading systems, changing access control, etc.

    The following CLI arguments are now removed from these commands:

    • --debug (you can now adjust CLI output with DEBUG environment variable, e.g. DEBUG=mud:*)
    • --priorityFeeMultiplier (now calculated automatically)
    • --disableTxWait (everything is now parallelized with smarter nonce management)
    • --pollInterval (we now lean on viem defaults and we don't wait/poll until the very end of the deploy)

    Most deployment-in-progress logs are now behind a debug flag, which you can enable with a DEBUG=mud:* environment variable.

Minor Changes

  • ccc21e9: Added a --alwaysRunPostDeploy flag to deploys (deploy, test, dev-contracts commands) to always run PostDeploy.s.sol script after each deploy. By default, PostDeploy.s.sol is only run once after a new world is deployed.

    This is helpful if you want to continue a deploy that may not have finished (due to an error or otherwise) or to run deploys with an idempotent PostDeploy.s.sol script.

  • e667ee8: CLI deploy, test, dev-contracts no longer run forge clean before each deploy. We previously cleaned to ensure no outdated artifacts were checked into git (ABIs, typechain types, etc.). Now that all artifacts are gitignored, we can let forge use its cache again.

  • e1dc88e: Transactions sent via deploy will now be retried a few times before giving up. This hopefully helps with large deploys on some chains.

Patch Changes

  • 7ce82b6: Store config now defaults storeArgument: false for all tables. This means that table libraries, by default, will no longer include the extra functions with the _store argument. This default was changed to clear up the confusion around using table libraries in tests, PostDeploy scripts, etc.

    If you are sure you need to manually specify a store when interacting with tables, you can still manually toggle it back on with storeArgument: true in the table settings of your MUD config.

    If you want to use table libraries in PostDeploy.s.sol, you can add the following lines:

      import { Script } from "forge-std/Script.sol";
      import { console } from "forge-std/console.sol";
      import { IWorld } from "../src/codegen/world/IWorld.sol";
    + import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
    
      contract PostDeploy is Script {
        function run(address worldAddress) external {
    +     StoreSwitch.setStoreAddress(worldAddress);
    +
    +     SomeTable.get(someKey);
  • 3bfee32: dev-contracts will no longer bail when there was an issue with deploying (e.g. typo in contracts) and instead wait for file changes before retrying.

  • 4e2a170: Deploys now continue if they detect a Module_AlreadyInstalled revert error.

  • 61c6ab7: Changed deploy order so that system/module contracts are fully deployed before registering/installing them on the world.

  • 69d55ce: Deploy commands (deploy, dev-contracts, test) now correctly run worldgen to generate system interfaces before deploying.

  • 4fe0793: Fixed a few issues with deploys:

    • properly handle enums in MUD config
    • only deploy each unique module/system once
    • waits for transactions serially instead of in parallel, to avoid RPC errors
  • d844cd4: Sped up builds by using more of forge's cache.

    Previously we'd build only what we needed because we would check in ABIs and other build artifacts into git, but that meant that we'd get a lot of forge cache misses. Now that we no longer need these files visible, we can take advantage of forge's caching and greatly speed up builds, especially incremental ones.

  • 25086be: Replaced temporary .mudtest file in favor of WORLD_ADDRESS environment variable when running tests with MudTest contract

  • d2f8e94: Moved to new resource ID utils.

  • Updated dependencies [7ce82b6]

  • Updated dependencies [7fa2ca1]

  • Updated dependencies [6ca1874]

  • Updated dependencies [0660561]

  • Updated dependencies [f62c767]

  • Updated dependencies [ca32917]

  • Updated dependencies [f62c767]

  • Updated dependencies [6ca1874]

  • Updated dependencies [d2f8e94]

  • Updated dependencies [25086be]

  • Updated dependencies [29c3f50]

@latticexyz/[email protected]

Major Changes

  • 7ce82b6: Store config now defaults storeArgument: false for all tables. This means that table libraries, by default, will no longer include the extra functions with the _store argument. This default was changed to clear up the confusion around using table libraries in tests, PostDeploy scripts, etc.

    If you are sure you need to manually specify a store when interacting with tables, you can still manually toggle it back on with storeArgument: true in the table settings of your MUD config.

    If you want to use table libraries in PostDeploy.s.sol, you can add the following lines:

      import { Script } from "forge-std/Script.sol";
      import { console } from "forge-std/console.sol";
      import { IWorld } from "../src/codegen/world/IWorld.sol";
    + import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
    
      contract PostDeploy is Script {
        function run(address worldAddress) external {
    +     StoreSwitch.setStoreAddress(worldAddress);
    +
    +     SomeTable.get(someKey);

Patch Changes

@latticexyz/[email protected]

Major Changes

  • 6ca1874: Modules now revert with Module_AlreadyInstalled if attempting to install more than once with the same calldata.

    This is a temporary workaround for our deploy pipeline. We'll make these install steps more idempotent in the future.

Patch Changes

  • 7ce82b6: Store config now defaults storeArgument: false for all tables. This means that table libraries, by default, will no longer include the extra functions with the _store argument. This default was changed to clear up the confusion around using table libraries in tests, PostDeploy scripts, etc.

    If you are sure you need to manually specify a store when interacting with tables, you can still manually toggle it back on with storeArgument: true in the table settings of your MUD config.

    If you want to use table libraries in PostDeploy.s.sol, you can add the following lines:

      import { Script } from "forge-std/Script.sol";
      import { console } from "forge-std/console.sol";
      import { IWorld } from "../src/codegen/world/IWorld.sol";
    + import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
    
      contract PostDeploy is Script {
        function run(address worldAddress) external {
    +     StoreSwitch.setStoreAddress(worldAddress);
    +
    +     SomeTable.get(someKey);
  • Updated dependencies [7ce82b6]

  • Updated dependencies [7fa2ca1]

  • Updated dependencies [6ca1874]

  • Updated dependencies [0660561]

  • Updated dependencies [f62c767]

  • Updated dependencies [f62c767]

  • Updated dependencies [d2f8e94]

  • Updated dependencies [25086be]

  • Updated dependencies [29c3f50]

@latticexyz/[email protected]

Minor Changes

  • ca32917: Moves log output behind a debug flag. You can enable logging with DEBUG=abi-ts environment variable.

@latticexyz/[email protected]

Minor Changes

  • 0660561: - Added a sendTransaction helper to mirror viem's sendTransaction, but with our nonce manager

    • Added an internal mempool queue to sendTransaction and writeContract for better nonce handling
    • Defaults block tag to pending for transaction simulation and transaction count (when initializing the nonce manager)
  • d2f8e94: Renames resourceIdToHex to resourceToHex and hexToResourceId to hexToResource, to better distinguish between a resource ID (hex value) and a resource reference (type, namespace, name).

    - resourceIdToHex({ type: 'table', namespace: '', name: 'Position' });
    + resourceToHex({ type: 'table', namespace: '', name: 'Position' });
    - hexToResourceId('0x...');
    + hexToResource('0x...');

    Previous methods still exist but are now deprecated to ease migration and reduce breaking changes. These will be removed in a future version.

    Also removes the previously deprecated and unused table ID utils (replaced by these resource ID utils).

Patch Changes

  • f62c767: Moved some codegen to use fs/promises for better parallelism.
  • 25086be: Replaced temporary .mudtest file in favor of WORLD_ADDRESS environment variable when running tests with MudTest contract

@latticexyz/[email protected]

Minor Changes

  • 1d0f7e2: Added /healthz and /readyz healthcheck endpoints for Kubernetes

@latticexyz/[email protected]

Minor Changes

  • 1d0f7e2: Added /healthz and /readyz healthcheck endpoints for Kubernetes

Patch Changes

@latticexyz/[email protected]

Minor Changes

  • 7fa2ca1: Added TS helpers for calling systems dynamically via the World.

    • encodeSystemCall for world.call

      worldContract.write.call(encodeSystemCall({
        abi: worldContract.abi,
        systemId: resourceToHex({ ... }),
        functionName: "registerDelegation",
        args: [ ... ],
      }));
    • encodeSystemCallFrom for world.callFrom

      worldContract.write.callFrom(encodeSystemCallFrom({
        abi: worldContract.abi,
        from: "0x...",
        systemId: resourceToHex({ ... }),
        functionName: "registerDelegation",
        args: [ ... ],
      }));
    • encodeSystemCalls for world.batchCall

      worldContract.write.batchCall(encodeSystemCalls(abi, [{
        systemId: resourceToHex({ ... }),
        functionName: "registerDelegation",
        args: [ ... ],
      }]));
    • encodeSystemCallsFrom for world.batchCallFrom

      worldContract.write.batchCallFrom(encodeSystemCallsFrom(abi, "0x...", [{
        systemId: resourceToHex({ ... }),
        functionName: "registerDelegation",
        args: [ ... ],
      }]));
  • 6ca1874: Added a Module_AlreadyInstalled error to IModule.

  • 25086be: Replaced temporary .mudtest file in favor of WORLD_ADDRESS environment variable when running tests with MudTest contract

Patch Changes

  • 7ce82b6: Store config now defaults storeArgument: false for all tables. This means that table libraries, by default, will no longer include the extra functions with the _store argument. This default was changed to clear up the confusion around using table libraries in tests, PostDeploy scripts, etc.

    If you are sure you need to manually specify a store when interacting with tables, you can still manually toggle it back on with storeArgument: true in the table settings of your MUD config.

    If you want to use table libraries in PostDeploy.s.sol, you can add the following lines:

      import { Script } from "forge-std/Script.sol";
      import { console } from "forge-std/console.sol";
      import { IWorld } from "../src/codegen/world/IWorld.sol";
    + import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
    
      contract PostDeploy is Script {
        function run(address worldAddress) external {
    +     StoreSwitch.setStoreAddress(worldAddress);
    +
    +     SomeTable.get(someKey);
  • 29c3f50: With resource types in resource IDs, the World config no longer requires table and system names to be unique.

  • Updated dependencies [7ce82b6]

  • Updated dependencies [0660561]

  • Updated dependencies [f62c767]

  • Updated dependencies [f62c767]

  • Updated dependencies [d2f8e94]

  • Updated dependencies [25086be]

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

Patch Changes

[email protected]

Patch Changes

  • 7ce82b6: Store config now defaults storeArgument: false for all tables. This means that table libraries, by default, will no longer include the extra functions with the _store argument. This default was changed to clear up the confusion around using table libraries in tests, PostDeploy scripts, etc.

    If you are sure you need to manually specify a store when interacting with tables, you can still manually toggle it back on with storeArgument: true in the table settings of your MUD config.

    If you want to use table libraries in PostDeploy.s.sol, you can add the following lines:

      import { Script } from "forge-std/Script.sol";
      import { console } from "forge-std/console.sol";
      import { IWorld } from "../src/codegen/world/IWorld.sol";
    + import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
    
      contract PostDeploy is Script {
        function run(address worldAddress) external {
    +     StoreSwitch.setStoreAddress(worldAddress);
    +
    +     SomeTable.get(someKey);
  • d844cd4: Sped up builds by using more of forge's cache.

    Previously we'd build only what we needed because we would check in ABIs and other build artifacts into git, but that meant that we'd get a lot of forge cache misses. Now that we no longer need these files visible, we can take advantage of forge's caching and greatly speed up builds, especially incremental ones.

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

Patch Changes

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

[email protected]

[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@latticexyz/[email protected]

@github-actions github-actions bot requested review from alvrs and holic as code owners October 9, 2023 10:03
@github-actions github-actions bot force-pushed the changeset-release/main branch from 830829b to 808d4b1 Compare October 9, 2023 14:59
@github-actions github-actions bot force-pushed the changeset-release/main branch from 808d4b1 to d0a2b74 Compare October 10, 2023 11:19
@github-actions github-actions bot force-pushed the changeset-release/main branch from d0a2b74 to f2e725f Compare October 10, 2023 14:21
@github-actions github-actions bot force-pushed the changeset-release/main branch from f2e725f to 37ed809 Compare October 10, 2023 14:53
@github-actions github-actions bot force-pushed the changeset-release/main branch from 37ed809 to ac2e564 Compare October 10, 2023 15:14
@github-actions github-actions bot force-pushed the changeset-release/main branch from ac2e564 to e4f9230 Compare October 11, 2023 09:23
@github-actions github-actions bot force-pushed the changeset-release/main branch from e4f9230 to 85f42e9 Compare October 11, 2023 10:00
@github-actions github-actions bot force-pushed the changeset-release/main branch from 85f42e9 to d73ca3e Compare October 11, 2023 10:11
@github-actions github-actions bot force-pushed the changeset-release/main branch from d73ca3e to 9ea1b0d Compare October 11, 2023 10:30
@github-actions github-actions bot force-pushed the changeset-release/main branch from 9ea1b0d to 8371142 Compare October 11, 2023 11:00
@github-actions github-actions bot force-pushed the changeset-release/main branch from 444d74e to cf4e7ca Compare October 17, 2023 12:28
@github-actions github-actions bot force-pushed the changeset-release/main branch from cf4e7ca to 3aca0ff Compare October 17, 2023 12:33
@github-actions github-actions bot force-pushed the changeset-release/main branch from 3aca0ff to b93c2f1 Compare October 20, 2023 13:55
@github-actions github-actions bot force-pushed the changeset-release/main branch from b93c2f1 to b7a64f7 Compare October 20, 2023 14:49
@github-actions github-actions bot force-pushed the changeset-release/main branch from b7a64f7 to 7285748 Compare October 20, 2023 15:01
@github-actions github-actions bot force-pushed the changeset-release/main branch from 7285748 to f9954ae Compare October 20, 2023 15:10
@github-actions github-actions bot force-pushed the changeset-release/main branch from f9954ae to e3301ec Compare October 20, 2023 15:16
@github-actions github-actions bot force-pushed the changeset-release/main branch from e3301ec to d06ca0b Compare October 20, 2023 15:42
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