mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-08 02:24:04 +00:00

* Create base-jupyter from base-notebook for non-server jupyter applications * Fix pre-commit errors and begin test refactoring * More test refactoring * Add base-jupyter to images_hierarchy * Use folder work instead of .jupyter in nb-user test * Add base-jupyter to tagging hierarchy * Linting: trailing comma * Apply review comments, remove obsolute Miniforge reference * Add self-signed cert comment back to base-notebook doc * Update docs/using/selecting.md Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com> * Remove redundant apt-get upgrade per review * Remove b/c approaches per review * Move test_nb_user_change back to base-notebook tests, per review * fix linting * Rename base-jupyter to docker-stacks-foundation, per review * Rename tests/base-jupyter to docker-stacks-foundation * Use alphabetical order * Use alphabetical order * Fix markdown style * Split test_nb_user_change between the foundation and base tests Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com>
69 lines
3.2 KiB
Markdown
69 lines
3.2 KiB
Markdown
# Maintainer Playbook
|
|
|
|
## Merging Pull Requests
|
|
|
|
To build new images and publish them to the Docker Hub registry, do the following:
|
|
|
|
1. Make sure GitHub Actions status checks pass for the PR.
|
|
2. Merge the PR.
|
|
3. Monitor the merge commit GitHub Actions status.
|
|
|
|
```{note}
|
|
We think GitHub Actions are quite reliable, so please, investigate if some error occurs.
|
|
Building Docker images in PRs is exactly the same after merging to main, except there is an additional `push` step.
|
|
```
|
|
|
|
4. Try to avoid merging another PR to main branch until all pending builds are complete.
|
|
This way, you will know which commit might have broken the build and also have correct tags for moving tags (like `python` version).
|
|
|
|
## Updating Python version
|
|
|
|
When a new `Python` version is released, we wait for two things:
|
|
|
|
- all the dependencies to be available (as wheels or in `conda-forge`).
|
|
- the first `python` patch release for this version.
|
|
This allows to avoid many bugs, which can happen in a major release.
|
|
|
|
## Updating the Ubuntu Base Image
|
|
|
|
`docker-stacks-foundation` is based on the LTS Ubuntu docker image.
|
|
We wait for the first point release of the new LTS Ubuntu before updating the version.
|
|
Other images are directly or indirectly inherited from `docker-stacks-foundation`.
|
|
We rebuild our images automatically each week, which means they frequently receive the updates.
|
|
|
|
When there's a security fix in the Ubuntu base image, it's a good idea to manually trigger images rebuild [from the GitHub actions workflow UI](https://github.com/jupyter/docker-stacks/actions/workflows/docker.yml).
|
|
Pushing the `Run Workflow` button will trigger this process.
|
|
|
|
## Adding a New Core Image to Docker Hub
|
|
|
|
```{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).
|
|
```
|
|
|
|
When there's a new stack definition, do the following before merging the PR with the new stack:
|
|
|
|
1. Ensure the PR includes an update to the stack overview diagram
|
|
[in the documentation](https://github.com/jupyter/docker-stacks/blob/main/docs/using/selecting.md#image-relationships).
|
|
The image links to the [blockdiag source](http://interactive.blockdiag.com/) used to create it.
|
|
2. Ensure the PR updates the [Makefile](https://github.com/jupyter/docker-stacks/blob/main/Makefile), which is used to build the stacks in order on GitHub Actions.
|
|
3. Ensure necessary tags / manifests are added for the new image in the [tagging](https://github.com/jupyter/docker-stacks/tree/main/tagging) folder.
|
|
4. Create a new repository in the `jupyter` org on Docker Hub named after the stack folder in the
|
|
git repo.
|
|
5. Grant the `stacks` team permission to write to the repo.
|
|
|
|
## Adding a New Maintainer Account
|
|
|
|
1. Visit <https://hub.docker.com/app/jupyter/team/stacks/users>
|
|
2. Add the maintainer's Docker Hub username.
|
|
3. Visit <https://github.com/orgs/jupyter/teams/docker-image-maintainers/members>
|
|
4. Add the maintainer's GitHub username.
|
|
|
|
## Pushing a Build Manually
|
|
|
|
If automated build in GitHub Actions has got you down, do the following to push a build manually:
|
|
|
|
1. Clone this repository.
|
|
2. Check out the git SHA you want to build and publish.
|
|
3. `docker login` with your Docker Hub credentials.
|
|
4. Run `make push-all`.
|