All notable changes to this project will be documented in this file.
v0.5.0-rc.5 - 2024-11-10
Meta dev does not exit properly upon `SIGTERM` (#895)
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
Fix optional field filter in apply (#909)
- Fix the optional field filter on apply: resolve types before matching.
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
Grpc annoucement blog (#872)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(cli) Watch artifacts (#897)
- Solve MET 710.
- ...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
Substantial function secrets support (#908)
- Add support for passing secrets to substantial workflows
- Bump version to 0.5.0-rc5
- The change comes with new or modified tests
License change to MPL Version 2.0 (#899) - BREAKING: license change to MPL Version 2.0 (#899)
All license headers has changed to MPL 2.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.5.0-rc.4 - 2024-11-05
(typegraph) Send rpc message in chunks in the TS typegraph client (#904)
- Send the JSON-RPC message is chunks in the TypeScript typegraph client to prevent reaching the line size limit for stdout. Note: we could not reproduce the issue locally as it only occurs when using the published package for Node.js.
- Use JSON-RPC notification for logging and report from the typegraph clients.
- Other changes:
- Use relative paths for static task sources in the CLI;
- Fix TODO in
meta gen
: pass the working directory on theworking_dir
param ofSerializeActionGenerator::new
.
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
Speculative fix for `typegate_prisma_test.ts` (#898)
- Assigns special schemas for each test that relies on the
runtimes/prisma/prisma.py
typegraph. - Bumps version tag to 0.5.0-rc4
- Fixes issues in release pipeline
- Disables all but the
test-full
job when the test pipeline is run with tmate enabled.
The flakeout of typegate_prisma_test.ts
has proved difficult to
recreate. Looking at the code and going from recent similar cases, I
suspect it happens due to the old code reusing the same pg schema for
multiple tests. Assigning special schemas for each tests should
hopefully help.
N/A
- The change comes with new or modified tests
v0.5.0-rc.3 - 2024-10-30
Update license file (#890)
Commit d84e4ed6c3f88d52c95f1491a050daa924e14b87 moved the
LICENSE-MPL-2.0.md
file. This PR adjusts sources to changes.
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
Minor bug fixes (#894)
- Bug with typegraph context reset around deno_modules
- Bug with typegate onPush hook error detection and typegraph parsing of such errors
- Bug with artifact resolution when they're reused.
- Bug with return type of the KvRuntime get functions
- Bumps metatype to 0.5.0-rc.3
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
Add substantial (#891)
- docs
- N/A
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
v0.5.0-rc.2 - 2024-10-24
Fix `.apply` serialization error with optional structs (#886)
- Fix the error on
.apply
when the apply tree goes beyond an optional struct, mostly changing the implementation ofresolve_optional
method. - Improve the errors when we encounter an exception raise by
Result::Err
from typegraph_core.
...
- 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 GraphQL alias support for prisma runtime (#887)
- Add GraphQL alias support for prisma runtime
...
- 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.5.0-rc.1 - 2024-10-22
(ci) Disable sccache when secrets not avail (#874)
- Makes sccache optional so PRs from dependabot and forks can still run the test suite.
- Increases sccache allotment to 50g.
(cli) Change default installation directory (#873)
- Remplacement PR for #843.
- ...
...
- 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) Grpc docs (#852)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(gate) Make __typename returns the variant name on unions (#838)
- Add missing implementation for static injection for parameter transformations on the typegate
- Solves
MET-642:
Fix the
__typename
result on union variants: return the variant name instead of the parent type name
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
(subs) Key collision on redis (#865)
Follow up of #863 When multiple start occurs for redis, some schedules can happen exactly at the same time resulting into the same identifier (and leading to an inconsistent state).
This solution simply combines the schedule
with the run_id making it
unique instead of using it as is.
mutation AllAtOnce {
a: start_retry(kwargs: { .. }) # => calls add_schedule( ... date ...)
b: start_retry(kwargs: { .. })
c: start_retry(kwargs: { .. })
d: start_retry(kwargs: { .. })
e: start_retry(kwargs: { .. })
f: start_retry(kwargs: { .. })
# ..
}
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
Fix missing images (#847)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
Improve name generation for prisma types (#849)
Solve MET-657
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(blog) Running python with WebAssembly part 1 (#823)
Running python with webassembly (part 1)
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
-
New Features
-
Introduced a comprehensive guide for integrating Python runtime with WebAssembly (WASI) in the Metatype ecosystem.
-
Detailed the advantages of using WebAssembly over Docker for platform independence and resource management.
-
Provided technical requirements and a refined solution for executing Python scripts in a sandboxed environment.
-
Expanded vocabulary with new relevant terms for enhanced text processing and validation.
-
Documentation
-
Updated YAML configuration structure in documentation for clarity on type gate usage.
`/docs/reference/typegraph/client` (#777)
Pre-documentation for the code-first queries feature.
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(dev) Typegraph explorer (#859)
- Add a web version of tree-view which is more interactive
- Enable typegraph serialization without
metatype.yml
config file
(gate) Empty object as custom scalar (#876)
- Allow empty object on the output without any change
- Just like
Int
,String
, and such, rightfully refer the constant{}
as a scalar - Any empty object will now be refered as
EmptyObject
scalar
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
(mdk) Overridable templates (#842)
Solve MET-630
- Make templates in the static sections overridable
-
mdk_rust
-
mdk_python
-
mdk_typescript
-
- Add a CLI tool to generate extract the default template
No changes 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
(metagen) Union/either for clients (#857)
- Add union support for the
client_xx
metagen implementations.
There are still some edge cases especially around variant identification in the client languages. I tried many things but our hands are tied by serde. Basically, users will have to be careful when designing their union types to avoid ambiguity cases. Hopefully, 674 will help there.
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
New Features
-
Introduced new methods for rendering union types in both TypeScript and Python.
-
Enhanced GraphQL query generation with support for multiple union types.
-
Added a new
variants
property to theNodeMeta
type for improved selection handling. -
Bug Fixes
- Improved error handling for node selections and argument processing.
-
Tests
-
Updated test cases to reflect schema changes and added new tests for client functionality.
(subs) Redis backend (#855)
- Redis Backend base logic port + some improvements
- Moved
SUBSTANTIAL_POLL_INTERVAL_SEC
andSUBSTANTIAL_LEASE_LIFESPAN_SEC
to config
- Renamed
Backend.fs()
andBackend.memory()
toBackend.dev_fs()
andBackend.dev_memory()
- Removed
SUBSTANTIAL_RELAUNCH_MS
as it was relevant only for purely worker-based runs, which rendered the newSUBSTANTIAL_POLL_INTERVAL_SEC
redundant when an interrupt hits.
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
New Features
-
Introduced Redis as a new backend option for enhanced data management.
- Added Docker Compose configuration for a Redis service.
-
Implemented comprehensive testing for Redis functionality and backend integration.
-
Bug Fixes
- Improved error handling during backend initialization.
-
Documentation
-
Updated type definitions for backend configurations to streamline Redis integration.
-
Chores
-
Refactored test cases for clarity and consistency across different backend types.
(subs) Retry + timeout on save (#863)
Port and improve retry/timeout.
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
(subs) Child workflows + docs (#867)
Support for child workflows.
Solves MET-689 and MET-668.
Previously
sub = SubstantialRuntime(backend)
hello = sub.deno(file="workflow.ts", name="sayHello", deps=[])
g.expose(
# each function start, stop, result, ... holds a copy of the workflow data
start_hello = hello.start(...),
stop_hello = hello.stop()
)
This approach relied on workflow files being referenced in each
materializer, but the constructs were too restrictive to support
something like mutation { results(name: "nameManuallyGiven") }
.
We now have instead
file = (
WorkflowFile
.deno(file="workflow.ts", deps=[])
.import_(["sayHello"])
.build()
)
# workflow data are refered only once
sub = SubstantialRuntime(backend, [file])
g.expose(
start_hello = sub.start(...).reduce({ "name": "sayHello" }),
stop = sub.stop()
)
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(subs,gate) Substantial integration (#844)
(subs,gate) Port agent concept (#845)
Continuation of #844
Well-defined type comparison semantics (#846)
Solve MET-655
- Document the type comparison semantics
- Improve the implementation (
EnsureSubtypeOf
trait) - Add more test cases for type comparisons
No change is 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
-
New Features
-
Introduced comprehensive type comparison rules and semantics for scalar types, optionals, lists, objects, and unions.
-
Added support for enumerated types in the type system, allowing for more precise type definitions.
-
Enhanced parent injection mechanism documentation to clarify type compatibility requirements.
-
Implemented a new suite of type comparison tests and validation mechanisms.
-
Bug Fixes
-
Improved error reporting and handling in the type validation process.
-
Documentation
-
Updated and expanded documentation for type comparisons, enumerations, and parent injections.
-
Tests
- Added new tests for type comparison and validation scenarios.
Grpc runtime (#819)
...
- The change comes with new or modified tests
- End-user documentation is updated to reflect the change
- Hard-to-understand functions have explanatory comments
Python hostcall (#860)
Dead lock on python worker
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
Checks/validation on t.either (#868) - BREAKING: Checks/validation on t.either (#868)
Emit a warning or an error when a variant is a subtype of another one.
BREAKING CHANGE: Previously valid typegraph might fail validation.
You will need to fix your types to add some consistency in
t.either
/t.union
types.
- 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 prisma + deno + rust deps (#869)
- Bump deno to 1.46.3
- Update prisma-engines to 5.20
- Update other rust deps.
Closes MET-669 and MET-622 and MET-680.
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(gate) Add err msg for missing env vars (#827)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(gate) Use stream during artifact upload to s3 (#841)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(gen, doc) Rename mdk to fdk (#851)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(sdk) Remove index based names (#848) - BREAKING: remove index based names (#848)
- Replace index based names for types by one that relies on type context in graph
- Tests for type deduplication
TODO
- 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 as_id out of `TypeNode` (#866) - BREAKING: Move as_id out of `TypeNode` (#866)
- common/typegraph
- Store the id field in
ObjectTypeData
instead of in the target type (as_id
)- Add
id()
method ont.integer
andt.string
- Add
- typegraph/core
- Store
as_id
,injection
andpolicy
inTypeRef::attribute
- Add support for direct and link target in
TypeRef
- Only allow name registration for
TypeDef
- Store
- Semantics
- Use property name instead of type name in from_parent injection source
BREAKING CHANGE
from_parent
injections source shall be changed to the key in the
parent t.struct
instead of the type name.
- 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 injection data to `t.func` (#871)
- Move all injection data in
ObjectTypeData
(i.e.t.func
)
- Translate reduce to injection specification on
t.func
- Remove runtime field from
TypeNode
(#858)
- Move runtime-related configs to
MaterializerData
orRuntimeData
- Misc.
- Enable random ports for the typegate (when
TG_PORT=0
); this will work withmeta dev
with embedded typegate if you set the--gate
option with port0
.
...
- 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.10 - 2024-09-04
Bump to v0.4.10 (#835)
- Bump v0.4.10
v0.4.10-rc1 - 2024-09-03
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
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
(release) Prepare 0.4.9-rc2 (#829)
- Fix the minor issues with rc1
- Bump to rc2
v0.4.9-rc1 - 2024-09-02
(docs) Post on `Durable Execution`. (#816)
(metagen) Client_ts (#790)
- Implements
client_ts
as described in #777 .
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
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
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)
- 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, gate) Push for `meta dev` instead of `meta typegate` on docs (#822)
- add a warning that envs are not set.
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/
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
-
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
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 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
Kv runtime (#797)
...
- The change comes with new or modified tests
- End-user documentation is updated to reflect the change
- Hard-to-understand functions have explanatory comments
Bump to 0.4.8-0 (#810)
- Bump prerelease
- Fix minor issue with release pipeline
v0.4.7 - 2024-08-08
(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.
...
- 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)
...
- 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 0.4.7-0 (#805)
- Bump version to 0.4.7-0
(docs) Add how to test typegraphs doc (#798)
- add python doc
- add ts doc
- upgrade bitnami/minIo image to 2024?
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
-
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
...
- 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
Better arg split logic for MCLI_LOADER (#799)
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
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
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
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.
(docs) Better documentation on `quick-start` page (#793)
- add dev hunt result to homepage.
...
- 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
Broken pipeline for 0.4.4 (#782)
Fixes erroneous usage of setup-deno
which has been replaced by ghjk
itself.
...
- 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.
...
- 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
...
- 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.
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
(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
.
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
...
- 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
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
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
(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
Generate clients from openapi (#778)
Demonstrate how to use the openapi spec to generate clients in most languages/frameworks.
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
- 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.
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.
-
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.
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
.
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
Add programmatic deploy tests (#769)
- Add programmatic typegraph deploy/remove tests
- refactor tg_remove to accept
typegraph_name
instead ofTypegraphOutput
obj.
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.
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
(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.
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
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
- 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.
(full) Update test runner (#705)
New test runner, by default:
- Less verbose
- No output for successful tests
Parallel tests re-enabled.
N/A
v0.4.3 - 2024-06-22
(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
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
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
-
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)
Fix Missing Typegraphs
- attempt to fix the missing typegraphs on metatype.dev.
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)
-
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
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
`/docs/concepts/features-overview/` (#725)
- Re-does the feature overview page of the documentation.
-
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)
- Adds
/docs/reference/metagen
- Adds
/docs/guides/wasm-functions
- Adds a codegen section to
/docs/guides/external-functions
MDK-492.
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
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.
...
- The change comes with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
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.
(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
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
-
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)
- 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
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
None
-
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.
- 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
-
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.
...
- 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.
python SDK test typegraphs' function names should be the same with the filename of the typegraph file, for dynamic import compatibility reasons.
-
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!
-
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.
(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.
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
- 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)
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
-
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(..)
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
- 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.
- 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
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
(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
(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
-
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
.
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
-
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.
(docs) Final polish to comparison table. (#709)
some changes to comparison table(docs)
No Migrations Needed
- 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.
-
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
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.
No Migration Needed
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
N/A
- The change come with new or modified tests
- Hard-to-understand functions have explanatory comments
- End-user documentation is updated to reflect the change
-
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.
(release) Prepare 0.4.0 (#710)
Bumps version to release 0.4.0.
- 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.
(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
Make sure to sync typegate/src/types.ts
when an update is made on the
typegraph schema.