- Read our FAQ.
- Check out python examples and Pipelines.
- Check out our Kanban board. You can work on one of the existing issues or create a new one.
- Start the conversation under the issue you picked. We will discuss the design and content of the pull request, and then you can start working on it.
- Fork the repository.
- Clone it locally.
- Create a branch with a name that speaks for itself.
- Set up the environment. You can install the library in dev mode via
pip install -e . - Implement the discussed functionality, docstrings, and tests for it.
- Run tests locally using commands from
Makefile. - Push the code to your forked repository.
- Create a pull request to OpenMetricLearning.
- If you want to change
README.mdyou should go todocs/readme, change the desired section and then build readme viamake build_readme. So, don't change the main readme file directly, otherwise tests will fail. - Don't forget to update the documentation if needed. Its source is located in
docs/source. To inspect it locally, you should runmake html(fromdocsfolder) and then opendocs/build/html/index.htmlin your browser.
- Add the model's implementation under
oml/models. - Implement
from_pretrained()and add the corresponding transforms. - Add the model to
oml/registryandoml/configs. - Evaluate model on 4 benchmarks and add the results into ZOO table in the main Readme.
- Implement your changes in one of the pipelines (
extractor_training_pipeline,extractor_validation_pipelineor others). - Add a new test or modify an existing one under
tests/test_runs/test_pipelines. - If adding a new test:
- Add config file:
tests/test_runs/test_pipelines/configs/train_or_validate_new_feature.yaml - Add python script:
tests/test_runs/test_pipelines/train_or_validate_new_feature.py - Add test:
tests/test_runs/test_pipelines/test_pipelines.py
- Add config file:
- If you want to add some new criterion, miner, model, optimizer, sampler, lr scheduler or transforms, don't forget to
add it to the corresponding registry (see
oml.registry) and also add a config file (seeoml.configs).