Commit cde04172 authored by Mark Wutka's avatar Mark Wutka
Browse files

Modified README

parent 7827d38a
Loading
Loading
Loading
Loading
+15 −2
Changes for README.md: 15 added lines, 2 removed lines.
Original line number Diff line number Diff line
# CAID-tools
The CAID-tools are a software-suite for tracking dependencies across different types of tools and storages. At the core is the depi-server which provides a protocol for viewing, adding and linking resources, reporting in updates in resources, etc. For the different supported tools there are user-interfaces (here implemented as vscode-extensions) and adapter/monitors that report in updates to the resources. The currently supported tools are `git`, `git-gsn` and `webgme`.

TODO: Reword the following:
In Depi, _Resources_ belong to a _Resource-Group_, and a _Resource-Group_ belongs to a _Tool_.
What exactly constitutes a _Resource-Group_ or a _Resource_ is specific to each individual _Tool_.
For example, in `git`, a _Resource-Group_ is a repository, and each _Resource_ is a file or
directory contained within that repository. Because each _Tool_ may have its own representation of
_Resource-Groups_ and _Resources_ there needs to be some external support for a new _Tool_
in the Depi.

First of all, there needs to be a way to add _Resources_ from that tool to the Depi
Blackboard. Once they are in the Depi Blackboard, a user can link those resources with
resources that belong to other tools. The other support necessary is a way to notify the
Depi server of changes in a _Tool_'s resources. For example, for `git` there is a script that
runs whenever code is pushed to a `git` repo. The script gives the Depi server a list of the
_Resources_ that have changed and what kind of change it was (add/rename/modify/delete). The
Depi then makes any necessary adjustments to its internal structures (for instance, changing the
name of a renamed resource), and also calculates what linked resources need to be examined.

In Depi, these different types of artifacts or _Resources_ are referred to as _Tools_, here `webgme`, `git` and `git-gsn`. A _Tool_ needs to the very least provide an interface for adding new _Resources_ (linking them can be done via the Depi Blackboard UI) and a mechanism for reporting in updates in the _Resources_. An actual collection of _Resources_ from a _Tool_ is referred to as _Resource-Group_. In the case of `git` a _Resource-Group_ is a specific repository and the _Resources_ are either files or directories within that repository. 

| Tool | Resource-Group | Resources | Monitor | GUI / vscode-extension |
| --- | --- | --- | --- | --- |