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

Registry support #1788

Merged
merged 43 commits into from
Dec 10, 2024
Merged

Registry support #1788

merged 43 commits into from
Dec 10, 2024

Conversation

YaroShkvorets
Copy link
Collaborator

@YaroShkvorets YaroShkvorets commented Dec 9, 2024

Implements #1744

  • add registry support
  • improve graph init flow
  • allow ipfs/url for substreams package

0237h and others added 24 commits December 3, 2024 12:58
`yaml-ts`
- Replace `safe*` variants with `load`/`loadall`/`dump` -> https://github.com/nodeca/js-yaml/blob/0d3ca7a27b03a6c974790a30a89e456007d62976/migrate_v3_to_v4.md#safeload-safeloadall-safedump--load-loadall-dump

`immutable`
- `Map([ [ 'k', 'v' ] ])` or `Map({ k: 'v' })` instead of `Map.of` -> https://github.com/immutable-js/immutable-js/blob/b3a1c9f13880048d744366ae561c39a34b26190a/CHANGELOG.md#breaking-changes
- Replace `immutable.Collection<ProtocolName, string[]>` with `immutable.Collection<ProtocolName, immutable.List<string>>`

`oclif/core`
- Use `gluegun.prompt` instead of `ux.prompt` -> oclif/core#999
- Fix `prompt` variable assignments from object destructuring (thanks @YaroShkvorets)
- Migrate to ESM -> https://oclif.io/docs/esm/

`assemblyscript/asc`
- Use `assemblyscript/asc` as import
- `asc.main` no longer as callback for error, uses stderr and is async -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Remove `asc.ready` -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Remove `ascMain` in `package.json` -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Replace `Promise.allSettled` with for loop in tests for resolving WASM generation promises in sequence (prevent WASM file corruption since they use same file `outputWasmPath`).

`yaml`
- Remove `strOptions` -> eemeli/yaml#235

`chokidar`
- Import type `FSWatcher` as namespace no longer available
- Remove `await` for `onTrigger` as it's no longer async

`http-ipfs-client`
- Migrate from `http-ipfs-client` to `kubo-rpc-client` with dynamic import as it's ESM only -> ipfs/helia#157
- Make `createCompiler` async due to dynamic import

`cli/package.json`
- Upgrade `moduleResolution` to `bundler`, `module` to `ESNext` and `target` to `ESNext` making it an ESM module

`eslint`
- Move `.eslintignore` inside config ->
- Use `ESLINT_USE_FLAT_CONFIG=false` in pnpm scripts
- Update config annotations

`sync-request`
- Deprecated, replace with async `fetch` call -> https://www.npmjs.com/package/sync-request
- Make `generateTypes` async and update NEAR test snapshot

`web3-eth-abi`
- Import `decodeLogs` method directly as there is no more default export

`vitest`
- Remove `concurrent` for tests using filesystem

`dockerode`
- Remove dependency

`tern`
- Remove dependency

`binary-install-raw`
- Replace with `binary-install`

`ethereum-basic-event-handlers`
- Fix `chai` max version to `4.2.0` as `hardhat` doesn't support ESM Typescript -> https://hardhat.org/hardhat-runner/docs/advanced/using-esm#esm-and-typescript-projects
- `ethers.BaseContract.address` renamed to `ethers.BaseContract.target`

---------

Co-authored-by: YaroShkvorets <[email protected]>
`yaml-ts`
- Replace `safe*` variants with `load`/`loadall`/`dump` -> https://github.com/nodeca/js-yaml/blob/0d3ca7a27b03a6c974790a30a89e456007d62976/migrate_v3_to_v4.md#safeload-safeloadall-safedump--load-loadall-dump

`immutable`
- `Map([ [ 'k', 'v' ] ])` or `Map({ k: 'v' })` instead of `Map.of` -> https://github.com/immutable-js/immutable-js/blob/b3a1c9f13880048d744366ae561c39a34b26190a/CHANGELOG.md#breaking-changes
- Replace `immutable.Collection<ProtocolName, string[]>` with `immutable.Collection<ProtocolName, immutable.List<string>>`

