tfver


Nametfver JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/hansohn/tfver
Summary'Fetches Terraform version metadata'
upload_time2023-01-04 05:57:37
maintainer
docs_urlNone
authorRyan Hansohn
requires_python~=3.9
licenseApache License 2.0
keywords terraform release version
VCS
bugtrack_url
requirements click packaging pyyaml requests semver
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <h3>tfver</h3>
  <p>Terraform tool for fetching release metadata</p>
  <p>
    <!-- Build Status -->
    <a href="https://actions-badge.atrox.dev/hansohn/tfver/goto?ref=main">
      <img src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhansohn%2Ftfver%2Fbadge%3Fref%3Dmain&style=for-the-badge">
    </a>
    <!-- Github Tag -->
    <a href="https://github.com/hansohn/tfver/tags/">
      <img src="https://img.shields.io/github/tag/hansohn/tfver.svg?style=for-the-badge">
    </a>
    <!-- License -->
    <a href="https://github.com/hansohn/tfver/blob/main/LICENSE">
      <img src="https://img.shields.io/github/license/hansohn/tfver.svg?style=for-the-badge">
    </a>
    <!-- LinkedIn -->
    <a href="https://linkedin.com/in/ryanhansohn">
      <img src="https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555">
    </a>
  </p>
</div>

### Description

Welcome to the **tfver** repo. This Python command line utility fetches Terraform
release metadata, filters releases based on query, generates release tags, and
returns the results in your desired output format [text|json|yaml]. It was built
with CI/CD in mind.

### Tags

Release tags generated by tfver follow the following naming convention. In
this example [hansohn/terraform](https://hub.docker.com/r/hansohn/terraform) is
a docker image that been tagged using this tool.

```
# tag formats
hansohn/terraform:latest        latest release of Terraform
hansohn/terraform:1             latest 1.x.x version release of Terraform
hansohn/terraform:1.2           latest 1.2.x version release of Terraform
hansohn/terraform:1.2.3         1.2.3 version of Terraform
```

### Usage

#### Commands

```
$ tfver --help
Usage: tfver [OPTIONS]

  Gathers a historical list of Terraform versions and their metadata. Produces
  a filtered response based on arguement inputs.

Options:
  -c, --count INTEGER            Return latest N number of minor release
                                 versions.  [default: 1]
  -r, --regex TEXT               Filter release versions using regex pattern
                                 matching. example: '^(0.15|1)$'
  -b, --build TEXT               Filter build versions by platform os and
                                 arch. example: 'os=linux,arch=amd64'
  -t, --tag-template TEXT        Format tags to templatized string. String
                                 template must include '{tag}' keyword which
                                 will be replaced with actual tag value during
                                 formatting. example: 'foo/bar:{tag}-dev'
  -o, --output [text|json|yaml]  The formatting style for command output.
                                 [default: json]
  -L, --vlist                    Reformats 'versions' key to list of dicts.
                                 Defaults to key/value version dicts.
  -M, --major                    Includes major version tag in metadata of all
                                 lastest major version releases. example:
                                 1.2.3 -> 1
  -m, --minor                    Includes minor version tag in metadata of all
                                 lastest minor version releases. example:
                                 1.2.3 -> 1.2
  -p, --prerelease               Include pre-release versions in response.
  -v, --verbose                  Include all release metadata in response.
  -V, --verboseb                 Include all release metadata and all builds
                                 in response.
  --version                      Show the version and exit.
  --help                         Show this message and exit.
```

#### Makefile

Additionally, a Makefile has been included in this repo to assist with common
development-related functions. I've included the following make targets for
convenience:

```
Available targets:

  build                               Build python package
  clean                               Clean everything
  clean/build                         Clean python build directories
  clean/docker                        Clean docker build images
  clean/venv                          Clean virtual environment directory
  docker                              Docker launch testing environment
  docker/build                        Docker build image
  docker/lint                         Lint Dockerfile
  docker/push                         Docker push image
  docker/run                          Docker run image
  help                                Help screen
  help/all                            Display help for all targets
  help/short                          This help short screen
  lint                                Run all linters, validators, and security analyzers
  lint/bandit                         Python security linter
  lint/black                          Python code formatter
  lint/flake8                         Python styleguide enforcement
  lint/mypy                           Python static typing
  lint/pylint                         Python linter
  python/build                        Python build package
  python/packages                     Python install packages from requirements file(s)
  python/venv                         Python configure virtual environment
  upload/check                        Python upload check
  upload/pypi                         Python upload package to pypi
  upload/testpypi                     Python upload package to testpypi
  venv                                Create virtual environment and install requirements
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hansohn/tfver",
    "name": "tfver",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "~=3.9",
    "maintainer_email": "",
    "keywords": "terraform,release,version",
    "author": "Ryan Hansohn",
    "author_email": "info@imnorobot.com",
    "download_url": "https://files.pythonhosted.org/packages/6b/c4/da4365bd7de750133eafd0efd0cb8b2d74762a83e7cc8684eac79a945ca1/tfver-1.0.0.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <h3>tfver</h3>\n  <p>Terraform tool for fetching release metadata</p>\n  <p>\n    <!-- Build Status -->\n    <a href=\"https://actions-badge.atrox.dev/hansohn/tfver/goto?ref=main\">\n      <img src=\"https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhansohn%2Ftfver%2Fbadge%3Fref%3Dmain&style=for-the-badge\">\n    </a>\n    <!-- Github Tag -->\n    <a href=\"https://github.com/hansohn/tfver/tags/\">\n      <img src=\"https://img.shields.io/github/tag/hansohn/tfver.svg?style=for-the-badge\">\n    </a>\n    <!-- License -->\n    <a href=\"https://github.com/hansohn/tfver/blob/main/LICENSE\">\n      <img src=\"https://img.shields.io/github/license/hansohn/tfver.svg?style=for-the-badge\">\n    </a>\n    <!-- LinkedIn -->\n    <a href=\"https://linkedin.com/in/ryanhansohn\">\n      <img src=\"https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555\">\n    </a>\n  </p>\n</div>\n\n### Description\n\nWelcome to the **tfver** repo. This Python command line utility fetches Terraform\nrelease metadata, filters releases based on query, generates release tags, and\nreturns the results in your desired output format [text|json|yaml]. It was built\nwith CI/CD in mind.\n\n### Tags\n\nRelease tags generated by tfver follow the following naming convention. In\nthis example [hansohn/terraform](https://hub.docker.com/r/hansohn/terraform) is\na docker image that been tagged using this tool.\n\n```\n# tag formats\nhansohn/terraform:latest        latest release of Terraform\nhansohn/terraform:1             latest 1.x.x version release of Terraform\nhansohn/terraform:1.2           latest 1.2.x version release of Terraform\nhansohn/terraform:1.2.3         1.2.3 version of Terraform\n```\n\n### Usage\n\n#### Commands\n\n```\n$ tfver --help\nUsage: tfver [OPTIONS]\n\n  Gathers a historical list of Terraform versions and their metadata. Produces\n  a filtered response based on arguement inputs.\n\nOptions:\n  -c, --count INTEGER            Return latest N number of minor release\n                                 versions.  [default: 1]\n  -r, --regex TEXT               Filter release versions using regex pattern\n                                 matching. example: '^(0.15|1)$'\n  -b, --build TEXT               Filter build versions by platform os and\n                                 arch. example: 'os=linux,arch=amd64'\n  -t, --tag-template TEXT        Format tags to templatized string. String\n                                 template must include '{tag}' keyword which\n                                 will be replaced with actual tag value during\n                                 formatting. example: 'foo/bar:{tag}-dev'\n  -o, --output [text|json|yaml]  The formatting style for command output.\n                                 [default: json]\n  -L, --vlist                    Reformats 'versions' key to list of dicts.\n                                 Defaults to key/value version dicts.\n  -M, --major                    Includes major version tag in metadata of all\n                                 lastest major version releases. example:\n                                 1.2.3 -> 1\n  -m, --minor                    Includes minor version tag in metadata of all\n                                 lastest minor version releases. example:\n                                 1.2.3 -> 1.2\n  -p, --prerelease               Include pre-release versions in response.\n  -v, --verbose                  Include all release metadata in response.\n  -V, --verboseb                 Include all release metadata and all builds\n                                 in response.\n  --version                      Show the version and exit.\n  --help                         Show this message and exit.\n```\n\n#### Makefile\n\nAdditionally, a Makefile has been included in this repo to assist with common\ndevelopment-related functions. I've included the following make targets for\nconvenience:\n\n```\nAvailable targets:\n\n  build                               Build python package\n  clean                               Clean everything\n  clean/build                         Clean python build directories\n  clean/docker                        Clean docker build images\n  clean/venv                          Clean virtual environment directory\n  docker                              Docker launch testing environment\n  docker/build                        Docker build image\n  docker/lint                         Lint Dockerfile\n  docker/push                         Docker push image\n  docker/run                          Docker run image\n  help                                Help screen\n  help/all                            Display help for all targets\n  help/short                          This help short screen\n  lint                                Run all linters, validators, and security analyzers\n  lint/bandit                         Python security linter\n  lint/black                          Python code formatter\n  lint/flake8                         Python styleguide enforcement\n  lint/mypy                           Python static typing\n  lint/pylint                         Python linter\n  python/build                        Python build package\n  python/packages                     Python install packages from requirements file(s)\n  python/venv                         Python configure virtual environment\n  upload/check                        Python upload check\n  upload/pypi                         Python upload package to pypi\n  upload/testpypi                     Python upload package to testpypi\n  venv                                Create virtual environment and install requirements\n```\n\n\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "'Fetches Terraform version metadata'",
    "version": "1.0.0",
    "split_keywords": [
        "terraform",
        "release",
        "version"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6bc4da4365bd7de750133eafd0efd0cb8b2d74762a83e7cc8684eac79a945ca1",
                "md5": "b4de984508c85601cd35ff5dc7c60ff9",
                "sha256": "5c9ac1546b671d2c40476ffce0e07698bf4dc1b953697a54f299fc23e45beace"
            },
            "downloads": -1,
            "filename": "tfver-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b4de984508c85601cd35ff5dc7c60ff9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "~=3.9",
            "size": 23658,
            "upload_time": "2023-01-04T05:57:37",
            "upload_time_iso_8601": "2023-01-04T05:57:37.696018Z",
            "url": "https://files.pythonhosted.org/packages/6b/c4/da4365bd7de750133eafd0efd0cb8b2d74762a83e7cc8684eac79a945ca1/tfver-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-04 05:57:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "hansohn",
    "github_project": "tfver",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "click",
            "specs": []
        },
        {
            "name": "packaging",
            "specs": []
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "semver",
            "specs": []
        }
    ],
    "lcname": "tfver"
}
        
Elapsed time: 0.02491s