diff --git a/.readthedocs.yaml b/.readthedocs.yaml index f6a12ce2d5..7cc5786e19 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -24,8 +24,8 @@ sphinx: # Optionally build your docs in additional formats such as PDF and ePub # formats: -# - pdf -# - epub +# - pdf +# - epub # Optional but recommended, declare the Python requirements required # to build your documentation diff --git a/docs/conf.py b/docs/conf.py index 7ef2b342aa..cacfe3d038 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -37,16 +37,17 @@ html_title = "Docker Stacks documentation" html_logo = "_static/jupyter-logo.svg" html_theme_options = { + "logo": { + "text": html_title, + }, + "navigation_with_keys": False, "path_to_docs": "docs", - "repository_url": "https://github.com/jupyter/docker-stacks", "repository_branch": "main", + "repository_url": "https://github.com/jupyter/docker-stacks", + "use_download_button": True, "use_edit_page_button": True, "use_issues_button": True, "use_repository_button": True, - "use_download_button": True, - "logo": { - "text": html_title, - }, } html_last_updated_fmt = "%Y-%m-%d" diff --git a/docs/index.rst b/docs/index.rst index 875ea2c57f..896ca0f7da 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -32,6 +32,7 @@ Table of Contents :maxdepth: 2 :caption: Maintainer Guide + maintaining/new-images-and-packages-policy maintaining/tasks maintaining/aarch64-runner diff --git a/docs/maintaining/new-images-and-packages-policy.md b/docs/maintaining/new-images-and-packages-policy.md new file mode 100644 index 0000000000..b6e7531472 --- /dev/null +++ b/docs/maintaining/new-images-and-packages-policy.md @@ -0,0 +1,35 @@ +# Policy on adding new images and packages + +There are many things we consider, while adding new images and packages. + +Here is a non exhaustive list of things we do care about: + +1. **Software health**, details, and maintenance status + - reasonable versioning is adopted, and the version is considered to be stable + - has been around for several years + - the package maintains documentation + - a changelog is actively maintained + - a release procedure with helpful automation is established + - multiple people are involved in the maintenance of the project + - provides a `conda-forge` package besides a `pypi` package, where both are kept up to date + - supports both `x86_64` and `aarch64` architectures +2. **Installation consequences** + - GitHub Actions build time + - Image sizes + - All requirements should be installed as well +3. Jupyter Docker Stacks _**image fit**_ + - new package or stack is changing (or inherits from) the most suitable stack +4. **Software impact** for users of docker-stacks images + - How this image can help existing users, or maybe reduce the need to build new images +5. Why it shouldn't just be a documented **recipe** +6. Impact on **security** + - Does the package open additional ports, or add new web endpoints, that could be exploited? + +With all this in mind, we have a voting group, which consists of +[mathbunnyru](https://github.com/mathbunnyru), +[consideRatio](https://github.com/consideRatio), +[yuvipanda](https://github.com/yuvipanda) and +[manics](https://github.com/manics). + +This voting group is responsible for accepting or declining new packages and stacks. +The change is accepted, if there are **at least 2 positive votes**. diff --git a/docs/maintaining/tasks.md b/docs/maintaining/tasks.md index 536601e3a4..c6a577ae87 100644 --- a/docs/maintaining/tasks.md +++ b/docs/maintaining/tasks.md @@ -42,6 +42,7 @@ Pushing the `Run Workflow` button will trigger this process. ```{note} In general, we do not add new core images and ask contributors to either create a [recipe](../using/recipes.md) or [community stack](../contributing/stacks.md). +We have a [policy](./new-images-and-packages-policy.md), which we consider when adding new images or new packages to existing images. ``` You can see an example of adding a new image [here](https://github.com/jupyter/docker-stacks/pull/1936/files). diff --git a/docs/using/selecting.md b/docs/using/selecting.md index f85ab4748c..26290c4a34 100644 --- a/docs/using/selecting.md +++ b/docs/using/selecting.md @@ -209,7 +209,9 @@ It contains: - Everything in `jupyter/scipy-notebook` and its ancestor images - [Apache Spark](https://spark.apache.org/) with Hadoop binaries -- [pyarrow](https://arrow.apache.org/docs/python/) library +- [grpcio-status](https://github.com/grpc/grpc/tree/master/src/python/grpcio_status) +- [grpcio](https://grpc.io/docs/languages/python/quickstart/) +- [pyarrow](https://arrow.apache.org/docs/python/) ### jupyter/all-spark-notebook diff --git a/images/pyspark-notebook/Dockerfile b/images/pyspark-notebook/Dockerfile index c50701ef58..28d40dc2d0 100644 --- a/images/pyspark-notebook/Dockerfile +++ b/images/pyspark-notebook/Dockerfile @@ -74,6 +74,8 @@ USER ${NB_UID} # 1. Check out the Spark branch you are on. # 2. Find the pandas version in the file spark/dev/infra/Dockerfile. RUN mamba install --yes \ + 'grpcio-status' \ + 'grpcio' \ 'pandas=2.0.3' \ 'pyarrow' && \ mamba clean --all -f -y && \ diff --git a/tests/base-notebook/test_packages.py b/tests/base-notebook/test_packages.py index b56d6120e5..ae4fa3f1b6 100644 --- a/tests/base-notebook/test_packages.py +++ b/tests/base-notebook/test_packages.py @@ -69,6 +69,8 @@ "bzip2", "ca-certificates", "conda-forge::blas[build=openblas]", + "grpcio-status", + "grpcio", "hdf5", "jupyterlab-git", "openssl",