# Adding components to an ODK repo
For details on what components are, please see component section of [repository file structure document](../odk-workflows/RepositoryFileStructure.md).
To add custom components to an ODK repo, please follow the following steps:
1) Locate your odk yaml file and open it with your favourite text editor (src/ontology/aeon-odk.yaml)
2) Search if there is already a component section to the yaml file, if not add it accordingly, adding the name of your component:
```
components:
products:
- filename: your-component-name.owl
```
3) Add the component to your catalog file (src/ontology/catalog-v001.xml)
```
```
4) Add the component to the edit file (src/ontology/aeon-edit.obo)
for .obo formats:
```
import: http://purl.obolibrary.org/obo/aeon/components/your-component-name.owl
```
for .owl formats:
```
Import()
```
5) Refresh your repo by running `sh run.sh make update_repo` - this should create a new file in src/ontology/components.
6) In your custom makefile (src/ontology/aeon.Makefile) add a goal for your custom make file. In this example, the goal is a ROBOT template.
```
$(COMPONENTSDIR)/your-component-name.owl: $(SRC) ../templates/your-component-template.tsv
$(ROBOT) template --template ../templates/your-component-template.tsv \
annotate --ontology-iri $(ONTBASE)/$@ --output $(COMPONENTSDIR)/your-component-name.owl
```
(If using a ROBOT template, do not forget to add your template tsv in src/templates/)
7) Make the file by running `sh run.sh make components/your-component-name.owl`