`oclif/core`
- Use `gluegun.prompt` instead of `ux.prompt` -> oclif/core#999
- Fix `prompt` variable assignments from object destructuring (thanks @YaroShkvorets)
- Migrate to ESM -> https://oclif.io/docs/esm/

`assemblyscript/asc`
- Use `assemblyscript/asc` as import
- `asc.main` no longer as callback for error, uses stderr and is async -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Remove `asc.ready` -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Remove `ascMain` in `package.json` -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Replace `Promise.allSettled` with for loop in tests for resolving WASM generation promises in sequence (prevent WASM file corruption since they use same file `outputWasmPath`).

`yaml`
- Remove `strOptions` -> eemeli/yaml#235

`chokidar`
- Import type `FSWatcher` as namespace no longer available
- Remove `await` for `onTrigger` as it's no longer async

`http-ipfs-client`
- Migrate from `http-ipfs-client` to `kubo-rpc-client` with dynamic import as it's ESM only -> ipfs/helia#157
- Make `createCompiler` async due to dynamic import

`cli/package.json`
- Upgrade `moduleResolution` to `bundler`, `module` to `ESNext` and `target` to `ESNext` making it an ESM module

`eslint`
- Move `.eslintignore` inside config ->
- Use `ESLINT_USE_FLAT_CONFIG=false` in pnpm scripts
- Update config annotations

`sync-request`
- Deprecated, replace with async `fetch` call -> https://www.npmjs.com/package/sync-request
- Make `generateTypes` async and update NEAR test snapshot

`web3-eth-abi`
- Import `decodeLogs` method directly as there is no more default export

`vitest`
- Remove `concurrent` for tests using filesystem

`dockerode`
- Remove dependency

`tern`
- Remove dependency

`binary-install-raw`
- Replace with `binary-install`

---------

Co-authored-by: YaroShkvorets <[email protected]>
`yaml-ts`
- Replace `safe*` variants with `load`/`loadall`/`dump` -> https://github.com/nodeca/js-yaml/blob/0d3ca7a27b03a6c974790a30a89e456007d62976/migrate_v3_to_v4.md#safeload-safeloadall-safedump--load-loadall-dump

`immutable`
- `Map([ [ 'k', 'v' ] ])` or `Map({ k: 'v' })` instead of `Map.of` -> https://github.com/immutable-js/immutable-js/blob/b3a1c9f13880048d744366ae561c39a34b26190a/CHANGELOG.md#breaking-changes
- Replace `immutable.Collection<ProtocolName, string[]>` with `immutable.Collection<ProtocolName, immutable.List<string>>`

`oclif/core`
- Use `gluegun.prompt` instead of `ux.prompt` -> oclif/core#999
- Fix `prompt` variable assignments from object destructuring (thanks @YaroShkvorets)
- Migrate to ESM -> https://oclif.io/docs/esm/

`assemblyscript/asc`
- Use `assemblyscript/asc` as import
- `asc.main` no longer as callback for error, uses stderr and is async -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Remove `asc.ready` -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Remove `ascMain` in `package.json` -> https://github.com/AssemblyScript/assemblyscript/releases/tag/v0.20.0
- Replace `Promise.allSettled` with for loop in tests for resolving WASM generation promises in sequence (prevent WASM file corruption since they use same file `outputWasmPath`).

`yaml`
- Remove `strOptions` -> eemeli/yaml#235

`chokidar`
- Import type `FSWatcher` as namespace no longer available
- Remove `await` for `onTrigger` as it's no longer async

`http-ipfs-client`
- Migrate from `http-ipfs-client` to `kubo-rpc-client` with dynamic import as it's ESM only -> ipfs/helia#157
- Make `createCompiler` async due to dynamic import

