tuulbachs documentation

Low-level software tuuls, organized into drawers.

tuulbash

tuuldevops

Automation tuuls for common tasks around software development

tag_current_version.py

Git tag the commit on the current branch with the current version of this software

tuuldevops.tag_current_version.tag_product_version(conf_filename)

Git tag the commit on the current branch with the version of this software given in conf_filename

update_version.py

Update the version in the tuulbachs-formatted YAML version file

tuuldevops.update_version.update_product_version(conf_filename, new_ver)

Write a new_ver as the new value for the ‘version’ key in the conf_filename

tuulgit

An opinionated set of Git tuuls.

check_clean.py

Check the Git working tree

tuulgit.check_clean.is_clean_working_tree()

Return a boolean indicating whether the Git working tree is clean or not

tag_commit.py

Git tag the commit on the current branch, only if the working tree is clean

tuulgit.tag_commit.tag_current(tag)

Git tag (annotated) the current commit from a clean working tree

Raises:TuulError – when the caller attempts to tag an unclean working tree or to use a tag that already exists on the repo
tuulgit.tag_commit.tag_current_signed(tag)

Git tag (signed) the current commit from a clean working tree

Raises:TuulError – when the caller attempts to tag an unclean working tree or to use a tag that already exists on the repo
tuulgit.tag_commit.tag_delete_local(tag)

Delete the named Git tag (local only). This function does not delete remote tags

Raises:TuulError – if the tag delete fails

tuulpy

tuulver

version.py

Utility functions for managing a tuulbachs-formatted version YAML file

tuulver.version.bump_build(filename)

Bump the “build” portion of the version from the input YAML filename

tuulver.version.bump_major(filename)

Bump the major portion of the version from the input YAML filename

tuulver.version.bump_minor(filename)

Bump the minor portion of the version from the input YAML filename

tuulver.version.bump_pre(filename, prebase='pre')

Bump the “pre” portion of the version from the input YAML filename

tuulver.version.emit_product_name(filename)

Return the product name value from the input YAML filename

tuulver.version.emit_version(filename)

Return the version value from the input YAML filename

tuulyaml

Low level tuuls for interacting with YAML files.

parse.py

Parse an input YAML file

tuulyaml.parse.parse_yaml(filename)

Given input path filename, parse YAML file.

update_simple_value.py

Update a simple top-level value in a YAML file

tuulyaml.update_simple_value.update_value(inout_path, existing_key, new_value)

Update existing_key to new_value in the existing inout_path YAML file.

install

Note that tuulbachs is not yet published at PyPi. So these instructions detail a local installation.

  1. pip install . --upgrade
  2. cd docs
  3. make html

deploy

Guidance about how to deploy updates to tuulbachs itself

  1. Follow install guidance
  2. Decide which type of semantic version upgrade this is (major, minor, patch, etc.)
  3. From tuulver/version.py, use the appropriate bump_* function to update the version string in version.yaml
  4. Commit the version change to Git
  5. Make sure the local working tree is clean
  6. From tuuldevops/tag_current_version.py, use the tag_product_version function to properly tag this release
  7. Push the Git update (including tags) to this repo’s remotes

Indices and tables