Toolkit for developers of the `dkist-processing-*` stack.
Project description
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 pipx (recommended)
By using pipx you can install ddt with a specific python version that can still be run from anywhere on your system. First, find out the path to a python version that matches what is used by the DKIST processing workers. This may be your system-level python, but, more likely, it will be in some other virtual environment. I recommend creating an environment just to provide a correct python version for dkist-dev-tools.
For example, using conda:
conda create -y -n dkist-dev-tools python=3.11
conda activate dkist-dev-tools
pipx install dkist-dev-tools --python $(which python)
After running this commands you should have access to the ddt command line function from any terminal and environment, not just the conda env you created. Neat!
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dkist_dev_tools-1.2.0.tar.gz.
File metadata
- Download URL: dkist_dev_tools-1.2.0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63d041ec0a1aeb3495fad118878e2cbff8025008ae86c32fdc88f39793c97f13
|
|
| MD5 |
6e1c508d92576da647522705664d5561
|
|
| BLAKE2b-256 |
bd740fba8cd40e962782affb9ca955a654e99f4aca3286cb6caf434964da8771
|
File details
Details for the file dkist_dev_tools-1.2.0-py3-none-any.whl.
File metadata
- Download URL: dkist_dev_tools-1.2.0-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ad94cb721d4ea1869799a5ada0667ae378401d126d2f7c8ef8c5eb6f0f1fbab
|
|
| MD5 |
ae3bf21ef3b63c3f4c6ca15194ebba33
|
|
| BLAKE2b-256 |
48a4848e05247c8f5daee860293255b661ef4e741ddcb39c9f98ce329e0b7248
|