Thank you for your interest in contributing to geolysis.core
!
We welcome contributions from the community to help make this
project better. Before you get started, please take a moment
to read and understand these contribution guidelines.
Following these guidelines helps maintain a productive and a
welcoming community for everyone involved.
Not a coder? Not a problem! geolysis.core
is multi-faceted, and
we can use a lot of help. These are all activities we would
like to get help with:
- Code development
- Developing educational content
- Website design and development
- Writing technical documentation
- Branding (logo design etc.)
This project has a code of conduct that we expect all contributors to adhere to. Please read and follow it when participating in this project.
Before you start contributing, please make sure you have:
- Familiarized yourself with the project by visiting the Project Repository.
- Create a GitHub account if you don't have one already.
- Review the project's issues and pull requests to see if the issue you want to work on or the feature you want to add is already being discussed.
If you encounter a bug or issue with the project, please follow these steps:
- Check the existing issues to see if the issue has already been reported.
- If not, create a new issue, describing the problem in detail. Include steps to reproduce if possible and any relevant error messages.
If you have an idea for an enhancement or a new feature, please follow these steps:
- Check the existing issues to see if the enhancement has already been suggested.
- If not, create a new issue, describing the enhancement in detail. Be clear about why it's valuable and how it should work.
If you want to contribute code to the project, please follow these steps:
-
If you are a first time contributor:
-
Go to https://github.com/patrickboateng/geolysis and fork the repository to your own GitHub account.
-
Clone the project to your local computer:
git clone https://github.com/your-username/geolysis.git
-
Move into the
geolysis
directory:cd geolysis
-
Add the upstream repository:
git remote add upstream https://github.com/patrickboateng/geolysis.git
-
Now,
git remote -v
will show two remote repositories named:upstream
, which refers to thegeolysis
repositoryorigin
, which refers to your personal fork
-
Pull the latest changes from upstream, including tags:
git checkout main git pull upstream main --tags
-
-
Develop your contribution:
-
Create a branch for your contribution. Kindly use a descriptive name since the branch name will appear in the merge message.
git checkout -b your-branch-name
-
Make your changes, following the style guide. Make sure to read the style guide before contributing code to the
geolysis
project. -
Commit locally as you progress (
git add
andgit commit
). Use a properly formatted commit message, write tests that fail before your change and pass afterward (both new and existing tests), run all tests locally. Be sure to document any changed behavior in docstrings, keeping to the style guide.
-
-
To submit your contribution:
-
Push your changes back to your fork on
GitHub
.git push origin your-branch-name
-
Go to GitHub, the new branch will show up with a green Pull request button. Make sure the title and message are clear, concise, and self-explanatory. Click the button to submit it.
-
-
Review process:
- Respond to any feedback or questions from reviewers.
- To update your Pull Request (PR), make your changes on your local repository, commit, run tests, and only if they pass should you push to your fork on GitHub. As soon as those changes are pushed up (to the same branch as before) the PR will update automatically. If you have no idea how to fix the test failures, you may push your changes any way and ask for help in a PR comment.
- A PR must be approved by at least one core member before merging. Approval means the core team member has carefully reviewed the changes, and the PR is ready for merging.
Running geolysis test suite locally requires some additional packages, such as pytest and coverage.py
-
To run the tests, run the pytest command with no arguments as follows:
pytest
-
To measure the test coverage, run:
coverage run --rcfile=pyproject.toml -m pytest
-
Use
coverage report
to view report on the results:coverage report -m
-
For a nicer presentation, use
coverage html
to get annotated HTML listings detailing missed lines:coverage html
Then open htmlcov/index.html in your browser, to see a report like this
Improvements to documentation are always appreciated. If you make changes to the code, please update the documentation as needed. See style guide for more information.
Join our community to discuss the project, ask questions, and collaborate with other contributors:
By contributing to this project, you agree that your contributions will be licensed under the project's LICENSE.
Thank you for your interest in contributing to geolysis.core
! We appreciate
your help in making this project a success.