
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Polyvers's lib to derive subproject versions from tags on Git monorepos.
.. https://img.shields.io/pypi/v/polyversion.svg :alt: Deployed in PyPi? :target: https://pypi.org/pypi/polyversion
.. https://img.shields.io/travis/JRCSTU/polyvers.svg :alt: TravisCI (linux) build ok? :target: https://travis-ci.org/JRCSTU/polyvers
.. https://ci.appveyor.com/api/projects/status/lyyjtmit5ti7tg1n?svg=true :alt: Apveyor (Windows) build? :scale: 100% :target: https://ci.appveyor.com/project/ankostis/polyvers
.. https://img.shields.io/coveralls/github/JRCSTU/polyvers.svg :alt: Test-case coverage report :scale: 100% :target: https://coveralls.io/github/JRCSTU/polyvers?branch=master&service=github
.. https://readthedocs.org/projects/polyvers/badge/?version=latest :target: https://polyvers.readthedocs.io/en/latest/?badge=latest :alt: Auto-generated documentation status
.. https://api.codacy.com/project/badge/Grade/11b2545fd0264f1cab4c862998833503 :target: https://www.codacy.com/app/ankostis/polyvers_jrc :alt: Code quality metric
.. _coord-start:
:version: 0.2.2a1
:updated: 2018-08-07T13:30:07.616687
:Documentation: http://polyvers.readthedocs.io/en/latest/usage-pvlib.html
:repository: https://github.com/JRCSTU/polyvers
:pypi-repo: https://pypi.org/project/polyversion/
:copyright: 2018 JRC.C4(STU), European Commission (JRC <https://ec.europa.eu/jrc/>
)
:license: MIT License <https://choosealicense.com/licenses/mit/>
The python 2.7+ library needed by (sub-)projects managed by polyvers cmd <https://github.com/JRCSTU/polyvers>
_ to derive their version-ids on runtime from Git.
Specifically, the configuration file .polyvers.yaml
is NOT read -
you have to repeat any non-default configurations as function/method keywords
when calling this API.
Here only a very rudimentary documentation is provided - consult polyvers
documents provided in the link above.
.. Note::
Only this library is (permissive) MIT-licensed, so it can be freely vendorized
by any program - the respective polyvers
command-line tool is
"copylefted" under EUPLv1.2.
.. _coord-end:
.. _usage:
There are 4 ways to use this library:
polyversion
(installation required);bin/pvlib.run
(no installation, but sources required; behaves identically
to polyversion
command).currentmodule: polyversion
The polyversion
library function as a setuptools "plugin", and
adds two new setup()
keywords for deriving subproject versions
from PKG-INFO or git tags (see func(polyversion.init_plugin_kw
)):
keyword: polyversion --> (bool | dict)
When a dict, its keys roughly mimic those in func(polyversion()
),
and can be used like this:
.. code-block:: python
from setuptools import setup
setup(
project='myname',
version='' # omit (or None) to abort if cannot auto-version
polyversion={ # dict or bool
'mono_project': True, # false by default
... # See `polyversion.init_plugin_kw()` for more keys.
},
setup_requires=[..., 'polyversion'],
...
)
keyword: polyversion_check_bdist_enabled --> bool
When it is true, the bdist-check is enabled, and any bdist_*
setup-commands
(e.g. bdist_wheel
) will abort if not run from engrave\d sources
(ie from an release tag).
To enable this check without editing the sources, add the following into
your $CWD/setup.cfg
file::
[global]
polyversion_check_bdist_enabled = true
...
An API sample of using also func(polytime()
) from within your
myproject.git/myproject/__init__.py
file:
.. code-block:: python
from polyversion import polyversion, polytime # no hack, dependency already installed
__version__ = polyversion() # project assumed equal to this module-name: 'myproject'
__updated__ = polytime()
...
.. Tip::
Depending on your repo's versioning scheme (eg you have a mono-project repo,
with version-tags simply like vX.Y.Z
), you must add in both invocations
of func(polyversion.polyversion()
) above the kw-arg mono_project=True
.
The typical command-line usage of this library (assuming you don't want to install
the full blown polyvers
command tool) is given below:
.. code-block:: console
user@host:~/ $ polyversion --help
Describe the version of a *polyvers* projects from git tags.
USAGE:
polyversion [PROJ-1] ...
polyversion [-v | -V ] # print my version information
user@host:~/ $ polyversion polyversion # fails, not in a git repo
b'fatal: not a git repository (or any of the parent directories): .git\n'
cmd: ['git', 'describe', '--match=cf-v*']
Traceback (most recent call last):
File "/pyenv/site-packages/pvlib/polyversion/__main__.py", line 18, in main
polyversion.run(*sys.argv[1:])
File "/pyenv/site-packages/pvlib/polyversion/__init__.py", line 340, in run
res = polyversion(args[0], repo_path=os.curdir)
File "/pyenv/site-packages/pvlib/polyversion/__init__.py", line 262, in polyversion
pvtag = _my_run(cmd, cwd=repo_path)
File "/pyenv/site-packages/pvlib/polyversion/__init__.py", line 106, in _my_run
raise sbp.CalledProcessError(proc.returncode, cmd)
subprocess.CalledProcessError: Command '['git', 'describe', '--match=cf-v*']' returned non-zero exit status 128.
user@host:~/ $ cd polyvers.git
user@host:~/polyvers.git (dev) $ polyversion polyvers polyversion
polyvers: 0.0.2a10
polyversion: 0.0.2a9
Various ways to use the standalone wheel from bash (these will still work without having installed anything):
.. code-block:: console
user@host:~/polyvers.git (master) $
user@host:~/polyvers.git (master) $ ./bin/pvlib.run polyversion
polyversion: 0.0.2a9
user@host:~/polyvers.git (master) $ python ./bin/pvlib.run --help
...
user@host:~/polyvers.git (master) $ python ./bin/pvlib.run -m polyversion -v
version: 0.0.2a9
user@host:~/polyvers.git (master) $ PYTHONPATH=./bin/pvlib.run python -m polyversion -V
version: 0.0.2a9
updated: Thu, 24 May 2018 02:47:37 +0300
.. Note:
You cannot define what is your versioning-scheme from console tools - it is
your repo's .polyvers.yaml` configuration file that defines whether you have a *mono-project* or a *monorepo* (version-tags like
proj-vX.Y.Z``).
For the rest, consult the polyvers project: https://polyvers.readthedocs.io
FAQs
Polyvers's lib to derive subproject versions from tags on Git monorepos.
We found that polyversion demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.