How to contribute?

Contributions to this website are more than welcome. That does not mean only adding new packages or code, but also improvements of documentation and user guide. In addition, we warmly welcome ideas how to improve the website or the pygieons -library which is used under the hood to semi-automatically generate the contents to this website. This page describes how the website is generated and how you can contribute e.g. by suggesting new libraries which could be added to the website.

How does it work?

This website is created semi-automatically by using a simple Python tool called pygieons. The tool can be used to generate tables that show different information about the libraries as well as the network visualizations that show the connections between packages. Hence, all the contributions should go via pygieons -repository.

All the content generation is done by the pygieons while Jupyter Notebooks located under the docs -directory of the pygieons repository are used to write the content and run the pygieons tool which generates the outputs (tables, networks). Sphinx and the sphinx-book-theme libraries build the actual HTML website based on the Jupyter Notebooks. The website building process is automated using ReadTheDocs and Github Actions (which generates the https://ecosystem.pythongis.org website).

Do you have an issue or an idea?

Bug reports, ideas (e.g. for adding packages) or even questions should be raised by opening an issue on the pygieons GitHub issue tracker. Suggestions for changes in the website or for the tool should be submitted as a pull request. However, if you are not sure what to do, feel free to open an issue. All discussion will then take place on GitHub to keep the development of the website and pygieons library transparent.

If you decide to contribute to the codebase, ensure that you are using an up-to-date main branch. The latest development version will always be there, including the documentation (powered by sphinx).

How to suggest a new package to the website?

The Python packages listed on this website are controlled by ecosystem_pkgs.py file which includes all the packages categorized into core, vector, raster or visualization categories. The connections to other libraries in the ecosystem are controlled by ecosystem_connections.py -file. It contains a sorted list of Python dictionaries, such as {"from": "geopandas", "to": "fiona"}, which specifies the connections between libraries.

If you want to add a new library to the website, you need to:

  1. Fork the pygieons repository

  2. Modify the ecosystem_connections.py and ecosystem_pkgs.py files (you need to modify both!)

  3. Create a Pull Request to the main of the pygieons repository and wait for approval or comments

How to help with improving/maintaining the pygieons library?

If you want to help improving or maintaining the pygieons library, please do so by:

  1. Creating an issue explaining what you want to do

  2. Forking the pygieons repository

  3. Modifying the pygieons source codes (under src directory)

  4. Making a PR