GitHunt
SH

shinfan/artman

Google API Artifact manager

Google API Artifact Manager

Google API Artifact manager (artman) is a set of modules used to automate the
creation of software artifacts related to APIS defined using protobuf_ IDL.

artman is an extensible framework that is responsible for creating all artifacts
related to an API including

  • distribution packages in all supported programming languages
  • generic documentation websites
  • language-specific documentation websites (javadoc, readthedocs, etc)

from the protobuf source IDL and additional configuration in YAML files.

.. _protobuf: https://github.com/google/protobuf

Installation

  1. Optional: set up a virtualenv for your Python work. Choose one of
    the following:

    1. (recommended) virtualenvwrapper_ so you don't have to keep
      track of where your virtualenv is on the filesystem:

      .. code::

      sudo pip install virtualenv virtualenvwrapper
      mkvirtualenv --python=which python3 artman

      To use this virtual environment later:

      .. code ::

      workon artman

    2. virtualenv_ in your current directory:

      .. code::

      sudo pip install virtualenv
      virtualenv env
      source env/bin/activate

  2. Install artman directly from pip:

    .. code::

    pip install googleapis-artman

You may need root privileges if you are not installing inside of a virtualenv.
This will make the artman command available on your system.

.. _virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/en/latest/
.. _virtualenv: https://pypi.python.org/pypi/virtualenv

Prerequisites

  1. Install googleapis_
  2. Install toolkit_
  3. Install Java
  4. Some languages may have additional dependencies; refer to the Dockerfile
    in this repository for canonical installation requirements.

.. _googleapis: https://github.com/googleapis/googleapis
.. _toolkit: https://github.com/googleapis/toolkit

Usage

Before you can use artman, you will need a configuration file. You can run
configure-artman to create a simple configuration file.

For building a GAPIC (the most common task), the usage looks like:

.. code::

artman --api pubsub --language python

Artman also takes a --publish argument to decide where to stage the
code. Using --publish github will create a pull request on GitHub
automatically.

Python Versions

artman is currently tested with Python 2.7, Python 3.4, Python 3.5,
and Python 3.6.

.. note::

The authors of this README are humans, and this is an exceptionally
easy spot to end up out of date.

Our ``nox.py`` and ``.circleci/config.yml`` files are the real source
of truth for what versions of Python we test against.

Contributing

Contributions to this library are always welcome and highly encouraged.

See the CONTRIBUTING_ documentation for more information on how to get
started.

.. _CONTRIBUTING: https://github.com/googleapis/artman/blob/master/CONTRIBUTING.rst

Versioning

This library follows Semantic Versioning_

It is currently in major version zero (0.y.z), which means that anything
may change at any time and the public API should not be considered
stable.

.. _Semantic Versioning: http://semver.org/

Details

For detailed documentation of the modules in artman, please watch
DOCUMENTATION_.

.. _DOCUMENTATION: https://googleapis-artman.readthedocs.org/

License

BSD - See LICENSE_ for more information.

.. _LICENSE: https://github.com/googleapis/artman/blob/master/LICENSE

Languages

Python88.6%Protocol Buffer11.4%
Apache License 2.0
Created April 14, 2016
Updated April 14, 2016
shinfan/artman | GitHunt