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] We should load/build extensions when needed #260

Closed
plutoless opened this issue Nov 12, 2024 · 4 comments · Fixed by #320, #324 or #343
Closed

[FEAT] We should load/build extensions when needed #260

plutoless opened this issue Nov 12, 2024 · 4 comments · Fixed by #320, #324 or #343
Assignees
Labels
bug Something isn't working

Comments

@plutoless
Copy link
Contributor

Description

Currently, regardless of specifying extensions in property.json graph or not, ten will build and load all extensions under ten_packages/extensions folder. As we are having more than 20 extensions now, it's causing performance issues and make the development unnecessary long

Environment

linux

Steps to reproduce

any development

Expected behavior

build and load when run should be fast.
only extensions relevant to graph should be build and loaded

Actual behavior

regardless of specifying extensions in property.json graph or not, ten will build and load all extensions under ten_packages/extensions folder

Version

0.4.0

Severity

Critical

Additional Information

No response

@plutoless plutoless added the bug Something isn't working label Nov 12, 2024
@plutoless
Copy link
Contributor Author

plutoless commented Nov 12, 2024

Runtime Requirements and Setup

The runtime should be able to:

Determine Build Inclusion: Decide whether to include specific components in the build based on the manifest.
Decide on Loading: Use the graph to decide if a component should be loaded.
To implement this, we can start by setting up an environment initialization step. For instance, running:

make build --agent=example/westwoold

This command will:

Create symbolic links (ln) for manifest.json and property.json from example/westwoold to the agents directory.
Set these linked files as the default configurations for the build.
This approach enables selective and flexible builds, allowing the system to dynamically include or exclude agents as specified in their manifest files.

@wangyoucao577
Copy link
Collaborator

Only install requirements(building time) and load(run time) for given python extensions are the top priority for this issue. c++/go extensions aren't criticial here.

@halajohn halajohn self-assigned this Nov 23, 2024
@github-project-automation github-project-automation bot moved this to Done in Kanban Nov 24, 2024
@halajohn halajohn reopened this Nov 24, 2024
@github-project-automation github-project-automation bot moved this from Done to In Progress in Kanban Nov 24, 2024
@halajohn halajohn linked a pull request Nov 24, 2024 that will close this issue
@github-project-automation github-project-automation bot moved this from In Progress to Done in Kanban Nov 25, 2024
@halajohn halajohn reopened this Nov 25, 2024
@github-project-automation github-project-automation bot moved this from Done to In Progress in Kanban Nov 25, 2024
@halajohn
Copy link
Member

It is now possible to load C++ and Python extensions based on the dependencies specified in the App's manifest.json.

For the Go ecosystem, the Go app's build scripts need to be modified. The next step is to update the Go app's build scripts to determine which Go extensions to compile based on the dependencies listed in the App's manifest.json.

@halajohn halajohn assigned halajohn and unassigned halajohn Nov 25, 2024
@halajohn halajohn linked a pull request Nov 28, 2024 that will close this issue
@halajohn
Copy link
Member

Through #343, the functionality of loading extensions in Go based on the dependencies specified in the app's manifest.json has also been completed.

@github-project-automation github-project-automation bot moved this from In Progress to Done in Kanban Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment