Skip to main content

No project description provided

Project description

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

Release facilitator for pop-projects.

About

Pop Release is a simple tool to automate the process of creating a release. When making POP software releases should be happening very quickly, every few commits should justify a release.

Since releases happen so frequently, and since they should be executed in an identical way from project to project, pop-release becomes a simple command to update the release locally and on pypi.

What is POP?

This project is built with pop, a Python-based implementation of Plugin Oriented Programming (POP). POP seeks to bring together concepts and wisdom from the history of computing in new ways to solve modern computing problems.

For more information:

Getting Started

Prerequisites

  • Python 3.8+

  • git (if installing from source, or contributing to the project)

Installation

If wanting to use pop-release, you can do so by either installing from PyPI or from source.

Install from PyPI

If package is available via PyPI, include the directions.

pip install pop-release

Install from source

# clone repo
git clone git@gitlab.com/saltstack/pop/pop-release.git
cd pop-release

# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Usage

pop-release can be run several ways. The traditional method uses a ~/.pypirc config file. The most powerful and versatile method is to use idem/acct’s authentication.

Traditional

Set up a file called “.pypirc” in your home directory. Your username will be “__token__” and your password will be an API token With this method you can’t choose between the configured profiles.

~/.pypirc

[distutils]
index-servers=
    pypi

[pypi]
repository = https://upload.pypi.org/legacy/
username = __token__
password = pypi-<pypi_api_token>

With your credentials set up, you can simply run the pop-release command in the root of the directory that contains your source code. The only argument you need is a semantic version number.

pop-release 1.0.0-alpha

Power User

Using the acct plugin, we can have multiple named profiles. The “default” and “testing” examples below show the bare minimum of configuration required. Any options that can be used by a twine.settings.Settings object can be included in a twine acct profile.

credentials.yaml

twine:
    default:
        username: __token__
        password: pypi-api-auth-token
        repository_name: pypi
        repository_url: https://upload.pypi.org/legacy/
    testing:
        username: __token__
        password: pypi-testing-api-auth-token
        repository_name: testpypi
        repository_url: https://test.pypi.org/legacy/
    internal:
        sign: True
        sign_with: gpg
        identity:
        username: __token__
        password: pypi-internal-api-auth-token
        comment: My project's private repository
        config_file: ~/.pypirc
        skip_existing: False
        cacert:
        client_cert:
        repository_name: internal_pypi
        repository_url: https://pypi.<my_domain>.com/api

Now encrypt your credentials with acct

acct encrypt credentials.yaml

If this is the first time you used the command, it will output a fernet key. Save this key to the environment:

export ACCT_KEY="i6KbvytHAYWYiWBV48x5Ao0M3xuP-7Yzyi5K5g4eRQw="

There will also be a new file created called <credentials_file_name>.fernet. Save the full path to this file to your environment:

export ACCT_FILE="/home/myuser/.../credentials.yaml.fernet"

Now you can run pop-release using your encrypted credentials. The profile called “default” will be used implicitly. You can choose a profile for running pop-release by using the –acct-profile option.

PyPi release using the default profile:

pop-release 2.0.0

PyPi testing release:

pop-release 2.0.0 --acct-profile=testing

Acknowledgements

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

pop-release-14.0.2.post2.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

pop_release-14.0.2.post2-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file pop-release-14.0.2.post2.tar.gz.

File metadata

  • Download URL: pop-release-14.0.2.post2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/42.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.5 tqdm/4.66.1 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.5

File hashes

Hashes for pop-release-14.0.2.post2.tar.gz
Algorithm Hash digest
SHA256 f39a77d6602bba2dcb297d60d86e1f17d8e5ffd56493930ec69c27e845c3392c
MD5 2704d2524f6c10b4ce20ebed84325347
BLAKE2b-256 25bf80c5e00d5e458be49fee034a1b7fd3974ed0b40d2b82a2367c18061a5692

See more details on using hashes here.

File details

Details for the file pop_release-14.0.2.post2-py3-none-any.whl.

File metadata

  • Download URL: pop_release-14.0.2.post2-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/42.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.5 tqdm/4.66.1 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.5

File hashes

Hashes for pop_release-14.0.2.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 c0cc5629602ecf0c931e99e69422fcff711ab54704b48609dbb6ef348c7d66c4
MD5 1dc77f64e02573882e283602d9b3193e
BLAKE2b-256 41c780e89073ae059305be75a2f2014959a94a0915fa48c39465645238b8e37f

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