https://github.com/blue-yonder/devpi-builder

Automatically build and upload python packages to devpi

https://github.com/blue-yonder/devpi-builder

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.0%) to scientific vocabulary

Keywords

devpi packaging python wheels

Keywords from Contributors

distribution sequences charts robot pypi pip interactive genomics asyncio aiohttp
Last synced: 5 months ago · JSON representation

Repository

Automatically build and upload python packages to devpi

Basic Info
  • Host: GitHub
  • Owner: blue-yonder
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 304 KB
Statistics
  • Stars: 75
  • Watchers: 16
  • Forks: 29
  • Open Issues: 3
  • Releases: 4
Topics
devpi packaging python wheels
Created over 11 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License

README.rst

=========================
Brandon the Devpi Builder
=========================

.. image:: https://coveralls.io/repos/blue-yonder/devpi-builder/badge.svg?branch=master
    :alt: Coverage Status
    :target: https://coveralls.io/r/blue-yonder/devpi-builder?branch=master
.. image:: https://badge.fury.io/py/devpi-builder.svg
    :alt: Latest Version
    :target: https://pypi.python.org/pypi/devpi-builder

Brandon, the devpi builder, takes a ``requirements.txt`` and incrementally fills a devpi_ index with wheels of the listed python packages.


Brandon by Example
==================

Given a ``requirements.txt``, we can upload all listed packages to the index ``opensource/Debian_7`` on a local devpi using the following command::

    $ devpi-builder requirements.txt http://localhost:3141/opensource/Debian_7

Example of such a ``requirements.txt``::

    progressbar==0.2.2
    progressbar==0.2.1
    PyYAML==3.11

Commandline Usage
=================
::

    usage: devpi-builder [-h] [--batch] [--user USER] [--password PASSWORD]
                        [--blacklist BLACKLIST] [--pure-index PURE_INDEX]
                        [--junit-xml JUNIT_XML] [--run-id RUN_ID] [--dry-run]
                        [--client-cert CLIENT_CERT]
                        requirements index

    Create wheels for all given project versions and upload them to the given
    index.

    positional arguments:
    requirements          requirements.txt style file specifying which project
                            versions to package.
    index                 The index to upload the packaged software to.

    optional arguments:
    -h, --help            show this help message and exit
    --batch               Batch mode. Do not prompt for credentials
    --user USER           The user to log in as.
    --password PASSWORD   Password of the user.
    --blacklist BLACKLIST
                            Packages matched by this requirements.txt style file
                            will never be build.
    --pure-index PURE_INDEX
                            The index to use for pure packages. Any non-pure
                            package will be uploaded to the index given as
                            positional argument. Packages already found in the
                            pure index will not be built, either.
    --junit-xml JUNIT_XML
                            Write information about the build success / failure to
                            a JUnit-compatible XML file.
    --run-id RUN_ID       Add the given string to all entries in the XML output,
                            allowing to distinguish output from multiple runs in a
                            merged XML.
    --dry-run             Build missing wheels, but do not modify the state of
                            the devpi server.
    --client-cert CLIENT_CERT
                            Client key to use to authenticate with the devpi
                            server.

The following environment variables can be used instead of command line arguments:

``DEVPI_USER``
    The value of this environment variable will be used if ``--user`` is not given.

``DEVPI_PASSWORD``
    The value of this environment variable will be used if ``--password`` is not given.

Features
========

* Read a ``requirements.txt`` style input file.
* Read user/pass from the environment (using ``DEVPI_USER`` and ``DEVPI_PASSWORD``).
* Support multiple versions of a package in the same file.
* Only build packages not yet in the target index.
* Support a black-list for packages to never be built and uploaded (certain packages like numpy are fragile regarding their interdependency with other packages).
* Can use separate indices for plain python packages and those with binary contents.
* Can log build results to a JUnit compatible XML file, thus that it can be parsed by Jenkins.


License
=======

`New BSD`_


.. _devpi: http://doc.devpi.net/latest/
.. _New BSD: https://github.com/blue-yonder/devpi-builder/blob/master/COPYING

Owner

  • Name: Blue Yonder GmbH
  • Login: blue-yonder
  • Kind: organization
  • Location: Karlsruhe, Germany

GitHub Events

Total
  • Delete event: 2
  • Issue comment event: 3
  • Push event: 5
  • Pull request review event: 3
  • Pull request event: 8
  • Fork event: 1
  • Create event: 2
Last Year
  • Delete event: 2
  • Issue comment event: 3
  • Push event: 5
  • Pull request review event: 3
  • Pull request event: 8
  • Fork event: 1
  • Create event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 382
  • Total Committers: 22
  • Avg Commits per committer: 17.364
  • Development Distribution Score (DDS): 0.513
Past Year
  • Commits: 16
  • Committers: 3
  • Avg Commits per committer: 5.333
  • Development Distribution Score (DDS): 0.563
