Thank you for considering contributing to MLOps for Vision Part of Infosys Topaz! We appreciate your help in making this project better.
There are many ways to help, not just writing code:
- File issues with reproducible steps, logs, environment details.
- Suggest improvements to APIs, UX, docs, examples.
- New modules (data loaders, transforms, metrics, evaluators, visualization utilities).
- Model support (wrappers, export/import utilities, ONNX/TensorRT tooling).
- Pipelines (training, inference, batch/stream processing).
- Integrations (cloud storage, message queues, experiment trackers, model registries).
- CLI tools and scripts.
- Improve README sections, add tutorials/how‑to guides, concept explainers.
- Create example notebooks and end‑to‑end walkthroughs.
- Add API reference docstrings and diagrams.
- Write troubleshooting and migration guides.
- Unit, integration, and regression tests.
- Add test fixtures, synthetic datasets, and mocks.
- Increase coverage and tighten CI checks.
- Profiling, caching, vectorization, distributed training/inference.
- Observability hooks (logging, metrics, tracing).
- CI/CD pipelines, release automation, Docker images.
- Triage issues, answer questions, label tickets.
- Curate “good first issue” tasks and mentor newcomers.
- Git ≥ 2.30
- Python ≥ 3.10 (virtualenv or conda recommended)
- Optional: Docker, CUDA/cuDNN for GPU, Make
- Fork the repository.
- Clone your fork locally.
- Create a new branch for your changes:
git checkout -b feature-name
- Make your changes and commit them:
git commit -m "feat: describe your change" - Push your branch:
git push origin feature-name
- Open a Pull Request (PR) to the
mainbranch.
- Ensure you have all required dependencies installed.
- Example for Python:
pip install -r requirements.txt
A quick orientation to where code lives — please place new contributions in the folder that matches their role:
module/— Core pipeline components (training, validation, embeddings, report generation, patch inference, etc.). Each file typically exposes a class or top-level function that is wired into a pipeline stage.utility/— Standalone helper scripts and small utilities (label checks, image processing, JSON ops, logging helpers). Prefer this folder for reusable tools that are not part of a specific pipeline stage.src/— Vendored object-detection scaffold (bounding boxes, evaluators, metric enumerators) consumed bygt_inference.py. Treat as upstream code; avoid unrelated edits.framework_config/— JSON / YAML configuration files that drive pipeline behavior.general_config.jsonselects the platform (raw_data_source,pipeline_platform,pipeline_type); the corresponding platform-specific JSON (e.g.local_config.json,ai_cloud_config.json) supplies the details. New pipelines should ship their own config file here.main.py/pipeline_manager.py/config_manager.py— Entry point, dynamic pipeline builder, and config loader respectively.ConfigManagerreads the JSONs above and hands typed config objects to the pipeline factory inpipeline_manager.py, which usesimportlibto build the requested pipeline.
When adding a new pipeline type, the usual touch-points are: a new class in module/, a matching config file in framework_config/, and a route entry in pipeline_manager.py / config_manager.py.
- Follow PEP8 for Python code style.
- Use descriptive commit messages (e.g.,
fix: resolve issue with API response). - Keep code modular and well-documented.
- Run all tests before submitting a PR:
pytest
- Add tests for any new functionality.
- Use GitHub Issues to report bugs or request features.
- Provide detailed steps to reproduce the issue.
- Ensure your PR:
- Passes all tests.
- Includes relevant documentation updates.
- Is linked to an issue if applicable.
By contributing, you agree that your contributions will be licensed under the same license as this project.
Thank you for helping improve MLOps for Vision Part of Infosys Topaz!