FarmData2 welcomes participation and contributions. There are many ways to contribute to FarmData2 that we hope will engage and energize a broad and diverse community. This document outlines a few of the ways to contribute.
To promote an open, welcoming, inclusive and harassment-free experience, all engagement with FarmData2 is governed by the community standards expressed in the Contributor Covenent.
Content in the FarmData2 project is released under several different licenses as described in the LICENSE file. In addition, that file describes the rights and responsibilities of contributors with regard to the their contributed content. The licensing structure of FarmData2 is designed to ensure that FarmData2 remains free and open source while protecting both the project and it community of contributors. Please review it carefully before contributing content to FarmData2.
Connect with the FarmData2 community on Zulip.
If you are unfamiliar with Zulip it is a group chat application that blends the benefits of threaded discussions with live chat. Zulip is relatively easy to use once you understand the key ideas of streams and topics.
Having a running version of FarmData2 is a prerequisite for many of the forms of participation described below. The Install Directions give step by step instructions for getting a developer installation of FarmData2 up and running.
There are many ways to participate in FarmData2. Some of them are listed below.
If you are are a user of FarmData2 and discover something that doesn't seem to be working correctly you can:
- Reach out to the community on the Zulip Developer Stream to discuss what you have found and how to proceed.
- Search the Issue Tracker to see if the bug has been reported already.
- If it has, add a confirmed sighting or any additional information you have by commenting on the ticket.
- If it has not, open a new ticket and give a description of the issue, identify the platform on which you are running FarmData2 and describe the steps someone can use to observe the bug.
If you are are a user of FarmData2 and have a new feature you would like to see you can:
- Reach out to the community on the Zulip Developer Stream to discuss the feature you'd like to see and how to proceed.
- Search the Issue Tracker to see if the feature, or something close, has already been suggested by someone.
- If it has, add a comment lending support and possibly refining or giving your perspective on the idea.
- If it has not, open a new ticket and give a description of the new feature you would like to see.
The project Issue Tracker contains tickets describing known issues with the project. The tickets for known issues are tagged with the label "bug". Each reported bug will have a detailed description of how the bug can be observed. Gardening includes activities such as:
- Verifying or clarifying these descriptions.
- Enhance the report by providing additional information about the bug (e.g. platforms on which is is or is not seen).
- Confirming that bug does (or does not) exist in the current version.
To participate by Gardening visit the Issue Tracker and find something of interest to verify, enhance or clarify. Try it out in your running version of FarmData2 and add a comment to the ticket with what you find.
Update to any of the FarmData2 documentation are welcome. If you find typos, unclear or missing steps, poorly worded explanations, or have any other suggestions for how the documentation could be improved use the workflow described below to create a pull request for your suggested changes.
Tickets in the Issue Tracker that are tagged bug or enhancement describe issues be fixed or new features to be added to FarmData2. The tag good first issue appears on the most approachable tickets. If you find an issue to work on use the workflow described below to create a pull request for your suggested bug fix or feature implementation. Information about the languages and technologies that are used in FarmdData2 and pointers to resources for learning more about them can be found in the Technology On-boarding section below.
The above is not an exhaustive list of ways to participate in FarmData2. For some other ideas check out 50 Ways to be a FOSSer. If anything there seems interesting or if you have other ideas of your own please get in touch and we will be happy to have a discussion about how you might get involved.
Interacting with FarmData2 requires a basic familiarity with git and GitHub. FarmData2 development uses a fairly standard web technology stack including HTML, CSS, Bootstrap, JavaScript, and Vue.js. The front-end accesses FarmData2 data through the FarmOS API using the Axios library. End-to-end and component testing is done using the Cypress framework.
If you are unfamiliar with one or more of these technologies the ONBOARDING document provides additional information about each, as well as resources and activities for learning about them.
FarmData2 generally uses the GitHub flow branching workflow and accepts contributions via Pull Requests. If you are new to git based branching workflows you may find this in depth description GitHub flow helpful.
As a reference, the basic steps for working with GitHub Flow are as follows:
- Go to the FarmData2 Repository (the upstream)
- Fork the upstream repository to your GitHub (the origin).
- Clone the origin repository to your local machine.
- Set the upstream remote for your local repository to point to the upstream repository.
- Create a feature branch from the main branch your local machine.
- Make the edits to the documentation or the code in your feature branch.
- Commit your edits.
- If the contribution reflects the work of multiple people, ensure that everyone receives attribution by Creating a commit with multiple authors.
- Pull the most recent upstream version of the main branch.
- Merge the updated main branch into your feature branch.
- Push your feature branch to the origin.
- Make a Pull Request for your feature branch to the upstream.