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

Auto-Synthesize Ingestion Package Manifest Files #10

Closed
baoluomeng opened this issue Mar 9, 2023 · 4 comments · Fixed by #30, #31 or #48
Closed

Auto-Synthesize Ingestion Package Manifest Files #10

baoluomeng opened this issue Mar 9, 2023 · 4 comments · Fixed by #30, #31 or #48
Assignees
Labels
enhancement New feature or request

Comments

@baoluomeng
Copy link
Contributor

baoluomeng commented Mar 9, 2023

Background:
To promote rapid RACK development we want a feature that will auto-updates RACK reference resources (manifests) when a project is updated.

Acceptance Criteria:
When a 'Regenerate Manifest' button is clicked in RITE, the manifests within the workspace should be updated with all references to RACK files within the corresponding project.

Implementation Details:
Add a RACK 'Regenerate Manifests' button that walks the RACK project tree, collects all RACK manifest references within the project, and updates (overwrites) the manifest with those found references

@baoluomeng
Copy link
Contributor Author

Reserve this issue for Eric @glguy
Copy Dan's comment from the original issue below.

I see it as there is 4 different types of files we may want to synthesize:

Ontology Ingestion YAML- This should be easy to do just based on the OwlModels folder and the .owl files in a given project. Could add an optional user options to select a graph to be loaded into, although we never currently do that for RACK.

Nodegroup Ingestion CSV - This would need additional human intervention to define the identifiers and descriptions for the node groups so I would see this as a tool that would collect of the nodegroup jsons and then prompt the user to include exclude them and fill in the required data then generate the data_store.csv

Data Ingestion YAML- This is often going to be unnecessary as other tools will already do this, for example the STK and ASSIST both already create this yaml file. The IDE may be able to help generate these from new CSVs but would need to have user input for things like what type of class or what nodegroup should be associated with the CSV. Typically, I would not expect users to be populating CSV by hand, but rather generating them from some sort of export from a data source (DOORS, git, CAMEO etc.). So a simple selection of CSV and create ingestion from selected items should be more than my adequate. Then that would have some sort of secondary interface would allow the user to select a graph and a class/nodegroup to ingest the file, ideally the IDE could suggest an appropriate class/nodegroup.

Manifest YAML- This should be just a matter of finding the existing ingestion files of the previous 3 type and putting them into the manifest along with some book keeping to collect the footprints and add reference project manifests.

It may be a nice feature to have the IDE have feedback as to what items are include in the ingestion package and which aren't. I thinking of something similar to TortoiseGit where the icon will indicate the git status of an item, in TortoiseGit it indicates whether or not the file is include in the source repository, In this case it would indicate if the file has been included into the ingestion package for the project.

Of these 4 file tips the Manifest and the Ontology are in my mind the most useful as well as are the ones that need the least amount input from the user. While the other two may be useful at times, I believe that they would be used less often because there is already other tools that help with it in the case of data ingestion yaml, and are just not done as much as in the the case of the nodegroups

@glguy glguy self-assigned this Mar 9, 2023
@glguy
Copy link
Collaborator

glguy commented Mar 9, 2023

I don't consider this a synthesis task as much as I consider it an editor task. I'd like the IDE to understand the YAML files it finds and to be able to edit and extend them.

It should be able to reflect to the user which classes a CSV file is associated from the YAML file and make it possible to do things like look up data of those classes, change the class, use a subtype, etc.

It should understand what the ingestion steps mean and should enable the user to reorder the process or to visualize it.

Ideally it supports editing the YAML files as well as rendering them and enables the user to configure his ingestion project without being required to manually edit YAML, but it should be compatible with YAML files generated from other mechanisms, editors, or automation.

@chrisage chrisage changed the title Auto-synthesize manifest and import yaml files Auto-Synthesize Manifest and Import Yaml files May 23, 2023
@chrisage
Copy link
Contributor

chrisage commented May 24, 2023

Splitting auto-synthesize manifest from auto-synthesize import yamls to limit scope. Auto-Synthesize import.yaml (model, data, nodegroups) a more complicated feature requiring a separate project plan.

@chrisage chrisage added the enhancement New feature or request label May 24, 2023
@chrisage chrisage added this to the May-RACK PI Meeting-Sprint-3 milestone May 24, 2023
@chrisage chrisage changed the title Auto-Synthesize Manifest and Import Yaml files Auto-Synthesize Ingestion Package Manifest files May 24, 2023
@chrisage chrisage changed the title Auto-Synthesize Ingestion Package Manifest files Auto-Synthesize Ingestion Package Manifest Files May 24, 2023
@chrisage
Copy link
Contributor

chrisage commented May 24, 2023

Closing since AC met (PR Merged) after scope change
Import.yaml Scope Split to Github Issue Auto-Synthesize Ingestion Package Import.Yaml Files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment