-
Notifications
You must be signed in to change notification settings - Fork 4
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
SKILL Package Management Proposal #3
Comments
Hi Curtis, |
Hey Thomas, The idea is to install Virtue packages using pip or Conda that contain both a Python as well as Virtue Skill++ packages. Then you can use the virtue CLI with the Then you can check which SKILL packages are installed using the It's usually much easier to handle these issues by moving them into Python and reusing existing solutions as much as possible so we don't have to reinvent the wheel. We could even provide a gui for inspecting the Virtue SKILL environment inside Virtuoso by calling the virtue CLI from SKILL. -Curtis |
The version issue could be handled by being able to activate and deactivate different virtual environments. We could also consider supporting multiple versions of a package within a single Virtue SKILL environment. This would be more complicated than the virtual environments but could be necessary in certain cases or provide performance benefits. The Virtue SKILL++ packages should be able to enable this since they're installed into the Import table and so we could select different versions when they are imported into a particular let statement's lexical scope. |
Problem Statement
We need a way to manage SKILL packages and keep track of the following meta data for the project:
We should be able to "import" packages to avoid defining them globally.
Proposed Solution
A SKILL package is described in "Using SKILL++" section of the SKILL User's guide as a "named let", a let that returns a DPL (decomposed property list)
Each project will have a top-level SKILL package called a "project package" whose symbol is in the Virtue projects and modules tables. Its symbol is named after the project.
The top-level SKILL package for a project, the "project package" will have a method to create a new package. This will register the package with the project package. The project package will be an item directly in the Import table.
We can import sub-packages from the project's top-level "project package"
local packages will be defined as part of a let at the beginning of a file similar to local variables.
Example package definition
Alternatives Considered
Proposed Action Plan
The text was updated successfully, but these errors were encountered: