Skip to main content

Toolkit for developers of the `dkist-processing-*` stack.

Project description

codecov

Overview

This repo contains a suite of tools that will hopefully be helpful to developers of the dkist-processing-* stack. More tools will be added as we learn more about how we use them, but if you know of something you want then please add it!

Install

Using base pip

Probably do this in a virtual environment that matches the python version used by the DKISTDC.

pip install dkist-dev-tools

Shell Completion

If you want shell completion then add the following to your shell rc file:

bash

Add to ~/.bashrc

eval "$(_DDT_COMPLETE=bash_source ddt)"

zsh

Add to ~/.zshrc

eval "$(_DDT_COMPLETE=zsh_source ddt)"

Tools

The top-level command is called ddt. The subcommands are shown below

Freeze Dependencies

ddt freeze [-d project_dir] VERSION

This command prepares for a new version of a project by freezing a complete set of dependencies under the “frozen” pip extra in pyproject.toml. This allows airflow workers (or human users) to install with pip install dkist-processing-INSTRUMENT[frozen] and always get the exact same environment for a given version.

There is no need to worry about your current python environment (besides the version); a fresh temporary environment is used to install the project and inspect the dependencies. This temporary environment is deleted when we’re done with it.

After this script is run the pyproject.toml file in the project_dir will be updated in two places:

  • The project.optional-dependencies.frozen node will either be created or updated to show the full list of dependencies in the as-built environment.

  • The tool.dkist-dev-tools node will be either created or updated to show when the command was run and with what version. This information is used to check the project prior to building a new release on Bitbucket.

You will have to commit these changes yourself.

Render Changelog(s)

ddt changelog [-s] VERSION

This command uses towncrier to render an update to CHANGELOG from fragments in the changelog fragment directory. If science fragments also exist then the SCIENCE_CHANGELOG will also be updated.

By default a draft of the changes will be shown and the user asked to confirm that it looks correct. Passing the -s option skips this step.

All changes will need to be manually committed.

Check Release Conditions

ddt check

This group of commands is used to check that the main commands were run properly for the current version about to be released.

Check Dependencies Frozen

ddt check freeze [-d project_dir]

Confirm that the version frozen into a pyproject.toml file matches the current version. The current version comes first from the BITBUCKET_TAG environmental variable. If this is not set then the version is inferred from a “v*” git tag on HEAD.

Check Changelog Status

ddt check changelog

If git HEAD is a tagged version then check that the changelog has been correctly rendered and no fragments remain. Otherwise run towncrier check, which makes sure fragments exist if there is a diff between the current branch and origin/main.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dkist_dev_tools-2.0.0.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dkist_dev_tools-2.0.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file dkist_dev_tools-2.0.0.tar.gz.

File metadata

  • Download URL: dkist_dev_tools-2.0.0.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for dkist_dev_tools-2.0.0.tar.gz
Algorithm Hash digest
SHA256 4778491f64eb77ea54c94021e169b8b22dc2c797a760eccbd528b72c2f0d6a4b
MD5 3af9ed6d5a83cdaa76f3569252b707c5
BLAKE2b-256 df140eb5ce670bded1bb34c1b3e58801562250a59e5063211d42fa7cf44f7cfe

See more details on using hashes here.

File details

Details for the file dkist_dev_tools-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dkist_dev_tools-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ded671779734ccb9f3dafab898050d5f37ea917ce1ebb4ea7c76cd969a696e0
MD5 17674e578df6f130da4a073c50bca923
BLAKE2b-256 ebb71c79b053924c06b0de2826b30adcdc2f17ec78a57eb1cc98ce6a8a682fe9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page