Skip to main content

Changelog

All notable changes to this project will be documented in this file.

v0.4.10 - 2024-09-04

Miscellaneous Tasks

Bump to v0.4.10 (#835)

  • Bump v0.4.10

v0.4.10-rc1 - 2024-09-03

Bug Fixes

Use import_map at runtime (#833)

  • Bump to release v0.4.10-rc1
  • Use import_map.json at runtime since remote configs aren't supported

v0.4.9 - 2024-09-02

Miscellaneous Tasks

Bump to v0.4.9 (#831)

  • Bump version to v0.4.9
  • Fix issue with cross config context

v0.4.9-rc2 - 2024-09-02

Miscellaneous Tasks

(release) Prepare 0.4.9-rc2 (#829)

  • Fix the minor issues with rc1
  • Bump to rc2

v0.4.9-rc1 - 2024-09-02

Features

(docs) Post on Durable Execution. (#816)

(metagen) Client_ts (#790)

  • Implements client_ts as described in #777 .

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • Bug Fixes

  • Improved error handling in the typegraph function to provide better error messages.

  • Chores

  • Updated Docker image references to use docker.io prefix for consistency.

    • Excluded unnecessary files from the VSCode settings.
    • Enhanced configurability of Docker commands in development tasks.
  • Updated environment variable GHJK_VERSION to reflect a semantic versioning format.

  • New Features

  • Introduced modules and methods for TypeScript and Python code generation in the metagen library, enhancing client generation capabilities.

    • Added test_typegraph_3 function for improved testing capabilities.
    • Included metadata for the package manager in the project settings.

(sub) Sdk and typing (#811)

User side of substantial

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Add caching to Secrets struct to improve performance (#813)

Migration notes

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Refactor

(docs, gate) Push for meta dev instead of meta typegate on docs (#822)

Ensure documentation is pushing for meta dev instead of meta typegate

  • add a warning that envs are not set.

MET-635

Migration notes

No Migration Needed

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Flatten deps and improve repo folder (#821)

  • Renames libs/ to src/.
  • Moves typegate/, meta-cli, typegraph/, meta-lsp/ to src/.
  • Renames dev/ to tools/
  • Moves website/ to docs/metatype.dev/
  • Moves src/typegate/tests to tests/
  • Moves src/typegraph/deno/dev to tools/jsr/
  • Moves src/typegraph/deno/sdk to src/typegraph/deno/
  • Renames src/deno to src/mt_deno
  • Bumps deno to 1.46.1
  • Bumps rust toolchain to 1.80.1
  • Moves all rust dependencies to workspace section
  • Moves tools/task-*.ts to tools/task/*.ts
  • Moves cliff.toml, Cross.toml, ruff.toml to tools/
  • Uses deno workspaces to organize src/typegraph/deno, src/typegate, tools/, tests/ and more.
  • Closes MET-607
  • Updates poetry to 1.8.3
  • Bumps metatype to version 0.4.9-rc1
  • Update CONTRIBUTING.md
  • Fix CI workflows
  • Fix Dockerfile
  • Fix all tests

Migration notes

  • No end user changes required

  • The change comes with new or modified tests

  • Hard-to-understand functions have explanatory comments

  • End-user documentation is updated to reflect the change


v0.4.8 - 2024-08-16

Bug Fixes

Table method for kv runtime (#815)

I discover an issue in the KV runtime documentation kvruntime docs

wasm_backtrace config bug (#814)

  • $WASM_BACKTRACE_DETAILS was enabled in main ghjk env which affected embedded wasm module compilation to have backtrace enabled. This broke typegate runs without the flag enabled due to mismatch.
  • Fixes Cargo.lock not being used in Dockerfile.
  • Prepare 0.4.8 release

Features

Kv runtime (#797)

Migration notes

...

  • The change comes with new or modified tests
  • End-user documentation is updated to reflect the change
  • Hard-to-understand functions have explanatory comments

Miscellaneous Tasks

Bump to 0.4.8-0 (#810)

  • Bump prerelease
  • Fix minor issue with release pipeline

v0.4.7 - 2024-08-08

Features

(cli) Fix auto deployment (#806)

  • Upgrade lade-sdk
  • Fix discovery
  • Remove obsolete dep: actix-web
  • lade-sdk uses the main branch, which now has the fix for the following issues:
  • dependency version conflict with deno: url is set at <2.5.0;
  • required ProjectID error for infisical: the project id is added explicitly on the command.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Cors headers on error (#803)

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

Bump to 0.4.7-0 (#805)

  • Bump version to 0.4.7-0

Refactor

(docs) Add how to test typegraphs doc (#798)

How to test your typegraphs documentation

  • add python doc
  • add ts doc
  • upgrade bitnami/minIo image to 2024?

Migration notes

No Migrations Needed

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

  • Updated the Minio service to the latest version for improved performance and potential new features.

  • Introduced comprehensive documentation for testing typegraphs in both TypeScript and Python, enhancing developer experience.

  • Documentation

    • Enhanced readability of the Meta CLI upgrade instructions.
  • Reformatted installation instructions for the typegraph package for better clarity.

  • Chores

  • Updated dependency management configuration for improved compatibility and performance across different platforms.

Improve JSR score (part 1) (#807)

  • Add symbol documentations
  • Fix slow types

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.4.6 - 2024-08-01

Features

Better arg split logic for MCLI_LOADER (#799)

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

Prepare 0.4.6 (#795)

  • Bump version to 0.4.6-0
  • Add sanity tests for published SDKs
  • Bump deno to 1.45.2
  • Bump rust to 1.79.0
  • Fix myriad of bugs

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

  • Introduced new logging capabilities in the ConnectedEngine with adjustable logging levels.

  • Implemented cleanup procedures in tests to enhance resource management.

  • Bug Fixes

  • Fixed import paths for permissions to ensure correct functionality in tests and applications.

  • Version Updates

  • Incremented version numbers across multiple projects and packages to reflect ongoing development and improvements.

  • Documentation

  • Added comments to clarify code behavior and potential future considerations in various modules.

  • Refactor

  • Optimized string handling in several functions and adjusted method signatures for improved clarity and efficiency.

Refactor

(docs) Better documentation on quick-start page (#793)

Improve the documentation on quick-start page

  • add dev hunt result to homepage.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.4.5 - 2024-07-18

Bug Fixes

Broken pipeline for 0.4.4 (#782)

Fixes erroneous usage of setup-deno which has been replaced by ghjk itself.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Broken release pipeline 2 (#783)

Fix issue with the three remaining failing jobs.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Release pipeline 3 (#784)

  • Remove accidental dry-run from jsr publish
  • Fix cross dockerfile

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Skip deno stack trace from error message (#787)

Skip the deno stack trace from the error message when tg_manage fails.

Migration notes

N/A

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Features

(cli) Configurable backoff (#789)

  • BREAKING: configurable backoff (#789)
  • Make the backoff configurable through the --retry and --retry-interval-ms options.
  • The default max retry count is changed to 0 on the default mode, and remains 3 on the watch mode.
  • The --max-parallel-loads option has been renamed to --threads.

Migration notes

The --max-parallel-loads option has been renamed to --threads.

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Add list subcommand features to meta_cli (#775)

new branch after conflict with main branch

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Upgrade www and gha (#786)

Add back gleap (#791)

  • Gleap.io was removed a while back
  • this adds it back so visitors can open ticket and suggest feedback
  • internally, we will use this to fine tune the documentation

Miscellaneous Tasks

Bump v0.4.5 (#792)

  • Bumps metatype version to 0.4.5
  • Bumps ghjk to latest commit
  • Fixes setup whiz task to avoid issues on macos
  • Fixes release pipeline to publish JSR

MET-614 MET-606 MET-605 MET-613

Migration notes

No changes required.

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.4.4 - 2024-07-05

Bug Fixes

(gate) Ensure all deps are defined in import_map.json (#768)

Ensure that all deps are defined in import_map.json with a specific version.

Missing typegraphs (#755)

  • fix the typegraphs that were incorrectly formatted
  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Stable formatting and uniformize the code-loader (#766)

  • add prettier to avoid doc formatting issue
  • now explicitly require !!code-loader! to load code inside the documentation (will hopefully help also with the missing typegraphs issues, still under investigation)
  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Documentation

Generate clients from openapi (#778)

Demonstrate how to use the openapi spec to generate clients in most languages/frameworks.

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • Documentation
  • Updated REST API documentation URLs with placeholders for easier configuration.
  • Added information on generating and using OpenAPI clients, including TypeScript fetch client generation.
  • Bug Fixes
  • Corrected a regular expression in import handling to ensure accurate replacements.
  • Chores
  • Improved file writing by appending a newline character to JSON strings.

Features

Move all the configs to one single file (#733)

  • Move all the configs to one single file
  • Remove some specific configs from the global config variable and make them accessible on the Typegate instance, to improve test configurability.

Migration notes

  • SYNC_REDIS_PASSWORD has been removed, can only be set on the SYNC_REDIS_URL.

  • The change comes with new or modified tests

  • Hard-to-understand functions have explanatory comments

  • End-user documentation is updated to reflect the change


Remove restrictions for union/either types (#761)

In the previous versions, we restricted the variant types allowed in union/either to be all in the same category (after flattening multi-level unions):

  • Category 1 - GraphQL leaf types: scalar type, or array of scalar type, which require no selection set on GraphQL.
  • Category 2 - GraphQL non-leaf types: object type or array of object type, which require a selection set on GraphQL (aka selectable types in the codebase).

Those restrictions can be lifted, and the selection field of an union-type field will have inline fragments with type conditions for each Category 2 variant. No type condition is required for Category 1 types, the selection sets are not relevant.

The case that is not handled by this PR is when one of the variants is an array of union type.

Migration notes

N/A

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Typegate in meta dev, upgrade test (#776)

  • Test the typegate upgrade from the latest published version to the current version.
  • Add a flag to run an instance of the typegate with the target configuration (port, admin passsword) to meta deploy, enabled by default for meta dev.

Migration notes

If you have a script that runs meta dev, add the flag --no-typegate if you already have a typegate.

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

Add programmatic deploy tests (#769)

Add Programmatic deploy tests for the docs

  • Add programmatic typegraph deploy/remove tests
  • refactor tg_remove to accept typegraph_name instead of TypegraphOutput obj.

MET-591

Migration notes

No Migrations Needed

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Bump to version 0.4.4 (#779)

Prepare release of the 0.4.4 version.

Migration notes

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Refactor

(sdk) Back to deno + jsr exploration (#760)

  • BREAKING: back to deno + jsr exploration (#760)

Try reverting back to deno runtime for the typescript sdk in hope of making the dx easier. Hosting a custom node/npm project adds more layer of indirection which may result in cryptic issues sometimes.

This should also facilitate publishing on jsr although additional work are still required on the jco codegen side.

Migration notes

N/A

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Move to ghjk 0.2.0 (#754)

  • Refactors the ghjk.ts, CI to the latest version of ghjk
  • Bumps version to 0.4.4-0
  • Fixes race bug in python_sync tests
  • Fixes flakeout of wasm build.sh scripts due to wasm-tools EOF issue
  • #763
  • #746

Migration notes

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • Chores
  • Updated GitHub Actions workflows to use the latest version of metatypedev/setup-ghjk for improved stability and performance.
  • Modified GHJK_VERSION and various environment variables across multiple configuration files to ensure compatibility with updated dependencies.
  • Revised Dockerfiles to streamline environment setup and improve build efficiency.
  • Updated dependency management in pyproject.toml for better security and performance.
    • Enhanced logging and error handling in test scripts.

These updates collectively optimize the development environment, ensuring smoother builds and more reliable workflows.


Testing

(full) Update test runner (#705)

New test runner, by default:

  • Less verbose
  • No output for successful tests

Parallel tests re-enabled.

Migration notes

N/A

v0.4.3 - 2024-06-22

Bug Fixes

(ci) Poetry lockfile (#732)

  • Fixes poetry lockfile and adds pre-commit hook to prevent issue from happening

(docs) Fix demo typegraphs 2 (#756)

Fix example typegraphs on metatype.dev.

  • reduce.ts
  • policies.ts
  • graphql.ts
  • authentication.ts

MET_574

Migration notes

No Migrations Needed

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(docs) Fix programmatic deployment guides (#762)

  • Fix typo
  • fix/test tg deploy
  • fix/test tg remove

MET-587

Migration notes

No Migration Needed

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Only build xtask once for the tests (#720)

Use the xtask binary to run the tests.

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

    • Updated platform compatibility to x86_64-linux.
  • Added new configuration entry for enhanced versioning and platform support.

  • Improvements

  • Modified test script to use a custom build script for better test management.

These changes improve platform compatibility and streamline the testing process.


Missing typegraphs (#741)

Fix Missing Typegraphs

  • attempt to fix the missing typegraphs on metatype.dev.

MET-563

Migration notes

No Migrations Needed ...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Upload url path and add logging in the SDK (#740)

  • Fix upload url: prepare-upload returns upload tokens instead of upload urls
  • Add logging in the typegraph SDK
  • Refactor the actor system in the CLI
  • Use jsonrpc for communication between the CLI and typegraph processes (over stdin/stdout)

Migration notes

  • The typegraphs.deno section of the metatype.yaml config file has been replaced by typegraphs.typescript and typegraphs.javascript.

  • tg_deploy params has changed.

  • The change comes with new or modified tests

  • Hard-to-understand functions have explanatory comments

  • End-user documentation is updated to reflect the change

Failed typegraph deployment (#758)

  • Fix casing typo in the typescript sdk
  • Fix error reporting in the typescript sdk
  • Display the retry number
  • Warning on cancelled retry

Migration notes

N/A

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Documentation

/docs/concepts/features-overview/ (#725)

  • Re-does the feature overview page of the documentation.

Summary by CodeRabbit

  • New Features

  • Added a "Features Roadmap" component to the website, displaying a list of features with details and links.

  • Documentation

  • Updated various guides and reference documents to improve clarity and presentation of code examples.

  • Added new sections for various features such as Typegate, Typegraph, Runtimes, Prisma, Auth, Tooling, and SDK.

  • Bug Fixes

    • Corrected a typo in the GraphQL runtimes reference documentation.
  • Refactor

  • Replaced SDKTabs and TabItem components with TGExample for better code example presentation.

  • Adjusted the MiniQL component to handle optional properties and default settings.


/docs/reference/metagen + /docs/guides/wasm-functions (#751)

  • Adds /docs/reference/metagen
  • Adds /docs/guides/wasm-functions
  • Adds a codegen section to /docs/guides/external-functions

MDK-492.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

  • Added new targets for metagen with different generators and paths for TypeScript, Python, and Rust.

  • Introduced new functionality for defining and exposing typegraphs with policies in various environments (Deno, Python, Rust).

  • Added automated Rust WebAssembly project generation and compilation script.

  • Enhanced documentation with new sections and updated code examples using TGExample.

  • Bug Fixes

    • Updated .gitignore to exclude *.wasm files.
  • Documentation

  • Updated links and added detailed instructions for generating types using metagen.

  • Refactor

  • Switched from HashMap to BTreeMap and HashSet to BTreeSet in various modules for better data structure handling.

    • Added logging enhancements in the Typegate class.
  • Chores

    • Updated build script for Rust WebAssembly target.

Programmatic deployment blogpost (#752)

Blogpost to help discover programmatic deployment additions.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

  • Introduced programmatic deployment feature for deploying typegraphs within the Metatype ecosystem using TypeScript/Python SDKs.

  • Added new configuration options and deployment functions to enhance automation and flexibility in deployment processes.

  • Documentation

  • Added a new blog post detailing the programmatic deployment feature and its usage.

Features

(SDK) Add globs and dir support for artifact deps. (#698)

  • Include glob and dir support for PythonRuntime deps.
  • Include glob and dir support for DenoRuntime deps.
  • add tests

The change includes support for declaring artifact dependencies through globs and dirs

MET-441

Migration notes

In the deps parameter for python.import(...) and deno.import(...), globs and dirs can be passed in addition to files.

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

  • Introduced functionality for defining and deploying Typegraphs for Deno and Python runtimes.

  • Added support for defining a Deno runtime dependency graph with policies for test scenarios.

  • Bug Fixes

  • Corrected the structure of the Deno.serve call in the serve function.

  • Refactor

  • Enhanced method chaining for better readability in the MetaTest class.

  • Tests

  • Updated test coverage reporting to include new Deno runtime test files.

    • Commented out and removed outdated test cases in Deno runtime tests.
  • Chores

    • Updated platform specification in configuration files.

(docs) Add embedded typegate page (#747)

Embedded typegate docs page

  • need a page under meta-cli/embedded typegate to explain how that works
  • tutorials should take advantage of the embedded one
  • the embedded one should be the default everything
  • explain that there is 2 flavors in reference/meta-cli

MET-562

Migration notes

No Migrations Needed ...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(mdk) Mdk python (#707)

Mdk for python runtime

Migration notes

None

Summary by CodeRabbit

  • New Features

  • Introduced new functionalities for generating Python code based on configurations, including handling of templates and required objects.

  • Added Python script templates for defining typed functions and structured objects with comprehensive data type handling.

    • Enhanced type management and priority handling in utility functions.
  • Documentation

  • Provided detailed summaries and documentation for new functionalities and templates.

  • Refactor

  • Implemented new structures and methods for efficient code generation and type handling.

  • Tests

    • Added tests for defining typegraph structures and policies in Python.
  • Chores

  • Updated URLs in the .ghjk/deno.lock file to reflect new changes in the codebase.


(mdk) mdk_typescript (#739)

  • BREAKING: mdk_typescript (#739)
  • Implements the mdk_typescript code generator for typescript type inference on Deno runtime external modules.
  • Ports the very simple generator already present in meta-cli.
  • Removes old codegen from cli and sdk.

Migration notes

  • Metagen section of metatype.yaml has changed. Targets are now lists instead of maps, items no sporting generator field instead of key acting as ref to generator.
  • (sdk) WasmRuntime's fromExport method has been renamed to export to make it more uniform to handler.
  • (sdk) WasmRuntime export and handler method's now expect handler/func name under name instead of func.
  • (sdk) codegen flag has been removed from ArtifactsConfig object.
  • (cli) gen mod/mdk has been simplified to just gen as the previous mod option is no longer avail.

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(mdk,gate) Hostcall (#706)

Introduces a mechanism for wasm materializers to access hostgate functions.

This implements a pretty basic JSON wire interface, a singular hostcall function that's exposed to materializers. The only implemented function on this interface are gql queries.

This is a stacked PR on top of #687.

MET-473.

  • The change come with new or modified tests

Summary by CodeRabbit

  • New Features

  • Added an import statement for std_url and a new task for installing WASI adapter related files.

  • Introduced new functionalities in the application's runtime to support additional parameters and error handling.

  • Enhancements

  • Improved the application's handling of GraphQL queries with new error types and display methods.

  • Enhanced the WASM runtime build process to target a more appropriate architecture.

  • Bug Fixes

  • Fixed issues in Python and WASM runtime tests to ensure reliability and performance.

  • Documentation

  • Updated internal documentation to reflect new command interfaces and environmental interactions in the application's CLI tools.

  • Refactor

  • Refactored various internal APIs to improve code maintainability and efficiency.


(meta-test) Update t.engine() impl (#716)

Update the implementation of t.engine()

The change comes with removing the different spin-offs of t.engine which arose from the previous impl of t.engine incompatibility with artifact upload protocol. The change will make t.engine deploy the artifacts in Artifact Resolution mode by running a shell command to deploy the typegraph.

...

MET-500

  • remove different versions of t.engine
  • add tg_deploy caller script which imports typegraphs dynamically and deploys them.
  • make changes to make t.engine run in artifact resolution mode
  • update existing tests to adhere to the current change
  • pass unique different tempDirs to all the typegate instances created during test.
  • add support for authoring multiple typegraphs in a single file in meta-test and add multi typegraph tests.

Migration notes

python SDK test typegraphs' function names should be the same with the filename of the typegraph file, for dynamic import compatibility reasons.

Summary by CodeRabbit

  • New Features

  • Introduced a new function wasm_duplicate to handle WebAssembly runtimes with specific policies.

  • Refactor

  • Renamed and refactored functions and test setups to align with updated test frameworks and improve code clarity.

  • Bug Fixes

  • Added error handling in the getLocalPath function to log warnings if linking errors occur.

  • Tests

  • Updated test scripts to reflect changes in function calls, imports, and engine instantiation for better test accuracy and reliability.

Doc polish (#735)

  • doc polish and cleanup
  • upgrade website except Docusaurus as the css issue is stil present
  • bump to next pre-release
  • not everything is done, but let's iterate!

Summary by CodeRabbit

  • New Features

    • Added platform compatibility for x86_64-linux.
  • Introduced new functionalities for generating Python code and enhanced type management.

  • Added import statement for std_url and new task for installing WASI adapter files.

  • Enhanced runtime support for additional parameters and error handling.

  • Improvements

  • Enhanced GraphQL query handling with new error types and display methods.

  • Improved WASM runtime build process for better architecture targeting.

  • Documentation

    • Updated feature overview and added a "Features Roadmap" component.
    • Enhanced various guides and references for better clarity.
  • Added new sections for Typegate, Typegraph, Runtimes, Prisma, Auth, Tooling, and SDK.

    • Corrected typos and improved code example presentation.
  • Bug Fixes

    • Fixed issues in Python and WASM runtime tests to ensure reliability.

Miscellaneous Tasks

(docs) Replace term materializer with function for user facing concepts (#736)

Materializer and function might introduce confusion as they are pretty much the same thing from the user point of view, one can be defined in terms of the other.

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • Documentation
  • Updated terminology from "materializers" to "functions" across various documentation files to reflect a semantic shift and provide clearer descriptions.
  • Improved clarity in descriptions of custom functions, runtimes, and their roles in the Metatype computing model.
  • Corrected typos and refined explanations in multiple guides and reference documents.

These changes enhance the readability and consistency of our documentation, making it easier for users to understand and implement the features and concepts within the system.

(docs) Embedded typegate (v0.3.x) blog (#750)

Add a blog about Embedded Typegate.

MET-564

Migration notes

No Migrations Needed

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

  • Introduced a new blog post on emulating server nodes locally using the Embedded Typegate feature in Meta CLI.

  • Added a new BlogIntro component to the website for displaying styled blog introductions.

  • Documentation

  • Updated documentation to explain how to spin up a local instance of Typegate for testing and development.

  • Chores

  • Updated platform compatibility from "x86_64-linux" to "aarch64-darwin".

(website) g.rest reference at /docs/reference/rest (#734)

Add reference page for g.rest(..)

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • Documentation
    • Added a reference to the REST reference section in the REST guide.
    • Introduced new documentation for consuming APIs using Metatype.
  • Included examples in Python and TypeScript for interacting with REST APIs.
    • Explained query types, dynamic queries, and endpoint access.
  • Provided guidance on accessing auto-generated documentation and downloading the OpenAPI spec.

Bump deno to 1.43.6 (#737)

Update deno to 1.43.6 and make requisite changes.

Required because of dep conflicts with latest lade-sdk.

Migration notes

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Update rust dependencies (#748)

update Rust dependencies

MET-479

Migration notes

No Migrations Needed

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Bump METATYPE_VERSION to 0.4.3 (#764)

v0.4.2 - 2024-05-22

Bug Fixes

(release) Fix fat CLI compilation (#730)

  • Fix fat CLI compilation

  • Bump to 0.4.2

  • Bump wasmtime to 21

  • Bump rust to 1.78.0

  • The change comes with new or modified tests

  • Hard-to-understand functions have explanatory comments

  • End-user documentation is updated to reflect the change


v0.4.1 - 2024-05-20

Bug Fixes

(SDK) Artifact upload fails when same file referred multiple times (#715)

  • fix the bug where duplicate artifact references causing failure during artifact resolution(typegate) during runtime.
  • add sync mode tests for Python and Deno runtime.
  • add other edge test cases to artifact upload.
    • test for no artifact in typegraph
    • test for duplicate artifact reference in the same typegraph

(gate) Improve logging and responses, prepare 0.4.1 (#714)

  • Logging before and after each faillible operation
    • Runtimes: foreign resolvers
  • Always log before reporting error: HTTP response
  • Fix error code in artifact_service
  • Add BaseError class for structured messages in responses

Summary by CodeRabbit

  • New Features

  • Updated Docker image versions and dependency versions to ensure compatibility and stability.

    • Added a search functionality to the app.
  • Bug Fixes

  • Enhanced error handling with specific error classes for more detailed error messages.

  • Refactor

  • Replaced generic Error instances with specific error classes for better error categorization.

  • Refactored error handling in HTTP response functions to use a BaseError class.

  • Chores

  • Updated version numbers across multiple configuration files to 0.4.1-0.


Features

Polish documentation and project (#696)

  • update the headline, the overviews and many other documentation areas
  • upgrades the dependencies.
  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • Bug Fixes

  • Updated Docker image version for the typegate service to ensure stability and compatibility.

  • Documentation

  • Revised TAGLINE for better clarity on supported languages: WASM, Typescript, and Python.

  • Updated version declarations for improved consistency and functionality across multiple files.


Miscellaneous Tasks

(docs) Final polish to comparison table. (#709)

some changes to comparison table(docs)

Migration notes

No Migrations Needed

Summary by CodeRabbit

  • Documentation
  • Introduced a new section on Artifact Tracking Protocol in the architecture documentation, explaining artifact classification and tracking modes in Metatype.
  • Updated comparisons documentation with additional platforms, criteria for choosing Metatype, and detailed feature comparison tables.
  • Renamed project directory for clarity and consistency in project setup documentation.
  • Bug Fixes
    • Removed outdated TODO comment in installation documentation.

Bump to version 0.4.1-0 (#713)

  • Bumps version to 0.4.1-0.
  • Fixes broken release CI.
  • #719
  • Adds 20 minutes to test-full timeout.

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

  • Updated platform support for better compatibility with "x86_64-linux".

  • Bug Fixes

  • Minor version updates across multiple configurations to enhance stability.

  • Chores

  • Updated version numbers from "0.4.0" to "0.4.1-0" across various files and configurations.

  • Refactor

  • Adjusted build and test scripts for improved efficiency and compatibility.

  • Documentation

  • Enhanced internal documentation to reflect version and platform changes.


v0.4.0 - 2024-05-09

Bug Fixes

(ci) Fix broken nighly jobs (#659)

Fixes the broken nightly builds. Look at solved results here.

Motivation and context

Nightly builds were broken due to oversight during the #571 fixes.

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(gh-tests) Fix local npm registry config (#692)

Fix the NPM registry config in the Github tests.

Migration notes

N/A

Set max log level based on verbose flag (#664)

Set max log level based on verbose flag

Motivation and context

MET-445

Migration notes

n/a

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Fix secret passing (#675)

Fix secret passing in examples and documentation.

Motivation and context

Followup to #666.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Website and headline (#691)

Motivation and context

Fix the CSS issue introduced by docusaurus 3.2.0 (https://github.com/facebook/docusaurus/issues/10005). 3.2.1 should fix it but the affected version maybe loaded by dependencies, so we will have to wait a bit more.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Do not override log level when no verbosity flag is present (#694)

Remove log level override by the verbosity flag when no flag is present. It will default to the configured env_logger default level (or env variable).

...

The default log level became "error" after #664, and RUST_LOG environment variable where ignored.

Migration notes

N/A

Documentation

Start rebranding (#641)

Motivation and context

Changing the intro.

Migration notes

None.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Add reference/programmatic-deployment/ (#686)

Motivation and context

Add missing docs for tgDeploy, tgRemove

Migration notes

None

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Add examples for each command (#684)

Motivation and context

Getting started with meta cli should be easy

Migration notes

None

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Improve /tutorials/quick-start section. (#681)

  • Improve Layout
  • Include a simple project.
  • Add the result/outputs to running CLI commands.
  • Remove Metatype cloud registration form.
  • Separate the CLI commands to separate code blocks
  • Add links to references and concepts.
  • Add playground.

Motivation and context

Docs Meta-task

Migration notes

No Migration Needed

Checklist

  • Test the commands and the examples.
  • The change come with new or modified tests

Improve /docs/tutorials/metatype-basics (#688)

Improve /docs/tutorials/metatype-basics

Motivation and context

Docs Meta-task

Migration notes

No Migrations Needed

Checklist

  • The change come with new or modified tests

Improve /reference/runtimes/ (#676)

Motivation and context

Better documentation

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Improve /guides/external-functions (#677)

  • Improvements to the /guides/external-functions page.
  • Adds a configuration file for git-town

Motivation and context

N/A

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Improve docs/reference/types (#685)

Improves docs/reference/types

Motivation and context

N/A

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Add a comparison b/n metatype and other similar solutions/products. (#697)

  • Adds a comparison table between metatype and other similar services.
  • Add artifact upload protocol to Architecture section in docs.

MET-443

Migration notes

No Migration Needed

Features

(cli) Long running discovery (#599)

Delegate serialize, deploy, undeploy, unpack work to SDK.

Motivation and context

Remove duplicate logic, thinking of cli as a convenience on top of the SDK.

Migration notes

When meta cli is used, Migration files are unpacked/resolved relative to the typegraph's path, not the process's workdir.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(cli) meta gen (#636)

Adds a command to meta-cli to invoke metagen.

Motivation and context

MET-424

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(cli) Timeout loader process (#693)

(cli,sdk) Codegen command (#661)

Motivation and context

Enable back codegen on current cli implementation.

Migration notes

None

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(cli,sdk) Better error messages (#689)

Motivation and context

Make it more clear where failures happen

Migration notes

None

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(gate) Wasmtime support (#669)

  • BREAKING: wasmtime support (#669)

Motivation and context

Enable support for wit and facilitate readiness for the upcoming specs.

Migration notes

#[wasmedge_bindgen] are replaced by wit bindings.

In the old version we were restricted to#[wasmedge_bindgen], which was only available in Rust and unique to WasmEdge.

#[wasmedge_bindgen]
fn add(a: u32, b: u32) -> u32 {
a + b
}

In the new implementation, wasm modules written in any language that uses the wit interface are now natively supported within typegate.

// wit/example.wit
package example:host;
world host {
export add: func(a: u32, b: u32) -> u32;
}

An implementation (eg. in Rust) may look like this..

// src/lib.rs
wit_bindgen::generate!({ world: "host" });
struct MyLib;
impl Guest for MyLib {
fn add(a: u32, b: u32) -> u32 {
a + b
}
}
export!(MyLib);

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(gate,cli) $DENO_V8_FLAGS (#647)

Enables the DENO_V8_FLAGS env var for tuning v8.

Motivation and context

MET-435 or #621

Migration notes

  • This just exposes the deno paramter directly. Refer to deno or v8 docs for more details.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(metagen) Metagen mdk rust (#624)

Implements the general framework for metagen including a generator for rust based wasm mat functions modules.

Motivation and context

MET-420

Migration notes

No breaking changes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(sdk) .tgignore file support (#633)

Motivation and context

Set what files/folders should be ignored when using the custom expand_path function in an external .tgignore file. .tgignore will behave similarly to most .ignore files with basic glob syntax support.

Migration notes

expand_glob has been renamed to expand_path

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(sdk) Introduce flag for disabling hashing artifacts + move hash to rust (#645)

Motivation and context

The mdk codegen and typegraph mutually depends on each other (typegraph needs a concrete mdk.wasm for hashing, and for the mdk.wasm to be built, it needs type generation based on the typegraph) Add a flag to enable processing a partial typegraph when using meta gen (partial == no artifact resolution).

Migration notes

get_file_hash has been moved to core sdk (under the name hash_file)

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(sdk, gate, cli) Upload protocol poc uploading wasm file for WasmEdge Runtime for single replica mode (#631)

Upload protocol for wasm files and atrifacts for WasmEdge Runtime for single replica mode

Motivation and context

  • Upload WasmEdge Runtime artifacts during typegraph deploy
  • Access and load WasmEdge Runtime artifacts from the local file system from typegate

Migration notes

No Migrations Needed

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Raw prisma query through the typegate runtime (#634)

  • Enable prisma query execution through the typegate runtime

Motivation and context

Console.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Store the typegraph on s3 (#620)

  • BREAKING: Store the typegraph on s3 (#620)

Store the typegraph on s3 for multiple instance support mode.

Motivation and context

Reduce Redis data.

Migration notes

Environment variables:

  • REDIS_URL has been removed
  • For multiple instance support, the following variables are required: SYNC_REDIS_URL, SYNC_S3_HOST, SYNC_S3_REGION, SYNC_S3_BUCKET, SYNC_S3_ACCESS_KEY, SYNC_S3_SECRET_KEY; and the following variables are optional: SYNC_REDIS_PASSWORD, SYNC_S3_PATH_STYLE. Otherwise, none of them can be set.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Remove secret definitions through env vars (#666)

  • BREAKING: Remove secret definitions through env vars (#666)

Remove the ability to define secrets in the env vars of the typegate.

Secrets can now only be defined in the metatype config file and the --secret CLI option.

Motivation and context

MET-370

  • Security
  • Better DX

Migration notes

  1. Metatype config file: On the node configuration, secrets are defined at secrets.<tg_name>.key:
# before
typegates:
dev:
env:
TG_CONSOLE_POSTGRES_CONN: postgresql://postgres:password@localhost:5432/db?schema=console
TG_CONSOLE_BASIC_ADMIN: password

#after
typegates:
dev:
secrets:
console:
POSTGRES_CONN: postgresql://postgres:password@localhost:5432/db?schema=console
BASIC_ADMIN: password
  1. Secret override option on meta/cli
# before
meta deploy -f my-tg.py --secret TG_CONSOLE_POSTGRES_CONN=postgresql://postgres:password@localhost:5432/db?schema=console

# after
meta deploy -f my-tg.py --secret POSTGRES_CONN=postgresql://postgres:password@localhost:5432/db?schema=console
# or - with the typegraph name
meta deploy -f my-tg.py --secret console:POSTGRES_CONN=postgresql://postgres:password@localhost:5432/db?schema=console

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Add queryPrismaModel in the typegate runtime (#635)

The queryPrismaModel function on the typegate typegraph queries rows from a prisma model.

Motivation and context

Console.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Upload artifacts to s3 (#638)

Upload artifacts to S3 when sync-mode is enabled

Motivation and context

Sharing artifacts between replicas without including it in the typegraph (and sync through redis)

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Upload PythonRuntime artifacts and deps (#672)

Motivation and context

Track artifact/module dependencis for PythonRuntime

Migration notes

python.import(...) and python.import_(...) accept an optional parameter deps that accepts list of dependencies for the python module.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Upload DenoRuntime artifacts and deps (#674)

  • Track deno runtime artifacts(also dependencies)
  • Upload artifacts during deploy to either local(single replica) or shared(s3)
  • resolve artifacts(module and deps) upon typegate runtime.

Motivation and context

Persisting deno runtime artifacts to a local/shared storage.

Migration notes

deno.import(...) and deno.import_(...) accept an optional parameter that accepts list of dependencies for the deno/ts module.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Enable batch prisma queries in the typegate runtime (#682)

Enable batch prisma queries (and transaction) in the typegate runtime

Motivation and context

Console

MET-381

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Artifact removal (#668)

  • Add GC: remove artifacts when unreferenced by any deployed typegraph
  • Improve resource management: use AsyncDisposable and AsyncDisposableStack
  • Improve testability (for parallel testing): always read the tmpDir config from the Typegate object

Motivation and context

MET-433

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

  • New Features

    • Enhanced search functionality with the addition of a new search bar.
    • Introduced new test configurations to improve script execution.
  • Updated artifact storage documentation to clarify management processes.

    • Added new extensions to support improved code commenting.
  • Bug Fixes

  • Removed outdated Deno import mapping settings to streamline development environment setup.

  • Documentation

  • Expanded documentation on artifact tracking and management, including reference counting and garbage collection mechanisms.

  • Refactor

  • Implemented interface changes in QueryEngine for better async disposal management.

  • Code restructuring in artifact management for enhanced performance and maintainability.

  • Chores

  • Adjusted settings and configurations in the development environment to align with current best practices.

  • Tests

  • Introduced new test cases for artifact upload and management functionalities.


Miscellaneous Tasks

(release) Prepare 0.4.0 (#710)

Bumps version to release 0.4.0.

Summary by CodeRabbit

  • New Features
  • Updated the software across various components to version 0.4.0, enhancing functionality and potentially introducing new features or fixes.
  • Documentation
  • Updated version documentation in multiple configuration files to reflect new version 0.4.0.
  • Bug Fixes
  • Adjusted version constants and dependencies to ensure compatibility and stability with the new software version 0.4.0.

(sdk,gate) Bump wasmtime to 20.0.0 and wit-bindgen to 0.24.0 (#695)

Refactor

(gate) Wasi 0.2 pyrt (#687)

  • Rewrites the PythonRuntime host using a componentize-py based component.
  • Leaf through this memo for a mental model.

(libs/xtask,gate) Remove xtask/codegen (#700)

Faster build time

Migration notes

Make sure to sync typegate/src/types.ts when an update is made on the typegraph schema.

(sdk,gate) Improve temporal rt (#642)

  • BREAKING: improve temporal rt (#642)

Improve the temporal runtime exposing more parameters and adding more tests.

Motivation and context

MET-397. The old implementation was bug-ridden and did not expose necessary params.

Migration notes

API changes to TemporalRuntime ctor, methods and generated materializers.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Pass test options in the first parameter (#667)

Pass the test options in the first parameter along with the test name/description.

Motivation and context

Avoid scrolling to the end of the test function to see/update the test options.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Testing

Use local npm registry for tests (#646)

Use verdaccio local npm registry for tests:

  • The @typegraph/sdk package is published to the local npm registry, and can now be consumed like any npm package from Nodejs or Deno.

Motivation and context

...

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

tg-sdk-verdaccio

v0.3.6 - 2024-03-14

Bug Fixes

Optimize typegraph size (#618)

  • Hash all type data to compare them on the conversion phase in typegraph/core: remove duplicate types from type final typegraph (duplicate: same value for all the fields except for the "random" name/title).
  • Skip unreferenced types in .apply

Motivation and context

Typegraph is too big sometimes.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

Prepare release v0.3.6 (#626)

Prepare release v0.3.6

Motivation and context

N/A

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change