Contributing to O-FISH
Get started quickly:
- Find an issue and comment on it, saying you want to work on it.
- You may start work immediately IF there are no other commenters wanting to work on it
- Issues labeled "needs own instance" require your own infrastructure build, if you want a quick issue avoid this label.
Special Issue LabelsIn addition to labels that are self-explanatory - bug, enhancement, good first issue, hacktoberfest - there are some issue labels that need explanation:
- needs own instance - These issues require the developer to build their own instance of the infrastructure. They are issues that involve needing 'super powers' or infrastructure changes, such as changes involving a global administrator or changes to indexes or Realm functions. Building an instance is free, but does take some time to go through the detailed instructions.
- days: x - This is an estimate of how much developer time this issue will need. 0.25 means about 2 hours, 0.5 means 4 hours, 1 day is 8 hours, etc.
To work on an issue
- If you want to change something that is not already in an issue, create a new issue and wait for approval before working on the issue.
- Add a comment to the issue you want to work on, stating "I would like to work on this issue".
- Please do NOT work on an issue that is assigned to someone else.
- Please do NOT work on an issue that has another comment stating "I would like to work on this issue."
- Once you have commented on an issue you may begin work on it, if it is your only issue, it is not assigned to someone else, and nobody else has asked to work on it.
- If you are having issues, check out the MongoDB Community Forum posts with the O-FISH tag or create a new post. As a last resort, you may tag the following people in the comments: @o-fish-wildaid @Sheeri - please do NOT tag random MongoDB employees.
- Failure to follow these guidelines or MongoDB's Community Code of Conduct may result in an invalid PR.
Get the code, build, test, and submit a PR
You will need to fork the appropriate code repository by going to the appropriate github page (Android, iOS, Web, Realm) and selecting "Fork" in the upper-right corner:
You then need to get the code from your new fork. Select the green "Code" button and select the copy icon to copy the code location:
In a terminal window, paste the github link after 'git clone', e.g.:
git clone https://github.com/my-github-name/o-fish-web.git
Track changes from the original repo:
git remote add --track main upstream https://github.com/WildAid/o-fish-web.git
git fetch upstream
Create and switch to a new branch on your fork:
git checkout -b fix_issue_12345 upstream/main
Code your fix and build the O-FISH application (Android, iOS, web) to test that it works. You may want to test against the sandbox or build your own foundation.
Once you verify the issue is fixed, you will need to submit your edits to your fork's branch, commit, and push. Make sure your commit message includes which issue(s) will be fixed. For example:
git add .
git commit -m 'Adding a widget to fix issues #12345 and #100'
git push -u origin fix_issue_12345
The output of `git push` has instructions on how to create a pull request:
remote: Create a pull request for 'fix_issue_12345' on GitHub by visiting:
Create a pull request by visiting the github URL from your output to the `git push` command.
Within 3 business days, a developer will review your code, and once the code is ready it will be merged in.
If you have any questions, check out the MongoDB Community Forum posts with the O-FISH tag or create a new post.