Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Artifact removal #668

Merged
merged 92 commits into from
May 8, 2024
Merged

feat: Artifact removal #668

merged 92 commits into from
May 8, 2024

Conversation

Natoandro
Copy link
Contributor

@Natoandro Natoandro commented Apr 9, 2024

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

Motivation and context

MET-433

Migration notes

N/A

Checklist

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

Summary by CodeRabbit

  • New Features

    • Enhanced search functionality with the addition of a new search bar.
    • Introduced new test configurations to improve script execution.
    • Updated artifact storage documentation to clarify management processes.
    • Added new extensions to support improved code commenting.
  • Bug Fixes

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

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

    • Implemented interface changes in QueryEngine for better async disposal management.
    • Code restructuring in artifact management for enhanced performance and maintainability.
  • Chores

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

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

Natoandro and others added 30 commits March 23, 2024 23:12
# 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:
#	.ghjk/deno.lock
#	.ghjk/lock.json
#	.github/workflows/tests.yml
#	dev/lock.yml
#	ghjk.ts
#	typegate/import_map.json
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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.

Yohe-Am
Yohe-Am previously approved these changes May 7, 2024
@Yohe-Am
Copy link
Contributor

Yohe-Am commented May 7, 2024

The "New Features" section that the LLM added to your PR description seems to be full of hallucinations.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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

destifo
destifo previously requested changes May 8, 2024
Copy link
Contributor

@destifo destifo left a comment

Choose a reason for hiding this comment

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

Good Stuff!!

michael-0acf4
michael-0acf4 previously approved these changes May 8, 2024
Copy link
Contributor

@michael-0acf4 michael-0acf4 left a 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!

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 for AsyncDisposableStack to avoid potential conflicts or issues with module resolution.


[!TIP]
Codebase Verification

The output from the executed script shows the implementation of the asyncDispose method in the TypegateManager class, which is located in the typegate/tests/utils/test.ts file. The method uses Promise.all to asynchronously dispose of all typegates managed by the TypegateManager. However, there is no explicit error handling mechanism, such as a try-catch block, to manage potential rejections from the asyncDispose calls of individual typegates.

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 the asyncDispose calls fail.

Conclusion

The review comment is correct in pointing out the absence of error handling in the asyncDispose method of the TypegateManager class. It would be beneficial to add a try-catch block around the Promise.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 the asyncDispose method to manage potential rejections from the asyncDispose 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 5

Length of output: 16823


Line range hint 60-71: The implementation of asyncDispose in ServeResult should ensure that the server is properly shut down. Consider adding error handling for the shutdown method.

-            await server.shutdown();
+            try {
+                await server.shutdown();
+            } catch (error) {
+                console.error('Failed to shutdown server:', error);
+            }

@Natoandro Natoandro dismissed stale reviews from destifo and coderabbitai[bot] May 8, 2024 20:34

Done!

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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

Copy link

codecov bot commented May 8, 2024

Codecov Report

Attention: Patch coverage is 83.66412% with 107 lines in your changes are missing coverage. Please review.

Project coverage is 73.85%. Comparing base (0cdd241) to head (6c7fd3c).

Files Patch % Lines
typegate/src/typegate/artifacts/local.ts 76.33% 31 Missing ⚠️
typegate/src/typegate/artifacts/mod.ts 84.07% 18 Missing ⚠️
typegate/src/typegate/artifacts/shared.ts 88.88% 18 Missing ⚠️
typegate/src/engine/query_engine.ts 71.42% 10 Missing ⚠️
typegate/src/typegate/mod.ts 91.52% 5 Missing ⚠️
typegate/src/utils.ts 50.00% 4 Missing ⚠️
typegate/src/runtimes/http.ts 0.00% 3 Missing ⚠️
typegate/src/runtimes/typegate.ts 25.00% 3 Missing ⚠️
typegate/src/typegraph/versions.ts 50.00% 3 Missing ⚠️
typegate/tests/utils/s3.ts 76.92% 3 Missing ⚠️
... and 8 more
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.
📢 Have feedback on the report? Share it here.

@Yohe-Am Yohe-Am merged commit 50b064b into main May 8, 2024
13 checks passed
@Yohe-Am Yohe-Am deleted the file-removal branch May 8, 2024 23:27
Yohe-Am added a commit that referenced this pull request May 22, 2024
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]>
Yohe-Am added a commit that referenced this pull request May 22, 2024
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants