-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Artifact removal #668
Conversation
# Conflicts: # typegate/deno.lock # typegate/import_map.json # typegate/src/typegate/mod.ts # typegate/src/typegraph/types.ts # typegate/tests/utils/mod.ts # typegate/tests/utils/test.ts
# Conflicts: # typegate/deno.lock # typegate/tests/runtimes/wasmedge/wasmedge.ts
# Conflicts: # .ghjk/deno.lock # .ghjk/lock.json # .github/workflows/publish-website.yml # .github/workflows/release.yml # .github/workflows/tests.yml # Cargo.lock # dev/Dockerfile # dev/cross.Dockerfile # dev/lock.yml # ghjk.ts # whiz.yaml
# Conflicts: # .ghjk/deno.lock # .ghjk/lock.json # Cargo.lock # ghjk.ts # libs/common/src/typegraph/runtimes/mod.rs # typegate/src/typegraphs/introspection.json # typegate/src/typegraphs/typegate.json # typegraph/core/src/conversion/runtimes.rs # typegraph/core/src/typegraph.rs # typegraph/core/src/utils/postprocess/mod.rs # typegraph/core/src/utils/postprocess/wasmedge_rt.rs # typegraph/core/wit/typegraph.wit # typegraph/node/sdk/src/runtimes/wasmedge.ts # typegraph/node/sdk/src/utils/file_utils.ts # website/static/specs/0.0.3.json
# Conflicts: # poetry.lock
# Conflicts: # .ghjk/deno.lock # .ghjk/lock.json # .github/workflows/tests.yml # dev/lock.yml # ghjk.ts # typegate/import_map.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Out of diff range and nitpick comments (1)
typegate/tests/runtimes/deno/deno_partial.py (1)
8-22
: Ensure consistent use of decorators and function definitions.The
@typegraph()
decorator is used here, but it's not clear if it's necessary or correctly applied as there's no direct indication of its purpose from the provided code. It would be beneficial to add a comment explaining its use or to verify its necessity.
The "New Features" section that the LLM added to your PR description seems to be full of hallucinations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 10
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good Stuff!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good so far!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
Out of diff range and nitpick comments (3)
typegate/tests/utils/test.ts (3)
16-16
: Consider using a more specific import path forAsyncDisposableStack
to avoid potential conflicts or issues with module resolution.
[!TIP]
Codebase VerificationThe output from the executed script shows the implementation of the
asyncDispose
method in theTypegateManager
class, which is located in thetypegate/tests/utils/test.ts
file. The method usesPromise.all
to asynchronously dispose of alltypegates
managed by theTypegateManager
. However, there is no explicit error handling mechanism, such as atry-catch
block, to manage potential rejections from theasyncDispose
calls of individualtypegates
.Given this, the review comment suggesting the need for proper error handling in the
asyncDispose
method is valid. The current implementation could lead to unhandled promise rejections if any of theasyncDispose
calls fail.Conclusion
The review comment is correct in pointing out the absence of error handling in the
asyncDispose
method of theTypegateManager
class. It would be beneficial to add atry-catch
block around thePromise.all
call to handle possible rejections appropriately.
- File:
typegate/tests/utils/test.ts
- Method:
async [Symbol.asyncDispose]()
- Suggestion: Implement error handling to manage potential rejections from the
asyncDispose
calls.Analysis chain
Line range hint
40-56
: Ensure proper error handling in theasyncDispose
method to manage potential rejections from theasyncDispose
calls.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify proper error handling in `asyncDispose` method of `TypegateManager`. # Test: Search for error handling patterns in `asyncDispose` method. Expect: Catch blocks or error handling mechanisms. rg --type ts 'asyncDispose' --context 5Length of output: 16823
Line range hint
60-71
: The implementation ofasyncDispose
inServeResult
should ensure that the server is properly shut down. Consider adding error handling for theshutdown
method.- await server.shutdown(); + try { + await server.shutdown(); + } catch (error) { + console.error('Failed to shutdown server:', error); + }
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #668 +/- ##
==========================================
- Coverage 73.95% 73.85% -0.10%
==========================================
Files 121 120 -1
Lines 13555 13776 +221
Branches 1383 1393 +10
==========================================
+ Hits 10024 10174 +150
- Misses 3507 3576 +69
- Partials 24 26 +2 ☔ View full report in Codecov by Sentry. |
wip: python mdk feat: represent union, either with Union feat: solve cycles, order python types by priority fix: self-reference fix: premature checks docs: add a comparison b/n metatype and other similar solutions/products. (#697) <!-- Pull requests are squash merged using: - their title as the commit message - their description as the commit body Having a good title and description is important for the users to get readable changelog. --> <!-- 1. Explain below WHAT the change is --> - Adds a comparison table between metatype and other similar services. - Add artifact upload protocol to `Architecture` section in docs. <!-- 2. Explain below WHY the change cannot be made simpler --> <!-- 3. Explain below WHY the was made or link an issue number --> [MET-443](https://linear.app/metatypedev/issue/MET-443/include-comparisons-with-other-products-similar-to-metatype) <!-- 4. Explain HOW users should update their code or remove that section --> _No Migration Needed_ <!-- 5. Readiness 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 --> refactor(gate): wasi 0.2 pyrt (#687) - Rewrites the PythonRuntime host using a `componentize-py` based component. - Leaf through this [memo](https://hackmd.io/@SC-qT-WXTROceKYdNA-Lpg/ryyAXiQlC/edit) for a mental model. Todo: - [x] `PythonRuntime.import_` support #699 - [x] ~~Add `pyrt.wasm` to release job~~ obviated by `build.rs` Items for other PRs: - Implemen `hostcall` MET-404. _No end-user changes required_ - [x] The change come with new or modified tests - [x] Hard-to-understand functions have explanatory comments - [ ] End-user documentation is updated to reflect the change --------- Co-authored-by: afmika <[email protected]> cleanups fix: pre-commit fix: forward-refs fix: top level simple types test(metagen): python mdk cleanups and small fixes feat(metagen): codegen decorator and some cleanups feat(metagen): always merge defs if refered file is the same fix(metagen): prioritize relto typegraph path only if base.path is empty feat: Artifact removal (#668) - Add GC: remove artifacts when unreferenced by any deployed typegraph - Improve resource management: use `AsyncDisposable` and `AsyncDisposableStack` - Improve testability (for parallel testing): always read the tmpDir config from the `Typegate` object [MET-433](https://linear.app/metatypedev/issue/MET-433/file-removal) _N/A_ - [x] The change come with new or modified tests - [x] Hard-to-understand functions have explanatory comments - [x] End-user documentation is updated to reflect the change <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Natoandro <[email protected]> Co-authored-by: destifo <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> chore(release): prepare 0.4.0 (#710) Bumps version to release 0.4.0. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Natoandro <[email protected]> chore(docs): final polish to comparison table. (#709) some changes to comparison table(docs) _No Migrations Needed_ <!-- 5. Readiness 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 --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> chore: 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. <!-- 5. Readiness 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 --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Yohe-Am <[email protected]> feat: polish documentation and project (#696) <!-- Pull requests are squash merged using: - their title as the commit message - their description as the commit body Having a good title and description is important for the users to get readable changelog. --> <!-- 1. Explain below WHAT the change is --> - update the headline, the overviews and many other documentation areas - upgrades the dependencies. <!-- 2. Explain below WHY the change cannot be made simpler --> <!-- 4. Explain HOW users should update their code or remove that section --> - [ ] The change come with new or modified tests - [ ] Hard-to-understand functions have explanatory comments - [x] End-user documentation is updated to reflect the change <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Teo Stocco <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> feat(sdk): expose metagen to `typegraph/sdk` (#718) Expose metagen features to `typegraph/sdk` Depends on #707 and #696 None <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **New Features** - Introduced new `Metagen` class for code generation tasks in both TypeScript and Python SDKs. - Added functionality for defining policies and structures for deployment examples using Node.js. - **Improvements** - Enhanced `Metagen` class with methods for simulating and executing code generation tasks. - Simplified file reading and writing functions for better performance and maintainability. - **Bug Fixes** - Refined `compress_and_encode` function to streamline file handling processes. - **Tests** - Added comprehensive tests for `Metagen` functionality in both TypeScript and Python SDKs. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Teo Stocco <[email protected]> Co-authored-by: Teo Stocco <[email protected]> Co-authored-by: Teo Stocco <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Estifanos Bireda <[email protected]> Co-authored-by: Yohe-Am <[email protected]>
wip: python mdk feat: represent union, either with Union feat: solve cycles, order python types by priority fix: self-reference fix: premature checks docs: add a comparison b/n metatype and other similar solutions/products. (#697) <!-- Pull requests are squash merged using: - their title as the commit message - their description as the commit body Having a good title and description is important for the users to get readable changelog. --> <!-- 1. Explain below WHAT the change is --> - Adds a comparison table between metatype and other similar services. - Add artifact upload protocol to `Architecture` section in docs. <!-- 2. Explain below WHY the change cannot be made simpler --> <!-- 3. Explain below WHY the was made or link an issue number --> [MET-443](https://linear.app/metatypedev/issue/MET-443/include-comparisons-with-other-products-similar-to-metatype) <!-- 4. Explain HOW users should update their code or remove that section --> _No Migration Needed_ <!-- 5. Readiness 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 --> refactor(gate): wasi 0.2 pyrt (#687) - Rewrites the PythonRuntime host using a `componentize-py` based component. - Leaf through this [memo](https://hackmd.io/@SC-qT-WXTROceKYdNA-Lpg/ryyAXiQlC/edit) for a mental model. Todo: - [x] `PythonRuntime.import_` support #699 - [x] ~~Add `pyrt.wasm` to release job~~ obviated by `build.rs` Items for other PRs: - Implemen `hostcall` MET-404. _No end-user changes required_ - [x] The change come with new or modified tests - [x] Hard-to-understand functions have explanatory comments - [ ] End-user documentation is updated to reflect the change --------- Co-authored-by: afmika <[email protected]> cleanups fix: pre-commit fix: forward-refs fix: top level simple types test(metagen): python mdk cleanups and small fixes feat(metagen): codegen decorator and some cleanups feat(metagen): always merge defs if refered file is the same fix(metagen): prioritize relto typegraph path only if base.path is empty feat: Artifact removal (#668) - Add GC: remove artifacts when unreferenced by any deployed typegraph - Improve resource management: use `AsyncDisposable` and `AsyncDisposableStack` - Improve testability (for parallel testing): always read the tmpDir config from the `Typegate` object [MET-433](https://linear.app/metatypedev/issue/MET-433/file-removal) _N/A_ - [x] The change come with new or modified tests - [x] Hard-to-understand functions have explanatory comments - [x] End-user documentation is updated to reflect the change <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Natoandro <[email protected]> Co-authored-by: destifo <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> chore(release): prepare 0.4.0 (#710) Bumps version to release 0.4.0. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Natoandro <[email protected]> chore(docs): final polish to comparison table. (#709) some changes to comparison table(docs) _No Migrations Needed_ <!-- 5. Readiness 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 --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> chore: 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. <!-- 5. Readiness 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 --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Yohe-Am <[email protected]> feat: polish documentation and project (#696) <!-- Pull requests are squash merged using: - their title as the commit message - their description as the commit body Having a good title and description is important for the users to get readable changelog. --> <!-- 1. Explain below WHAT the change is --> - update the headline, the overviews and many other documentation areas - upgrades the dependencies. <!-- 2. Explain below WHY the change cannot be made simpler --> <!-- 4. Explain HOW users should update their code or remove that section --> - [ ] The change come with new or modified tests - [ ] Hard-to-understand functions have explanatory comments - [x] End-user documentation is updated to reflect the change <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **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. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Teo Stocco <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> feat(sdk): expose metagen to `typegraph/sdk` (#718) Expose metagen features to `typegraph/sdk` Depends on #707 and #696 None <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **New Features** - Introduced new `Metagen` class for code generation tasks in both TypeScript and Python SDKs. - Added functionality for defining policies and structures for deployment examples using Node.js. - **Improvements** - Enhanced `Metagen` class with methods for simulating and executing code generation tasks. - Simplified file reading and writing functions for better performance and maintainability. - **Bug Fixes** - Refined `compress_and_encode` function to streamline file handling processes. - **Tests** - Added comprehensive tests for `Metagen` functionality in both TypeScript and Python SDKs. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Teo Stocco <[email protected]> Co-authored-by: Teo Stocco <[email protected]> Co-authored-by: Teo Stocco <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Estifanos Bireda <[email protected]> Co-authored-by: Yohe-Am <[email protected]>
AsyncDisposable
andAsyncDisposableStack
Typegate
objectMotivation and context
MET-433
Migration notes
N/A
Checklist
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Refactor
QueryEngine
for better async disposal management.Chores
Tests