Skip to content

Latest commit

 

History

History
55 lines (34 loc) · 4.65 KB

CONTRIBUTING.md

File metadata and controls

55 lines (34 loc) · 4.65 KB

Contribution Guidelines

Introduction

This document outlines the general process for contributing to the codebase of the GSoC project you're participating in. It includes essential information about forking repositories, creating pull requests, testing your changes, and submitting them for review. Please follow these guidelines to ensure smooth collaboration and efficient project progress.

How to Contribute

We use the Pull Request (PR) mechanism to propose and review contributions to the codebase.

Creating the Pull Request

  1. Push from fork

    • Once your code is ready, push your changes to the branch on your fork. Ensure that you’re pushing to the correct branch.
  2. Open a PR

    • Go to the original repository and open a Pull Request (PR) from your fork's branch to the project's main branch.
    • In the PR description, provide a detailed explanation of what your changes do and why they are needed. This information will be communicated during deadlines by mentors to the community.
  3. PR Reviews and Iterations

    • Once your PR is opened, mentors will review and evaluate your changes. If they request modifications or improvements, make the necessary adjustments in your branch and push them.
    • The review process may involve multiple iterations, so be patient and responsive to feedback.

Reproducibility in Research Contributions

Reproducibility is the cornerstone of scientific integrity. It ensures that experiments, results, and conclusions can be verified and trusted by the scientific community. In computational research, this means that the code, data, and methods used in experiments must be easily accessible and replicable by others.

For the success of this project, it is crucial that all experiments, benchmarks, and tests are reproducible. This not only strengthens the credibility of the research but also facilitates collaboration, validation, and further development. Researchers who are able to reproduce experiments can identify potential flaws, validate findings, and contribute their own improvements, which accelerates the advancement of knowledge.

Guidelines for Ensuring Reproducibility

  1. Documentation

    • Always provide clear, detailed documentation for your experiments. This includes the exact versions of the code, libraries, and frameworks used, as well as any specific configurations (e.g., hyperparameters, environment variables, hardware specifications).
    • Use requirements.txt, Dockerfiles, or similar tools to specify the exact dependencies and versions necessary to run the experiments. If your work involves machine learning, consider using conda environments or virtualenv to ensure consistency across setups.
  2. Storage

    • Store all relevant data that your experiments rely on (including training data, validation data, and evaluation results). This ensures that others can use the same data to replicate your work.
    • Avoid using sensitive or private data unless proper consent and licenses are in place. Ensure that all data used in experiments is publicly accessible when possible (or anonymized).
  3. Sharing Your Results

    • When contributing, always include the results of your experiments, not just the code. This can include metrics, performance benchmarks, logs, and visualizations. These results will help others understand and reproduce your work.
    • Consider using tools like Jupyter Notebooks or Google Colab to create sharable, interactive experiments that include code, data, and visual results in one accessible place.
  4. Use Reproducible Research Tools

    • Explore and adopt tools designed specifically to support reproducible research. For example, Binder or Runestone can create shareable and executable environments, while DVC (Data Version Control) helps track data changes alongside code.
    • Use Docker or other containerization tools to package your entire experiment environment (including dependencies, libraries, and data) into a portable container that can be run anywhere.

In summary, reproducibility is not just a technical requirement; it is a fundamental part of the scientific process. It ensures that our contributions are transparent, verifiable, and can have a lasting impact. By adhering to these guidelines, we ensure that our work can stand the test of time and contribute to the scientific community's collective knowledge.

Conclusion

Thank you for your interest! By following these guidelines, you’ll ensure that the project remains well-organized, maintainable, and collaborative. Whether you’re fixing a bug, adding a new feature, or improving performance, your contributions are valuable and appreciated.