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
-
Optional: set up a virtualenv for your Python work. Choose one of
the following:-
(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 python3artmanTo use this virtual environment later:
.. code ::
workon artman
-
virtualenv_ in your current directory:.. code::
sudo pip install virtualenv
virtualenv env
source env/bin/activate
-
-
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
- Install
googleapis_ - Install
toolkit_ - Install Java
- 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