Files
docker-stacks/docs/maintaining/tasks.md
Ayaz Salikhov 00a6728161 Move from Docker Hub to quay.io (#2010)
* Move from Docker Hub to quay.io

* Fix http->https

* Update registry-overviews

* Remove Docker Hub name
2023-10-20 22:31:45 +02:00

3.3 KiB

Maintainer Playbook

Merging Pull Requests

To build new images and publish them to the 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.

    GitHub Actions are pretty reliable, so please investigate if some error occurs.
    Building Docker images in PRs is the same as building them in default branch,
    except single-platform images are pushed to Registry and then tags are merged for `x86_64` and `aarch64`.
    
  4. Avoid merging another PR to the main branch until all pending builds are complete. This way, you will know which commit might have broken the build and also have the correct tags for moving tags (like the 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 us 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 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. Pushing the Run Workflow button will trigger this process.

Adding a New Core Image to the Registry

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).

You can see an example of adding a new image here.

When there's a new stack definition, check before merging the PR:

  1. PR includes an update to the stack overview diagram in the documentation. The image links to the blockdiag source used to create it.
  2. PR updates the Makefile, which is used to build the stacks in order on GitHub Actions.
  3. Necessary tags/manifests are added for the new image in the tagging folder.
  4. A new repository is created in the jupyter org in the Registry, and it's named after the stack folder in the git repo.
  5. Grant the stacks team permission to write to this repo.

Adding a New Maintainer Account

  1. Visit https://quay.io/organization/jupyter/teams/owners
  2. Add the maintainer's username.
  3. Visit https://github.com/orgs/jupyter/teams/docker-image-maintainers/members
  4. Add the maintainer's GitHub username.

Restarting a failed build

If an automated build in GitHub Actions has got you down, you can restart failed steps on GitHub. You can also download the artifacts and investigate them for any issues.