`cli/package.json`
- Upgrade `moduleResolution` to `bundler`, `module` to `ESNext` and `target` to `ESNext` making it an ESM module

`eslint`
- Move `.eslintignore` inside config ->
- Use `ESLINT_USE_FLAT_CONFIG=false` in pnpm scripts
- Update config annotations

`sync-request`
- Deprecated, replace with async `fetch` call -> https://www.npmjs.com/package/sync-request
- Make `generateTypes` async and update NEAR test snapshot

`web3-eth-abi`
- Import `decodeLogs` method directly as there is no more default export

`vitest`
- Remove `concurrent` for tests using filesystem

`dockerode`
- Remove dependency

`tern`
- Remove dependency

`binary-install-raw`
- Replace with `binary-install`

---------

Co-authored-by: YaroShkvorets <[email protected]>
Squashed commit of the following:

commit 6e31985
Author: YaroShkvorets <[email protected]>
Date:   Sat Dec 7 14:44:55 2024 -0500

    lint: lowercase files

commit 097b367
Author: YaroShkvorets <[email protected]>
Date:   Sat Dec 7 14:39:46 2024 -0500

    review lint rules

commit 2e7a9e9
Author: YaroShkvorets <[email protected]>
Date:   Sat Dec 7 13:48:45 2024 -0500

    migrate eslint, fix lint warnings

commit 1da95e6
Author: YaroShkvorets <[email protected]>
Date:   Sat Dec 7 12:42:04 2024 -0500

    remove yarn.lock

commit 35bf240
Author: YaroShkvorets <[email protected]>
Date:   Fri Dec 6 22:55:41 2024 -0500

    update scaffolded package version

commit 80dd64d
Author: YaroShkvorets <[email protected]>
Date:   Fri Dec 6 22:43:01 2024 -0500

    hide init subgraph option

commit 34f8095
Author: YaroShkvorets <[email protected]>
Date:   Fri Dec 6 22:08:56 2024 -0500

    remove babel config

commit 51a8104
Author: YaroShkvorets <[email protected]>
Date:   Fri Dec 6 21:44:22 2024 -0500

    fix lint

commit 0b9e921
Merge: 3295954 7d18704
Author: Yaro Shkvorets <[email protected]>
Date:   Fri Dec 6 21:42:06 2024 -0500

    Merge branch 'main' into chore/update-dependencies

commit 3295954
Author: YaroShkvorets <[email protected]>
Date:   Fri Dec 6 21:37:23 2024 -0500

    fix source skip condition