Top Committers
Name Email Commits
Matthias Bach m****h@b****m 186
requires.io s****t@r****o 76
Stephan Erb g****b@s****u 51
dependabot[bot] 4****] 23
Matthias Bach m****x@m****g 8
sax s****o@g****m 7
Jan B****k 5
David Szotten d****n@g****m 5
snyk-bot s****t@s****o 3
pyup-bot g****t@p****o 3
pari p****l@b****m 2
Denis Otkidach d****h@g****m 2
Damian Wąsik d****8@g****m 2
Christian Stefanescu c****u@n****e 1
Frank Fischer f****r@j****m 1
Danny Hermes d****s@g****m 1
Gabriel Sailer g****r@b****m 1
Hans Lawrenz h****z@g****m 1
Holger Peters h****s@b****m 1
Matt Ghantous m****t@a****g 1
Mikhail Lukyanchenko ml@a****m 1
Travis Mehlinger t****r@g****m 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 8
  • Total pull requests: 122
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 15 days
  • Total issue authors: 8
  • Total pull request authors: 15
  • Average comments per issue: 3.5
  • Average comments per pull request: 1.47
  • Merged pull requests: 58
  • Bot issues: 0
  • Bot pull requests: 31
Past Year
  • Issues: 0
  • Pull requests: 10
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • davidszotten (1)
  • jmaroeder (1)
  • ghost (1)
  • matthias-bach-by (1)
  • pyup-bot (1)
  • cb109 (1)
  • aadis (1)
  • simon-weber (1)
Pull Request Authors
  • pyup-bot (55)
  • dependabot[bot] (42)
  • matthias-bach-by (12)
  • theMarix (9)
  • snyk-bot (5)
  • patrick-ringl-by (2)
  • gsailer (1)
  • StephanErb (1)
  • saxix (1)
  • jank (1)
  • tmehlinger (1)
  • damianwasik98 (1)
  • mghantous (1)
  • HolgerPeters (1)
  • ods (1)
Top Labels
Issue Labels
help wanted (3) bug (2) invalid (1) enhancement (1)
Pull Request Labels
dependencies (42) python (3) enhancement (1)

Dependencies

requirements.in pypi
  • devpi-plumber >=0.4.3
  • mock *
  • pytest *
  • pytest-cov *
  • pytest-mock *
  • setuptools_scm *
requirements.txt pypi
  • apipkg ==1.5
  • appdirs ==1.4.4
  • argon2-cffi ==20.1.0
  • attrs ==20.3.0
  • bleach ==4.1.0
  • build ==0.3.1.post1
  • certifi ==2020.12.5
  • cffi ==1.14.5
  • chardet ==4.0.0
  • check-manifest ==0.46
  • coverage ==5.5
  • devpi-client ==5.2.2
  • devpi-common ==3.6.0
  • devpi-plumber ==0.5.1
  • devpi-server ==5.5.1
  • distlib ==0.3.1
  • docutils ==0.16
  • entry-points-txt ==0.1.0
  • execnet ==1.8.0
  • filelock ==3.0.12
  • headerparser ==0.4.0
  • hupper ==1.10.2
  • idna ==2.10
  • iniconfig ==1.1.1
  • itsdangerous ==1.1.0
  • junit-xml ==1.9
  • lazy ==1.4
  • mock ==4.0.3
  • packaging ==20.9
  • passlib ==1.7.4
  • pastedeploy ==2.1.1
  • pep517 ==0.10.0
  • pkginfo ==1.7.0
  • plaster ==1.0
  • plaster-pastedeploy ==0.7
  • pluggy ==0.13.1
  • py ==1.10.0
  • pycparser ==2.20
  • pygments ==2.8.1
  • pyparsing ==2.4.7
  • pyramid ==1.10.8
  • pytest ==6.2.2
  • pytest-cov ==2.11.1
  • pytest-mock ==3.5.1
  • python-dateutil ==2.8.1
  • readme-renderer ==24.0
  • repoze-lru ==0.7
  • requests ==2.25.1
  • ruamel-yaml ==0.17.0
  • ruamel-yaml-clib ==0.2.2
  • setuptools-scm ==6.0.1
  • six ==1.15.0
  • strictyaml ==1.3.2
  • toml ==0.10.2
  • tox ==3.23.0
  • translationstring ==1.4
  • twitter-common-contextutil ==0.3.11
  • twitter-common-dirutil ==0.3.11
  • twitter-common-lang ==0.3.11
  • urllib3 ==1.26.5
  • venusian ==3.0.0
  • virtualenv ==20.4.3
  • waitress ==2.0.0
  • webencodings ==0.5.1
  • webob ==1.8.7
  • wheel ==0.36.2
  • wheel-filename ==1.3.0
  • wheel-inspect ==1.7.0
  • zope-deprecation ==4.4.0
  • zope-interface ==5.3.0
setup.py pypi
  • devpi-plumber >=0.2.14
  • junit-xml *
  • pip >=1.5.3
  • setuptools *
  • wheel *
  • wheel-filename *
  • wheel-inspect >=1.6.0
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
core-requirements.txt pypi
  • devpi-plumber >=0.2.14
  • junit-xml *
  • pip >=1.5.3
  • setuptools *
  • wheel *
  • wheel-filename *
  • wheel-inspect >=1.6.0
tests/fixture/non-ascii_package/setup.py pypi
tests/fixture/non-pure_package/setup.py pypi
tests/fixture/pure_package/setup.py pypi