We value all kinds of contributions from the community, not just actual code. Perhaps the easiest and yet one of the most valuable ways of helping us improve GeoTrellis is to ask questions, voice concerns or propose improvements on the Mailing List.
If you do like to contribute actual code in the form of bug fixes, new features or other patches this page gives you more info on how to do it.
- Install SBT (the master branch is currently built with SBT 0.13.12).
- Check out this repository.
- Pick the branch corresponding to the version you are targeting
- Run
sbt test
to compile the suite and run all tests.
We try to follow the Scala Style Guide as closely as possible, although you will see some variations throughout the codebase. When in doubt, follow that guide.
The GeoTrellis team follows the standard practice of using the
master
branch as main integration branch.
We follow the 'imperative present tense' style for commit messages. (e.g. "Add new EnterpriseWidgetLoader instance")
If you find a bug and would like to report it please go there and create an issue. As always, if you need some help join us on Gitter to chat with a developer.
If you'd like to submit a code contribution please fork GeoTrellis and
send us pull request against the master
branch. Like any other open
source project, we might ask you to go through some iterations of
discussion and refinement before merging.
As part of the Eclipse IP Due Diligence process, you'll need to do some
extra work to contribute. This is part of the requirement for Eclipse
Foundation projects (see this page in the Eclipse
wiki
You'll need to sign up for an Eclipse account with the same email you
commit to github with. See the Eclipse Contributor Agreement
text
below. Also, you'll need to signoff on your commits, using the
git commit -s
flag. See
https://help.github.com/articles/signing-tags-using-gpg/ for more info.
Contributions to the project, no matter what kind, are always very welcome. Everyone who contributes code to GeoTrellis will be asked to sign the Eclipse Contributor Agreement. You can electronically sign the Eclipse Contributor Agreement here.
Visit https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/wikis/Requesting-a-Review for more details.
- Run the dependencies list generation command:
sbt dependencyListGT/toFile target/dependencies-list.txt
- It is going to produce the output file with all project compile time dependencies stored in the
target/dependencies-list.txt
file.
- It is going to produce the output file with all project compile time dependencies stored in the
- Download the Latest version of DashLicenses
- More info and usage examples can be found here: https://github.com/eclipse/dash-licenses
- Run the dependencies check
cat target/dependencies-list.txt | java -jar ./org.eclipse.dash.licenses-1.0.3-20230602.055020-10.jar -
- It is possible to use the IP Team Review request feature to automatically set up a review
- Get GitLab authentication token
cat target/dependencies-list.txt | java -jar ./org.eclipse.dash.licenses-1.0.3-20230602.055020-10.jar - -review -project locationtech.geotrellis -token <token>
Contributions to these docs are welcome as well. To build them on your own
machine, ensure that sphinx
and make
are installed.
> sudo apt-get install python-sphinx python-sphinx-rtd-theme
> sudo pacman -S python-sphinx python-sphinx_rtd_theme
brew
doesn't supply the sphinx binaries, so use pip
here.
> pip install sphinx sphinx_rtd_theme
Assuming you've cloned the GeoTrellis repo, you can now build the docs yourself. Steps:
- Navigate to the
docs/
directory - Run
make html
- View the docs in your browser by opening
_build/html/index.html
Note
Changes you make will not be automatically applied; you will have to rebuild the docs yourself. Luckily the docs build in about a second.
When adding or editing documentation, keep in mind the following file structure:
docs/tutorials/
contains simple beginner tutorials with concrete goalsdocs/guide/
contains detailed explanations of GeoTrellis conceptsdocs/architecture
contains in-depth discussion on GeoTrellis implementation details