{ "cells": [ { "cell_type": "markdown", "id": "b53e0006-b341-4c0f-9d13-b08f40de5281", "metadata": {}, "source": [ "# How to contribute?\n", "\n", "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](https://github.com/pygieons/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.\n", "\n", "## How does it work?\n", "\n", "This website is created semi-automatically by using a simple Python tool called [pygieons](https://github.com/pygieons/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](https://github.com/pygieons/pygieons) -repository. \n", "\n", "All the content generation is done by the `pygieons` while Jupyter Notebooks located under the [docs](https://github.com/pygieons/pygieons/tree/main/docs) -directory of the `pygieons` repository are used to write the content and run the `pygieons` tool which generates the outputs (tables, networks). [Sphinx](https://www.sphinx-doc.org/) and the [sphinx-book-theme](https://sphinx-book-theme.readthedocs.io/en/stable/) libraries build the actual HTML website based on the Jupyter Notebooks. The website building process is automated using [ReadTheDocs](https://readthedocs.org/) and Github Actions (which generates the https://ecosystem.pythongis.org website).\n", "\n", "## Do you have an issue or an idea?\n", "\n", "Bug reports, ideas (e.g. for adding packages) or even questions should be raised by opening an issue on the [pygieons GitHub issue tracker](https://github.com/pygieons/pygieons). 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.\n", "\n", "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](https://www.sphinx-doc.org/)).\n", "\n", "## How to suggest a new package to the website?\n", "\n", "The Python packages listed on this website are controlled by [ecosystem_pkgs.py](https://github.com/pygieons/pygieons/blob/main/src/pygieons/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](https://github.com/pygieons/pygieons/blob/main/src/pygieons/ecosystem_connections.py) -file. It contains a sorted list of Python dictionaries, such as `{\"from\": \"geopandas\", \"to\": \"fiona\"}`, which specifies the connections between libraries. \n", "\n", "**If you want to add a new library to the website**, you need to:\n", "\n", "1. Fork the [pygieons](https://github.com/pygieons/pygieons) repository \n", "2. Modify the [ecosystem_connections.py](https://github.com/pygieons/pygieons/blob/main/src/pygieons/ecosystem_connections.py) and [ecosystem_pkgs.py](https://github.com/pygieons/pygieons/blob/main/src/pygieons/ecosystem_pkgs.py) files (you need to **modify both**!)\n", "3. Create a Pull Request to the `main` of the `pygieons` repository and wait for approval or comments " ] }, { "cell_type": "markdown", "id": "7c8ea719-ca45-430d-9a2a-673772b7ffc2", "metadata": {}, "source": [ "## How to help with improving/maintaining the `pygieons` library?\n", "\n", "If you want to help improving or maintaining the `pygieons` library, please do so by:\n", "\n", "1. Creating an issue explaining what you want to do\n", "2. Forking the `pygieons` repository\n", "3. Modifying the `pygieons` source codes (under `src` directory)\n", "4. Making a PR" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }