This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Overview

The release-manager is a Python utility for easily uploading zipped or plain binaries to a destination target. It allows you to:

  • Create new package versions
  • Upload artifacts to said version
  • Currently only support zip
  • Upload to multiple targets
  • Currently supports Bintray and AWS S3
  • Combine N binaries into the artifact that is then uploaded
  • Upload N artifacts to for the package

Installing

  • Option 1: Download this repository and run: python setup.py install
  • Option 2: Install from pip: pip install release-manager

Usage

usage: release-manager.py [-h] [--config CONFIG] [--make-version]
                          [--make-artifact] [--upload-artifact]
                          [--check-version] [--version]

Bintray utility for creating and uploading zip packages.

optional arguments:
  -h, --help         show this help message and exit
  --config CONFIG    the path to the configuration yaml file
  --make-version     makes a new version for the package
  --make-artifact    makes the artifacts that will be uploaded
  --upload-artifact  uploads the artifacts to the targets
  --check-version    checks that the version specified matches the build
  --version          show program's version number and exit

Please note when specifying the options to run that they will be applied to every package in your config file.

Options:

  • You cannot upload the artifacts without also making the artifacts:
  • --upload-artifact requires --make-artifact
  • Checking the version is useful for automated build tools such as travis to assert that you have the correct build versions specified

Config

The release-manager requires a config be passed to it in the form of a yaml file. You can find a sample config in the resources directory.

Environment resolver

To get values from the environment at runtime set the value like the following:

some_env_key: <%= ENV['SOME_ENV_VALUE'] %>

Shell resolver

To evaluate a shell command at runtime set the value like the following:

some_cmd_value: <%= CMD['cat VERSION'] %>

NOTE: If the command does not exit with code 0 the config will not load.

Variable resolver

If you need to access a variable many-times in your config and it is okay for it to be hardcoded you can use the local variable resolver.

This works like so:

some_var_value: "hello_world"
some_ref_var_value: {{ some_var_value }}

Function resolver

release-manager provides you one (for now) predefined function - sbt_version(path). Using it you can extract version of SBT project in specified path.

This works like so:

some_cmd_value: <%= FUNC['sbt_version(../scalaz)'] %>

Example config

# Required: local settings
local:
  root_dir : <%= ENV['TRAVIS_BUILD_DIR'] %>

# Required: deployment targets
targets:
  - type     : "bintray" # Options: bintray
    user     : <%= ENV['BINTRAY_USER'] %>
    password : <%= ENV['BINTRAY_PASSWORD'] %>

# Required: packages to be deployed
packages:
  - repo     : "generic"
    name     : "release-manager"
    user_org : "jbeemster"
    publish  : true

    # Will attempt to overwrite a published entity if one is found
    override : false

    # If the artifact already exists will determine whether or not
    # to fail the release
    continue_on_conflict : false

    # The version of this package
    version  : <%= CMD['cat VERSION'] %>

    # Required IF '--check-version' is passed: will assert that
    # both versions are the same
    build_version : <%= ENV['TRAVIS_TAG'] %>

    # Optional: Build commands
    # You can nest your artifact creation commands here!
    build_commands:
      - ls -ls

    # Required: Artifact
    artifacts:
        # The artifact name is composed like so:
        # {{prefix}}{{version}}{{suffix}}.zip
      - prefix : "release_manager_"
        suffix : ""
        type   : "zip"

        # The binaries to put in the zip
        binary_paths:
          - setup.py

AWS S3 target

In addition to Bintray you can also upload your files to Amazon S3.

targets:
  - type     : "awss3" # Options: bintray
    user     : <%= ENV['AWS_ACCESS_KEY'] %>
    password : <%= ENV['AWS_SECRET_KEY'] %>

As is artifacts

In addition to zip artifacts you can also upload plain files from your local FS.

artifacts:
  - prefix : "release_manager_"
    suffix : ""
    type   : "asis"

    binary_paths:
      - setup.py

File setup.py will be renamed to release_manager_{{ version}} and upload into specified path.

Release History

Release History

0.2.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0rc2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0rc1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0rc4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0-rc3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0-rc2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0-rc1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
release-manager-0.2.0.tar.gz (14.6 kB) Copy SHA256 Checksum SHA256 Source Dec 2, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting