keep Contributing guide in synch with datalad-concept #93

Merged
adina merged 1 commit from contr into main 2025-08-21 09:04:15 +00:00

View file

@ -25,8 +25,8 @@ hatch shell
Presently, this work require a patched linkml installation.
The patch(es) are listed in `patches/`.
The script `tools/patch_linkml` documents how they need to be applied.
This script can be used to patch a local installation, and is also executed in the actions that validate the included data models.
In order to apply the patch, run
``hatch`` automatically applies the patch post installation, and as long as you're using a hatch environment or hatch based check/script, there is nothing you need to do.
However, if you need to do it outside of `hatch`, run the following command to patch manually:
```
bash tools/patch_linkml
@ -65,6 +65,20 @@ hatch shell
make checkmodel/flat-data/unreleased
```
### Switching import locations
Although most rules will perform this action automatically, the following command allows to switch from a remote-URL import to an import from a local file (which is relevant when, for example, there is no remote URL yet to import from, or you are testing local changes):
```
make imports-local
```
Its opposite command, reverting imports back to remote URLs, is
```
make imports-remote
```
### Example conversion
Each schema has example data used for testing.
@ -108,5 +122,13 @@ linkml convert -o ds.ttl -s src/flat-data/unreleased.yaml --target-class-from-pa
## Useful hints for a contribution workflow
* Patches get regularly updated, and they are not re-applied automatically in an existing hatch environments. If in doubt, wipe the environment and re-create it, for example using ``hatch env prune``.
* Because LinkML allows imports from other schemas, there may be more to the classes or slots you see defined in any given file.
In order to figure out easily which slots are available or even required, we recommend that you **render the documentation locally**, as this allows you to browse through the classes and discover also information that comes from other schemas.
In order to figure out easily which slots are available or even required, we recommend that you **render the documentation locally**, as this allows you to browse through the classes and discover also information that comes from other schemas.
* A broad swipe of checks for any new or existing component can be achieved with the following command composition (where one replaces ``component`` with the schema name):
```
export component=flat-data; make checkmodel/$component/unreleased convertexamples/$component/unreleased checkvalidation/$component/unreleased
```