- Internal Contribution Strategies
- External Contribution Guidelines
- Get Started!
- Code of Conduct
- Attribution
Our collaboration strategy is designed to leverage GitHub's project management tools to ensure an organized, transparent, and efficient workflow. We aim to foster a cooperative environment where every team member is clear on their responsibilities and feels comfortable contributing to discussions.
Project Management:
- GitHub Project Dashboard: We will utilize the GitHub Project Dashboard to distribute tasks and track progress. Each milestone will be broken down into smaller tasks, represented by cards on the dashboard. Team members will be able to see who is working on what and the current status of all tasks.
- Issues and Milestones: Each task will be associated with a GitHub Issue. These issues will be assigned to individual contributors and linked to specific milestones. This ensures that all tasks are accounted for and progress can be tracked toward our overall goals.
- Documentation: All code will be well-documented to maintain clarity and facilitate ease of understanding for current and future contributors. Documentation will include comments within the code, as well as README files and wikis where appropriate.
- Labeling: We will use GitHub's labeling system to categorize issues and pull requests. This will help us quickly identify the state of a task, whether it's a bug, enhancement, question, or a task related to a specific feature or milestone.
- Open Discussion: Team members are encouraged to engage in discussions within issue threads and pull requests. This open dialogue will promote idea sharing and collective problem-solving.
Code Programming and Reviewing:
- GitHub Code Review Function: All contributions will be submitted via pull requests and subject to review using GitHub's code review function. This allows team members to provide feedback on the changes, suggest improvements, and ensure that all code adheres to our standards before merging.
Rotating Roles:
To provide all team members with the opportunity to lead and learn, we will rotate key roles on a weekly basis. These roles include project management and final submission supervision.
- Project Manager: The project manager will be responsible for organizing and documenting meetings, updating the GitHub Project Dashboard, and ensuring that all team members have the resources they need. Meeting notes will be recorded and made available through GitHub Issues for transparency.
- Final Submission Supervisor: The supervisor's duties include overseeing quality assurance, ensuring that milestones are met, reviewing open issues and pull requests, and verifying that the project meets all criteria for reproducibility and transparency.
By adhering to these strategies, we aim to create a dynamic and responsive team environment that not only meets but exceeds our project objectives. Each member's contribution is vital to the success of the project, and through this structured yet flexible approach, we will collectively ensure the highest standards of quality and collaboration.
We are thrilled that you're interested in contributing to doeasyeda! Your contributions are invaluable to us, and we are committed to acknowledging your efforts and ensuring you receive proper credit for your work. There are several ways you can contribute to our project, each significant and appreciated:
Where to Report : If you find a bug, please report it at our issues page: https://github.com/UBC-MDS/doeasyeda/issues
What to Include in Your Bug Report :
- The name and version of your operating system.
- Specifics about your setup that might help us understand the issue better.
- A detailed step-by-step guide to reproduce the bug.
We appreciate as much detail as possible so we can replicate and address the bug effectively.
Finding Bugs to Fix : Browse through our GitHub Issues. Look for issues tagged with both "bug" and "help wanted".
Process : If you see an open bug you'd like to tackle, comment on the issue to let the community know you're working on it. This prevents duplicative efforts.
Finding Features to Implement : Our GitHub Issues page is also the place to find new features to implement. Look for issues tagged with "enhancement" and "help wanted".
Guidelines for Implementation :
- Review the issue and any discussions about it for context and clarity.
- Feel free to ask questions or propose ideas on the issue thread before starting.
Areas Needing Documentation :
- The official doeasyeda documentation.
- Inline docstrings within the code.
- External resources such as blog posts, tutorials, and more.
Contributing to Documentation : If you're interested in writing documentation, you can start by looking at existing documents and identifying gaps or areas that need improvement.
How to Submit Feedback : The preferred way to submit feedback or feature suggestions is through our Issues Page.
Proposing a Feature :
- Describe in detail how the feature would function.
- Aim for a narrow scope to facilitate easier implementation.
- Engage in the discussion around your proposal to refine and improve it.
-
Fork the
doeasyeda
repo on GitHub. -
Clone your fork locally:
git clone [email protected]:your-username/doeasyeda.git
-
Install your local copy with Poetry, this is how you set up your fork for local development:
cd doeasyeda/ poetry install
-
Create a branch for local development:
git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
-
When you're done making changes, check that your changes pass the tests by running pytest
poetry run pytest
-
Commit your changes and push your branch to GitHub:
git add . git commit -m "Your detailed description of your changes." git push origin name-of-your-bugfix-or-feature
-
Submit a pull request through the GitHub website.
To run a subset of tests:
py.test tests.test_convertempPy
A reminder for the maintainers on how to deploy:
- Ensure the following secrets are recorded on GitHub:
- CODECOV_TOKEN
- PYPI_USERNAME
- PYPI_PASSWORD
GitHub Actions should build and deploy to testPyPI when a pull request is merged into master.
Remember, doeasyeda is a community-driven project. Your contributions, whether large or small, are incredibly valuable to us. We strive to create a welcoming and inclusive environment, so we encourage you to join us in developing this project!
Please note that this project is released with a Code of Conduct. By contributing to this project you agree to abide by its terms.
- This contributing guide is inspired by the contributing guidelines of convertempPy and py-pkgs-cookiecutter. Feel free to adapt and improve it as needed for the this project.