Skip to main content

USGS lightweight utilities for package releases

Project description

ESI Releases

Note that relevant info on USGS code distribution and repository metadata can be found at <https://www.usgs.gov/products/software/software-management/distribution-usgs-code>

Description

This repository provides a CLI release tool for use in the repositories of the USGS Engineering Seismology and Impacts Gitlab group.

At present the CLI is a minimally functionally tool to increment major, minor, or patch version numbers in the code and update the project metadata in code.json accordingly.

For our purposes, this amounts to changing the version field in code.json followed by 3 URLs:

  • 'downloardURL``
    • This URL is tied to a specific release on Gitlab based on a tag
  • disclaimerURL
  • A licenses URL that exists under the permissions field
At the moment, this tool assumes that the version tag is of the form `v#.#.#`

Installation

It can be installed directly from source by calling pip in the cloned repository base directory:

pip install .

Developers or advanced users may which to include optional dependencies and install in editable mode:

pip install -e .[dev,test,build]

The package is also availbe on PyPI and can be installed with:

pip install esi-releases

Usage

This CLI tool allows for three levels of version incrementation, depending on the scope of changes to a repostories code, and attempts to adhere to the conventions of Semantic Versioning

<Major>.<Minor>.<Patch>
  • Major version increments are used when new features that are backwards incompatible are introduced
  • Minor version increments are used when new features that retain backwards compatibility are introduced
  • Patch increments are used for bugfixes that do not introduce new features

The general behavior of this tool is the following:

  • When a patch release is initiated, the patch number is simply incremented and adjusted across the metadata
  • When a minor release is initiated, the minor number is incremented and the patch number is reset to zero
  • When a major release is initiated, the major number is incremented, while the minor and patch numbers are reset to zero

Commands

To initiate a release the following syntax is used:

releases <major|minor|patch>

For example, for a package in a patch release at the a current version of v1.0.0:

releases patch

will result in v1.0.1

Should the same package have a following 'minor' release, i.e.:

releases minor

this will result in v1.1.0

Finally, if the package then undergoes a major release:

releases major

the version will be incremented to v2.0.0

Help can be obtained in the CLI with the following:

releases --help

In Development

The intention of this CLI tool is to soon also support automate CHANGELOG.md updates based on commit messages in the repository, and to also prepare for a release by creating a new version entry. This is currently under development.

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

esi-releases-0.1.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

esi_releases-0.1.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file esi-releases-0.1.0.tar.gz.

File metadata

  • Download URL: esi-releases-0.1.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.5

File hashes

Hashes for esi-releases-0.1.0.tar.gz
Algorithm Hash digest
SHA256 43de88d0a00dd2e9196bd295474ee8358bb9ad9522aa501fb18690437b45f202
MD5 5b77acbd63879c7e641c7b2043ebf9d2
BLAKE2b-256 eb8429ca7438bfff23f8afdaa1a65a669602e03eff86456d484bea7b8bf71e44

See more details on using hashes here.

File details

Details for the file esi_releases-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for esi_releases-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b3979d14a544b90b0191d8336499123a39326ac404ff83a589e0cc4bba2f0b44
MD5 67282622e66d2aa7c937044ecd50e885
BLAKE2b-256 a651fe3d98bd401b1f696f056ac596fb850b338fc3e7f1464291bb31baf6fcc0

See more details on using hashes here.

Supported by

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