commit 7d18704
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Dec 6 14:31:02 2024 -0500

    chore(release): update monorepo packages versions (graphprotocol#1784)

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

commit ea1d948
Author: Yaro Shkvorets <[email protected]>
Date:   Fri Dec 6 14:26:39 2024 -0500

    Fix network selection bug (graphprotocol#1783)

    * fix network bug

    * hide subgraph option

commit a23d65a
Author: Clément <[email protected]>
Date:   Fri Dec 6 20:25:13 2024 +0100

    cli: Add support for M4 apple silicon (graphprotocol#1782)

    * cli: Add support for M4 apple silicon

commit 1b69b9e
Author: Etienne Donneger <[email protected]>
Date:   Thu Dec 5 16:05:12 2024 -0500

    Update test snapshots

commit 12e7865
Author: Etienne Donneger <[email protected]>
Date:   Thu Dec 5 15:55:10 2024 -0500

    Fix lint

commit c2b131f
Merge: f0657cd 425d77f
Author: Etienne Donneger <[email protected]>
Date:   Thu Dec 5 15:53:53 2024 -0500

    Merge branch 'main' into chore/update-dependencies

commit f0657cd
Author: Etienne Donneger <[email protected]>
Date:   Thu Dec 5 15:52:42 2024 -0500

    Update test snapshots

commit 425d77f
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Dec 5 20:06:11 2024 +0000

    chore(release): update monorepo packages versions (graphprotocol#1780)

    Hide IPFS flag for subgraph datasource feature

    Feature is not ready yet do hide from command help.

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

commit 8d9bbae
Author: Etienne Donneger <[email protected]>
Date:   Thu Dec 5 15:05:51 2024 -0500

    Increase `hookTimeout` for Node18 tests

commit ef1a325
Author: Etienne Donneger <[email protected]>
Date:   Wed Dec 4 16:08:37 2024 -0500

    Fix lint

commit e88e972
Author: Etienne Donneger <[email protected]>
Date:   Wed Dec 4 15:13:19 2024 -0500

    Fix CLI test timeout

commit dfbf69d
Author: Etienne Donneger <[email protected]>
Date:   Wed Dec 4 11:45:51 2024 -0500

    Fix lint

commit 41a3651
Author: Etienne Donneger <[email protected]>
Date:   Wed Dec 4 10:52:10 2024 -0500

    Update TODO items and fix rules for eslint

    - Add `node:` prefix for built-in modules
    - Fix `@typescript-eslint/no-this-alias` rule
    - Remove `eager_offset.ts`

commit 097a2f3
Author: Etienne Donneger <[email protected]>
Date:   Wed Dec 4 10:33:16 2024 -0500

    Add changeset

commit 27d521d
Author: Etienne Donneger <[email protected]>
Date:   Tue Dec 3 13:30:13 2024 -0500

    Fix lint

commit 6a139af
Author: Etienne Donneger <[email protected]>
Date:   Tue Dec 3 13:27:28 2024 -0500

    Fix `ts` package assembly build script

commit a4fd5a6
Author: Etienne Donneger <[email protected]>
Date:   Tue Dec 3 13:19:55 2024 -0500

    Fix `website` lint script

commit e8218ee
Author: AK <[email protected]>
Date:   Tue Dec 3 10:31:44 2024 -0500

    added rpc and api urls for botanix-testnet (graphprotocol#1781)

    ---------

    Co-authored-by: Etienne Donneger <[email protected]>
Copy link

changeset-bot bot commented Dec 9, 2024

🦋 Changeset detected

Latest commit: 3d8d6a5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@graphprotocol/graph-cli Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@YaroShkvorets YaroShkvorets marked this pull request as ready for review December 9, 2024 16:49
Copy link
Collaborator

@0237h 0237h left a comment

Choose a reason for hiding this comment

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

Awesome work @YaroShkvorets !

Main concern from the review:
I'm not convinced that we should have a "offline backup" JSON file for the registry,

I would rather use some caching (most likely in the library itself) and assume we're working online. Less maintenance burden of keeping that file in sync and we wouldn't want to ditch hardcoded values for another static file !

Some other nitpicks and small things along the way but again, very nice work 🙏

.prettierignore Show resolved Hide resolved
packages/cli/src/command-helpers/abi.test.ts Outdated Show resolved Hide resolved
packages/cli/src/command-helpers/abi.test.ts Outdated Show resolved Hide resolved
packages/cli/src/command-helpers/abi.test.ts Outdated Show resolved Hide resolved
packages/cli/src/command-helpers/compiler.ts Outdated Show resolved Hide resolved
packages/cli/src/commands/add.ts Outdated Show resolved Hide resolved
packages/cli/src/commands/deploy.ts Outdated Show resolved Hide resolved
packages/cli/src/commands/init.ts Show resolved Hide resolved
packages/cli/src/commands/init.ts Show resolved Hide resolved
packages/cli/src/protocols/index.ts Show resolved Hide resolved
@YaroShkvorets YaroShkvorets requested a review from 0237h December 10, 2024 01:42
Copy link
Collaborator

@0237h 0237h left a comment

Choose a reason for hiding this comment

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

LGTM 🚀

@0237h 0237h merged commit edb601d into graphprotocol:main Dec 10, 2024
9 checks passed
@YaroShkvorets YaroShkvorets deleted the yaro/registry-prompt branch December 10, 2024 21:46
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.

2 participants