From 7c187c2c4ed8d9b0e65e9d61e944476894680719 Mon Sep 17 00:00:00 2001 From: Iwan in 't Groen Date: Sat, 4 May 2019 13:11:49 +0200 Subject: [PATCH] Update travis build to use python3.7 --- .travis.yml | 29 +++++----- AUTHORS.rst | 2 +- HISTORY.rst | 6 +++ tox.ini | 2 +- travis_pypi_setup.py | 122 ------------------------------------------- 5 files changed, 20 insertions(+), 141 deletions(-) delete mode 100755 travis_pypi_setup.py diff --git a/.travis.yml b/.travis.yml index 86939b9..6711b0f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,30 +1,25 @@ -# This file was autogenerated and will overwrite each time you run travis_pypi_setup.py +dist: xenial +language: python +python: 3.7 after_success: - coveralls before_script: - flake8 ntpdatetime -v deploy: - true: - condition: $TOXENV == py27 + provider: pypi + user: Iwan.in.t.Groen + password: + secure: XqBzNoifH4d0edIzh8cSm130k8Sderbbg2MNlwfqLQ0u8GrgEzDWK68FMrDq80foSY+N9AWZiv5aWl72+XijwOVgondX7nxXOwEMTFrUx8Iq/MQGMoZq9WLYTnKHb66Rc3tr9m0npqw9xX4IuYUGHAZzNqfYA4AvEG1w8DfMtvAz/8kGbiu2s/bKvVED/fAXvMfLdlysVXEJSfe4HyFu5L60SqDpSfg2+cQeoGhKUnI+SCVjIsi3HRPItGei9x1tAk5lGFEZkZSos7CIZcOdzOAOB4zJkywVZoHQc9ROh2yfSr7ZVCKvOSRYDRJTchC0+vt+iKks4EiLj/GkXD2xSJbtVuFTPiDZvx88+la4qVbhkknZ2GoBVUPmWkE1blnoPv9zNkIcgMSPboFWC+SbOEToTXAuO/qz3xx2g4FpJbPIA8QupKjgOa+d2PLX8/eePco1MMnTmFeumRU7i41rjmgsdYk0f7sugNzzxv1zs2vGBm2QCJYk48/uquRVtyA7GPkZqk5l1SlUaW02+n04cN1LPZ4jzTtZm1zq9AxYgroAHIU6p/3IUy6+npmeajFYHNP2uSndS8wqhH5UIsonlvhyNVUmk3MjM1HOAIMORptztVdAnkhj5bok4RmJQRYMHikKxo4XdGVh4aBgaYg4owzw/y0M/+QtLK6964z5p1w= + on: repo: igroen/ntpdatetime tags: true distributions: sdist bdist_wheel - password: - secure: p24r4eProGIjkeZhkdozv/FczQykSCgj7OpS+ciIzSb/Tgw8xsRPlkQGvVxkUw3lTEjkjPNY6W+wn5hjp8qoUATdMPLBiEJqgZGIIlvCKEiEXGVE/PTpw0ekkbGbWMxtckQUFJ65dYmghDHSH0zJ/AZyNBb7PkPiXIugtPg+SkNV9OusDXgPXEyDuJKjUFVrqdg7OMAFAnviFDXdnT1wMjYU4nBBSOuAk09dis0tR8C788Y/Pgbf/OR6I3GJ64XUc6KM5zbx++kOZ2rCDxwJNwH4O5+y2HMb+p9NWKbOu7QL6M79t/bEEYDCEMUW6OxbDBgXsMlF8L7GrATNudEwbaQHJjt7RsO6cFX8yjcdhoH//4+7R78qgR6ngWksaqO8XYSiYBtS2+rvb/fmC47vuSRaUEvNoK3YEfohm2i6I1GAK8MNr9v7A6De5EXN2ZlY8EXoceal3B9ebUH9h3wH8Em+JwKC3/nIpx+YeKmWTn2PZ1KRnGZOz6pLoOUu1Lr0MvE5HDLr1w4bZaYkobnB9tUFntFJbXSO0/cR8KkSNSD2uSTeM9piH8lEI5I/f18MGdFovP0hS68/9BMqR9PNE+aSg8UFoIPEnfxZjekJxpmVtZQX6p6Ngg7UTluzMWQ/0AYvVWdGAeL95qnUKkBiITuB+1l+5yNtYZJ142xzQrY= - provider: pypi - user: Iwan.in.t.Groen env: -- TOXENV=py35 -- TOXENV=py34 -- TOXENV=py33 -- TOXENV=py27 -- TOXENV=py26 -- TOXENV=pypy +- TOXENV=py37 install: -- pip install -U tox --use-mirrors -- pip install -U coveralls --use-mirrors -- pip install -U flake8 --use-mirrors -language: python +- pip install -U tox +- pip install -U coveralls +- pip install -U flake8 script: - tox - coverage run --source=ntpdatetime setup.py test diff --git a/AUTHORS.rst b/AUTHORS.rst index 9ac7890..b70909c 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -10,4 +10,4 @@ Development Lead Contributors ------------ -None yet. Why not be the first? +* mdxs diff --git a/HISTORY.rst b/HISTORY.rst index 81fd6e9..ecfe77c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -47,3 +47,9 @@ History ------------------ - Remove requirements_dev.txt + +0.1.7 (2019-05-04) +------------------ + +- Fixed typo in comment +- Update travis build to use python3.7 diff --git a/tox.ini b/tox.ini index b46f62d..4ac654a 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py27 +envlist = py37 skip_missing_interpreters = true [testenv] diff --git a/travis_pypi_setup.py b/travis_pypi_setup.py deleted file mode 100755 index efe8d47..0000000 --- a/travis_pypi_setup.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -"""Update encrypted deploy password in Travis config file -""" - - -from __future__ import print_function -import base64 -import json -import os -from getpass import getpass -import yaml -from cryptography.hazmat.primitives.serialization import load_pem_public_key -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.asymmetric.padding import PKCS1v15 - - -try: - from urllib import urlopen -except: - from urllib.request import urlopen - - -GITHUB_REPO = 'igroen/ntpdatetime' -TRAVIS_CONFIG_FILE = os.path.join( - os.path.dirname(os.path.abspath(__file__)), '.travis.yml') - - -def load_key(pubkey): - """Load public RSA key, with work-around for keys using - incorrect header/footer format. - - Read more about RSA encryption with cryptography: - https://cryptography.io/latest/hazmat/primitives/asymmetric/rsa/ - """ - try: - return load_pem_public_key(pubkey.encode(), default_backend()) - except ValueError: - # workaround for https://github.com/travis-ci/travis-api/issues/196 - pubkey = pubkey.replace('BEGIN RSA', 'BEGIN').replace('END RSA', 'END') - return load_pem_public_key(pubkey.encode(), default_backend()) - - -def encrypt(pubkey, password): - """Encrypt password using given RSA public key and encode it with base64. - - The encrypted password can only be decrypted by someone with the - private key (in this case, only Travis). - """ - key = load_key(pubkey) - encrypted_password = key.encrypt(password, PKCS1v15()) - return base64.b64encode(encrypted_password) - - -def fetch_public_key(repo): - """Download RSA public key Travis will use for this repo. - - Travis API docs: http://docs.travis-ci.com/api/#repository-keys - """ - keyurl = 'https://api.travis-ci.org/repos/{0}/key'.format(repo) - data = json.loads(urlopen(keyurl).read()) - if 'key' not in data: - errmsg = "Could not find public key for repo: {}.\n".format(repo) - errmsg += "Have you already added your GitHub repo to Travis?" - raise ValueError(errmsg) - return data['key'] - - -def prepend_line(filepath, line): - """Rewrite a file adding a line to its beginning. - """ - with open(filepath) as f: - lines = f.readlines() - - lines.insert(0, line) - - with open(filepath, 'w') as f: - f.writelines(lines) - - -def load_yaml_config(filepath): - with open(filepath) as f: - return yaml.load(f) - - -def save_yaml_config(filepath, config): - with open(filepath, 'w') as f: - yaml.dump(config, f, default_flow_style=False) - - -def update_travis_deploy_password(encrypted_password): - """Update the deploy section of the .travis.yml file - to use the given encrypted password. - """ - config = load_yaml_config(TRAVIS_CONFIG_FILE) - - config['deploy']['password'] = dict(secure=encrypted_password) - - save_yaml_config(TRAVIS_CONFIG_FILE, config) - - line = ('# This file was autogenerated and will overwrite' - ' each time you run travis_pypi_setup.py\n') - prepend_line(TRAVIS_CONFIG_FILE, line) - - -def main(args): - public_key = fetch_public_key(args.repo) - password = args.password or getpass('PyPI password: ') - update_travis_deploy_password(encrypt(public_key, password)) - print("Wrote encrypted password to .travis.yml -- you're ready to deploy") - - -if '__main__' == __name__: - import argparse - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('--repo', default=GITHUB_REPO, - help='GitHub repo (default: %s)' % GITHUB_REPO) - parser.add_argument('--password', - help='PyPI password (will prompt if not provided)') - - args = parser.parse_args() - main(args)