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)
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.
- Added
(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)
meta dev
instead of meta typegate
on docs (#822)Flatten deps and improve repo folder (#821)
- Renames
libs/
tosrc/
. - Moves
typegate/
,meta-cli
,typegraph/
,meta-lsp/
tosrc/
. - Renames
dev/
totools/
- Moves
website/
todocs/metatype.dev
/ - Moves
src/typegate/tests
totests/
- Moves
src/typegraph/deno/dev
totools/jsr/
- Moves
src/typegraph/deno/sdk
tosrc/typegraph/deno/
- Renames
src/deno
tosrc/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
totools/task/*.ts
- Moves
cliff.toml
,Cross.toml
,ruff.toml
totools/
- 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
config bug (#814)$WASM_BACKTRACE_DETAILS
was enabled inmain
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.
- Enhanced readability of the
-
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)
quick-start
page (#793)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 theSYNC_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 formeta 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 ofTypegraphOutput
obj.
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)
(docs) Fix programmatic deployment guides (#762)
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
.
- Updated platform compatibility to
-
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)
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 themetatype.yaml
config file has been replaced bytypegraphs.typescript
andtypegraphs.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)
/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
andTabItem
components withTGExample
for better code example presentation. -
Adjusted the
MiniQL
component to handle optional properties and default settings.
/docs/reference/metagen
+ /docs/guides/wasm-functions
(#751)
/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.
- Updated
-
Documentation
-
Updated links and added detailed instructions for generating types using
metagen
. -
Refactor
-
Switched from
HashMap
toBTreeMap
andHashSet
toBTreeSet
in various modules for better data structure handling.- Added logging enhancements in the
Typegate
class.
- Added logging enhancements in the
-
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)
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
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 theserve
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
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
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)
mdk_typescript
(#739)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 sportinggenerator
field instead of key acting as ref to generator. - (sdk) WasmRuntime's
fromExport
method has been renamed toexport
to make it more uniform to handler. - (sdk) WasmRuntime
export
andhandler
method's now expect handler/func name undername
instead offunc
. - (sdk)
codegen
flag has been removed fromArtifactsConfig
object. - (cli)
gen mod/mdk
has been simplified to justgen
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)
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.
...
- 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
tempDir
s 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
.
- Added platform compatibility for
-
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.
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)
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)
rust
dependencies (#748)Bump METATYPE_VERSION
to 0.4.3 (#764)
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.
- Removed outdated
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)
Set max log level based on verbose flag (#664)
Fix secret passing (#675)
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)
Add reference/programmatic-deployment/
(#686)
reference/programmatic-deployment/
(#686)Add examples for each command (#684)
Improve /tutorials/quick-start
section. (#681)
/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
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)
/docs/tutorials/metatype-basics
(#688)Improve /reference/runtimes/
(#676)
/reference/runtimes/
(#676)Improve /guides/external-functions
(#677)
/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)
docs/reference/types
(#685)Add a comparison b/n metatype and other similar solutions/products. (#697)
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)
meta gen
(#636)(cli) Timeout loader process (#693)
(cli,sdk) Codegen command (#661)
(cli,sdk) Better error messages (#689)
(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)
$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)
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)
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
- Security
- Better DX
Migration notes
- 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
- 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)
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)
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)
Artifact removal (#668)
- Add GC: remove artifacts when unreferenced by any deployed typegraph
- Improve resource management: use
AsyncDisposable
andAsyncDisposableStack
- Improve testability (for parallel testing): always read the tmpDir
config from the
Typegate
object
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
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
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