Skip to main content

Python toolkit for agile release managing, building and issue tracking

Project description

Toolkit for agile development with python, git, github, docker and aws

Badges:

license pyversions status pypiversion

Master CI:

master-build coverage-master

Downloads:

http://pypi.python.org/pypi/pulsar-agile

Source:

https://github.com/quantmind/pulsar-agile

Mailing list:

google user group

Design by:

Quantmind and Luca Sbardella

Platforms:

Linux, OSX, Windows. Python 3.5 and above

Keywords:

git, github, python, aws, release, documentation


Install

This is a python package for aiding deployment and dev-ops type operations on the local machine. To install the package you need python 3.5 or above:

pip install -U pulsar-agile

Setup

Once installed, create the play.py script inside of your repository:

if __name__ == '__main__':
    from agile.app import AgileManager
    AgileManager(description='Release manager for my package').start()

and create the agile.json file along side it.

Usage

Check tasks available:

python play.py -l

Logging

When running tasks, the logging level is by default set to info. For a more verbose logging pass --log-level agile.debug.

Commands

Github

Pulsar agile contains two commands which interacts with github:

  • labels

  • release

Configuration

Before using github commands one needs to configure the .gitconfig file by adding the username and the token. The token is obtained from github from the personal access tokens page:

[user]
  email = ...
  username = lsbardel
  token = bqedoeunzplesw52tme00zwuj2lhbjr8emrbrxax

Labels

Keep labels consistent across repositories. To add a label command create the labels entry in the agile.json file:

{
    "labels": {
        "group1": {
            "repositories": [
                "quantmind/pulsar-agile",
                "quantmind/pulsar-cloud"
            ],
            "labels": {
                "aws": "e47911",
                "benchmark": "006b75"
            }
        }
    },
    "tasks": {
        "repo-labels": {
            "description": "Update labels in all repositories",
            "command": ["labels"]
        }
    }
}

and run the repo-labels command:

python play.py repo-labels

Release

Release dry run:

python play.py release

Release push:

python play.py release --push

HttpCopy

Copy files over an Http connection. For example:

"httpcopy": {
    "sockjs": {
        "src": "https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/{{ sockjs_version }}/sockjs.js",
        "target": "/media/"
    }
}

Sass

Compile scss files using SASS

Shell

Run arbitrary commands on the shell

Template

Transform jinja2 templates files into new files with context dictionary given in the agile.json or other json files. It can also replace ad-hoc string via the replace directive.

Testing

To run unit tests, create a test_config.py file alongside this file and add the following two entries:

import os

os.environ['GITHUB_USERNAME'] = "<username for token>"
os.environ['GITHUB_TOKEN'] = "<generate one from https://github.com/settings/tokens>"
os.environ['GITHUB_TEST_REPO'] = "<username>/<reponame>"

Changelog

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

pulsar-agile-0.5.0.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

pulsar_agile-0.5.0-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file pulsar-agile-0.5.0.tar.gz.

File metadata

File hashes

Hashes for pulsar-agile-0.5.0.tar.gz
Algorithm Hash digest
SHA256 7d1623d907def0a92586627243bd7d6fb313d18d7f8894842062989ff54ba62f
MD5 24590714c8f61837f459e5d22f4d89b6
BLAKE2b-256 eb11c21ca565b9de20856e576e10e940058835a5d41619cd6597e32ad2f61161

See more details on using hashes here.

File details

Details for the file pulsar_agile-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pulsar_agile-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1ac3a14c58a609fec7914c48bc22e227e1237144540f125b23e9363e1470fe3
MD5 684e213d62ce7f0ab26545a4ed382ebf
BLAKE2b-256 cb9237aa0f7016589312953ab09d070a5a7423c850e07dc9366839cf6f6945d6

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