.. This README is meant for consumption by humans and PyPI.
PyPI can render rst files so please do not use Sphinx features.
If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide_addons.html
This text does not appear on PyPI or github.
It is a comment.
=============================================================================
Checks pinned versions with overrides in a cascaded buildout
=============================================================================
.. image:: https://travis-ci.org/plone/plone.versioncheck.svg?branch=master
:target: https://travis-ci.org/plone/plone.versioncheck
.. image:: https://coveralls.io/repos/github/plone/plone.versioncheck/badge.svg?branch=master
:target: https://coveralls.io/github/plone/plone.versioncheck?branch=master
**plone.versioncheck**
.. contents::
Features
========
1) **Checks buildouts ``[versions]`` sections** while stepping through the cascaded ``extends``
- command line script collects the inherited version pins, remembers where a version pin comes from.
- It displays the result in order to enable a human to check that pins and overrides are OK.
- Output is colored; this helps to identify packages which have newer versions available.
- Machine readable output as JSON on demand.
2) **Checks Python Package Index (PyPI)** for newer versions.
- Detects if a newer major, minor or bugfix (or a prerelease) is available.
3) **Buildout extension** records the **current versions state** and **requirements**
- versions state and requirements are written to a file,
- versions from the file will be consumed by the command line tool
- orphaned version pins are detected,
- it shows which package pulled in another package as dependency.
It works best with `semantically <http://semver.org/>`_ and only with `syntactically <https://setuptools.readthedocs.io/en/latest/setuptools.html#specifying-your-project-s-version>`_ correct version numbers!
Usage
=====
Install with your buildout
--------------------------
Add a section to install it as a script and add it as an extension to your builodut::
[buildout]
...
extensions =
plone.versioncheck
parts =
...
ploneversioncheck
...
...
[ploneversioncheck]
recipe = zc.recipe.egg
eggs = plone.versioncheck
...
Run buildout as usual.
Now a file ``.plone.versioncheck.tracked.json`` was generated in the buildout-directory.
This file will be used by ``bin/versioncheck`` to figure out which packages were finally used.
Run buildout again to regenerate this file.
commandline
-----------
::
usage: versioncheck [-h] [-p] [-n] [-N] [-r] [-d] [-i] [-e EXCLUDE_CFG] [-m]
[--no-cache] [-b] [-o [OUTPUT]] [--no-colors]
[--debug-limit DEBUG_LIMIT]
[buildout]
Fetch information about pinned versions and its overrides in simple and complex/cascaded buildouts.
positional arguments:
buildout path to buildout.cfg or other *.cfg file
optional arguments:
-h, --help show this help message and exit
-p, --pypi check PyPI for newer versions
-n, --newer display only packages with newer version than active
-N, --newer-orphaned display orphaned packages only when newer versions
available
-r, --required-by show information about requirements (only if tracking
file is available)
-d, --show-release-dates
show information about release dates (only for package
lookup from PyPI)
-i, --ignore-tracking
ignore tracking file (if present)
-e EXCLUDE_CFG, --exclude-cfg EXCLUDE_CFG
exclude in listing when cfg-filename pattern matches
(fnmatch) the given expression
-m, --machine show as machine readable output (json)
--no-cache do not use a cache for PyPI
-b, --browser show as html for webbrowser
-o [OUTPUT], --output [OUTPUT]
safe output to output-file
--no-colors do not show colors
--debug-limit DEBUG_LIMIT
Limit the number of PyPI versions fetched for
debugging
States and color codes:
[A]ctive (white)
[D]evelop (green)
[O]rphaned (magenta)
[I]nherited (older or same versions are gray, newer are yellow)
[U]pdate of final release on PyPI available (cyan)
[P]rerelease update on PyPI available (blue)
[X] unpinned (red)
[r] Requirement (gray)
[a] Annotation (gray)
Color of package name helps to indicate overall state of a package.
Files created
-------------
If the script was used with the ``--pypi`` option, a directory ``.plone.versioncheck.cache`` will be created.
It contains the cache of the requests to PyPI or external buildout configuration files.
To clear the cache, remove the directory.
The caching library uses the expiration headers of the response from PyPI, so even with cache it starts fetching new records.
If the extension was used, a file ``.plone.versioncheck.tracked.json`` will be created.
It contains the information from last buildout run.
Output explained
================
Legend of states and colors
---------------------------
[D]evelopment Egg
A development egg is usually active.
Description shows location.
Color: Green
[A]ctive Pin
Pinned version. Package is used and recent, all seems fine.
Color: White
[I]nherited Pin
Unused pin. If older than active, the pin color is gray; if newer, it is yellow.
[O]rphaned
If tracked, it shows whether the package in the given configuration was used at all.
Be careful with this information!
I.e. in a development buildout file, other packages are used than in a live or continuous integration buildout!
Color: Magenta
[X] Unpinnend
Tracked, but no pin in ``[versions]`` sections were found.
Color: Red
[U]pdate final release
At PyPI there is a newer final version available (major, minor or bugfix).
Descriptions shows on which level.
Color: Cyan
[P]rerelease update
At PyPI there is a newer prerelease version available (major, minor or bugfix).
Descriptions shows on which level.
Only if there is no final release update available.
Color: Blue
[r] Required by
If tracked and option ``--required-by`` was given, show packages this package is required by.
Valid for current active/used version.
Keep in mind this is based on the declared requirements, missing or implicit requirements are not covered.
[a] Annotation
It is possible to annotate the reason why a version was chosen.
The information is parsed out of a section ``[versionannotations]``.
In this section key is the name of the package and value the text annotations to be displayed.
The value can span more than one line using indent (as usal).
Order of versions
-----------------
Order of versions is the buildout resolution order (how they are resolved by buildout in the extends chain/tree).
After that, the PyPI releases are shown (major, minor, pre, then the prereleases)
Example, given in each a version of ``my.pkg`` was declared:
1. ``buildout.cfg`` with ``my.pkg=3.0.3``
1. ``buildout.cfg`` extends ``foo.cfg`` with ``my.pkg=3.0.1``
2. ``buildout.cfg`` extends ``bar.cfg`` with ``my.pkg=2.0``
2. ``foo cfg`` extends ``baz.cfg`` with ``my.pkg=3.1``
2. found a newer versions at pypi
1. major ``my.pkg=4.0``
2. minor ``my.pkg=3.2``
3. major ``prerelease my.pkg=5.1b2``
Output looks like so::
my.pkg
3.0.3............... A buildout.cfg
2.0 ................ I bar.cfg
3.0.1 .............. I foo.cfg
3.1 ................ I baz.cfg
4.0 ................ U Major
3.2 ................ U Minor
5.1b2............... P Majorpre
Example
-------
Here w/o colors, run on ``buildout.coredev``::
$ ./bin/versioncheck -p buildout.cfg
accesscontrol
3.0.12 .... A versions.cfg
2.13.13 ... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg
acquisition
4.2.2 ..... A versions.cfg
2.13.9 .... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg
alabaster
0.7.7 ..... X unpinned
archetypes.multilingual
3.0.1 ..... A versions.cfg
archetypes.referencebrowserwidget
2.5.6 ..... A versions.cfg
archetypes.schemaextender
2.1.5 ..... A versions.cfg
argcomplete
1.0.0 ..... A tests.cfg
argh
0.26.1 .... A tests.cfg
argparse
(unset) ... A versions.cfg
1.1 ....... I http://dist.plone.org/versions/zopetoolkit-1-0-8-ztk-versions.cfg
Can not check legacy version number. U Error
autopep8
1.2.1 ..... A tests.cfg
[... skipped a bunch ...]
coverage
3.7.1 ..... A tests.cfg
3.5.2 ..... I http://dist.plone.org/versions/zopetoolkit-1-0-8-ztk-versions.cfg
4.0.3 ..... U Major
4.1b1 ..... P Majorpre
cssmin
0.2.0 ..... A versions.cfg
cssselect
0.9.1 ..... A versions.cfg
datetime
3.0.3 ..... A versions.cfg
2.12.8 .... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg
4.0.1 ..... U Major
decorator
4.0.6 ..... A versions.cfg
[... skipped a bunch ...]
plone.app.textfield
1.2.6 ..... A versions.cfg
plone.app.theming
1.2.17.dev0 D /home/workspacejensens/coredev5/src/plone.app.theming/src
1.2.16 .... I versions.cfg
plone.app.tiles
2.1.0 ..... A versions.cfg
2.2.0 ..... U Minor
[... skipped a bunch ...]
Source Code and Contributions
=============================
.. image:: https://travis-ci.org/plone/plone.versioncheck.svg?branch=master
:target: https://travis-ci.org/plone/plone.versioncheck
If you want to help with the development (improvement, update, bug-fixing, ...) of ``plone.versioncheck`` this is a great idea!
Please follow the `contribution guidelines <http://docs.plone.org/develop/coredev/docs/guidelines.html>`_.
- `Source code at Github <https://github.com/plone/plone.versioncheck>`_
- `Issue tracker at Github <https://github.com/plone/plone.versioncheck>`_
Maintainer of ``plone.versioncheck`` is Jens Klein and the Plone contributors.
We appreciate any contribution and if a release is needed to be done on PyPI, please just contact one of us (best by open an issue).
Development
===========
There must be ``python`` with ``virtualenv`` and ``pip`` available in system path pointing to Python >=2.7.x
Clone the project. Then::
$ bootstrap.sh
For non-unix systems please read the contents of bootstrap.py and execute the steps manually adapted to your OS.
License
=======
The project is licensed under the GPLv2.
Changelog
=========
1.8.2 (2024-10-23)
------------------
Bug fixes:
- Fix for Python 3.12: configparser removed "readfp()"
[petschki]
1.8.1 (2023-05-08)
------------------
Bug fixes:
- Catch empty version and ignore invalid versions in more places.
Needed when a package is explicitly unpinned, for example ``Zope =``.
[maurits]
1.8.0 (2023-04-15)
------------------
- Ignore invalid versions.
Needed for ``setuptools`` 66 and higher when checking a package that has invalid versions on PyPI.
Fixes `issue 52 <https://github.com/plone/plone.versioncheck/issues/52>`_.
[maurits]
1.7.0 (2019-03-08)
------------------
- Feature: Offers exclude pattern matching for cfg-files.
[jensens]
- Use pure black as code style.
[jensens]
- Test on Python 3.7
[jensens]
- Fix PyPI url and add output of URL in case of a problem.
[jensens]
1.6.10 (2018-08-20)
-------------------
- Fixes another bug in ``find_relative``.
[jensens]
1.6.9 (2018-08-20)
------------------
- Fixes bug in ``find_relative`` introducued in last release.
[jensens]
1.6.8 (2018-08-14)
------------------
Bug fixes:
- Better handling of relative paths as entry, like ``project/foo/dev.cfg``.
[jensens]
- If a file does not extend any other file,
the return statement was returning only one parameter,
while callers expected 2.
[gforcada]
1.6.7 (2018-03-26)
------------------
Bug fixes:
- Fix: Do not trust on setuptools internals.
Works now with newest setuptools.
[jensens]
1.6.6 (2018-01-26)
------------------
- Fixed: Inherited extends with same name showed up as same.
Now show relative to basedir if possible, else full.
[jensens]
- Fixed: Relative extends in urls were broken.
[jensens]
1.6.5 (2017-07-03)
------------------
Bug fixes:
- Relative Paths should work now, tested with subdirectories.
[loechel]
1.6.4 (2017-05-08)
------------------
- Fix: Default versions section name ``versions`` was not respected.
[jensens]
1.6.3 (2017-05-05)
------------------
- Fixes #17: Requirements were missing.
[jensens]
- Optimization: Reduce load on PyPI when fetching release dates.
[jensens]
- Feature: Change package and version fields in html output to links so that you could open pypi page for each package.
[loechel]
1.6.2 (2017-04-12)
------------------
- Fix: Regressions with version-annotations and stdout messages from buildout parser.
[loechel]
- Add more Tests
[loechel]
1.6.1 (2017-04-07)
------------------
- Fix: #36 New buildout parser does not work with buildout.coredev
[loechel]
1.6.0 (2017-04-07)
------------------
- Fix: ``IndexError: string index out of range`` error with empty states in the formatter.
[thet]
- Development: Added basic tests to package.
[loechel]
- Fix: Changed parser.py to use functions from zc.buildout to get versions and versionannotations section names.
[loechel]
- Feature: Add function to extract date information from PyPI to analyze package age.
[loechel]
- Feature: Add new CLI options for an output file and show release dates.
[loechel]
1.5.1 (2017-01-23)
------------------
- Fix Version Compare.
[loechel]
1.5.0 (2016-10-15)
------------------
- Development: Use code analysis for QA (and fix issues with pep8 et al.)
[jensens]
- Fix: Manifest (jinja file was missing).
[jensens]
- Feature: Implement #25: Annotate versions used.
[jensens]
1.4 (2016-09-30)
----------------
- Feature:
New option '-N': feature to hide orphaned without updates.
This reduces the noise in a environment where orphaned are used by intend.
[jensens]
1.3 (2016-05-19)
----------------
- Development: Add .editorconfig File to maintain code convetions following Plone API
[loechel]
- Feature: Add Support for Python 3
[loechel]
- Fix: Various documentation typos.
[jean]
1.2.1 (2016-01-26)
------------------
- Feature: Cache buildout cfg files fetched over the network.
[jensens]
- Feature: It caches now responses from PyPI.
[jensens]
1.1.2 (2016-01-21)
------------------
- Fix: Resolution order buildout extends chain was wrong. Also documented the
resolution order and included in own builodut a small example.
[jensens]
- Fix: Formatter printed a newline to much after ``required by``.
[jensens]
- Fix: Do not complain about missing track file. If it is not there,
the buildout is simply not using the buildout extension. [maurits]
- Fix #13: Added missing ``zc.buildout`` requirement. [maurits]
1.1.1 (2016-01-20)
------------------
- Fix: Orphan detection failed when no tracking file was present.
[jensens]
- Fix: Exception raised when no tracking file was present.
[jensens]
- Fix: Color of requirements was not set explicitly.
[jensens]
1.1 (2016-01-19)
----------------
- Enhancement: show requirements
[jensens]
- Enhancement: machine readable output (json)
[jensens]
- Enhancement: write pure processing-info output to sys.stderr
[jensens]
- Fix #5 - Require setuptools>=12
[jensens]
- Fix #7 - Available update from 'lazy' 1.0 to 1.2 is not found.
[jensens]
- Enhancement: Rethink colors and document them, fixes #2 and #3.
[jensens]
- Enhancement: display output and show tracked info
[jensens]
- Feature: Add buildout extension to optional track required by and if its use at all
[jensens]
1.0 (2016-01-13)
----------------
- Initial work.
[jensens]
Raw data
{
"_id": null,
"home_page": "https://github.com/plone/plone.versioncheck",
"name": "plone.versioncheck",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "plone buildout version",
"author": "Jens W. Klein",
"author_email": "jens@bluedynamics.com",
"download_url": "https://files.pythonhosted.org/packages/dd/3e/506fb89fb0538b79d2a6663dba28b0bbc6b36f1003993f283be3b3686c1f/plone_versioncheck-1.8.2.tar.gz",
"platform": null,
"description": ".. This README is meant for consumption by humans and PyPI.\n PyPI can render rst files so please do not use Sphinx features.\n If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide_addons.html\n This text does not appear on PyPI or github.\n It is a comment.\n\n\n=============================================================================\nChecks pinned versions with overrides in a cascaded buildout\n=============================================================================\n\n.. image:: https://travis-ci.org/plone/plone.versioncheck.svg?branch=master\n :target: https://travis-ci.org/plone/plone.versioncheck\n\n.. image:: https://coveralls.io/repos/github/plone/plone.versioncheck/badge.svg?branch=master\n :target: https://coveralls.io/github/plone/plone.versioncheck?branch=master\n\n\n**plone.versioncheck**\n\n.. contents::\n\nFeatures\n========\n\n1) **Checks buildouts ``[versions]`` sections** while stepping through the cascaded ``extends``\n\n - command line script collects the inherited version pins, remembers where a version pin comes from.\n - It displays the result in order to enable a human to check that pins and overrides are OK.\n - Output is colored; this helps to identify packages which have newer versions available.\n - Machine readable output as JSON on demand.\n\n2) **Checks Python Package Index (PyPI)** for newer versions.\n\n - Detects if a newer major, minor or bugfix (or a prerelease) is available.\n\n3) **Buildout extension** records the **current versions state** and **requirements**\n\n - versions state and requirements are written to a file,\n - versions from the file will be consumed by the command line tool\n - orphaned version pins are detected,\n - it shows which package pulled in another package as dependency.\n\nIt works best with `semantically <http://semver.org/>`_ and only with `syntactically <https://setuptools.readthedocs.io/en/latest/setuptools.html#specifying-your-project-s-version>`_ correct version numbers!\n\nUsage\n=====\n\nInstall with your buildout\n--------------------------\n\nAdd a section to install it as a script and add it as an extension to your builodut::\n\n [buildout]\n ...\n extensions =\n plone.versioncheck\n\n parts =\n ...\n ploneversioncheck\n ...\n\n ...\n\n [ploneversioncheck]\n recipe = zc.recipe.egg\n eggs = plone.versioncheck\n\n ...\n\n\nRun buildout as usual.\n\nNow a file ``.plone.versioncheck.tracked.json`` was generated in the buildout-directory.\n\nThis file will be used by ``bin/versioncheck`` to figure out which packages were finally used.\n\nRun buildout again to regenerate this file.\n\n\ncommandline\n-----------\n\n::\n\n usage: versioncheck [-h] [-p] [-n] [-N] [-r] [-d] [-i] [-e EXCLUDE_CFG] [-m]\n [--no-cache] [-b] [-o [OUTPUT]] [--no-colors]\n [--debug-limit DEBUG_LIMIT]\n [buildout]\n\n Fetch information about pinned versions and its overrides in simple and complex/cascaded buildouts.\n\n positional arguments:\n buildout path to buildout.cfg or other *.cfg file\n\n optional arguments:\n -h, --help show this help message and exit\n -p, --pypi check PyPI for newer versions\n -n, --newer display only packages with newer version than active\n -N, --newer-orphaned display orphaned packages only when newer versions\n available\n -r, --required-by show information about requirements (only if tracking\n file is available)\n -d, --show-release-dates\n show information about release dates (only for package\n lookup from PyPI)\n -i, --ignore-tracking\n ignore tracking file (if present)\n -e EXCLUDE_CFG, --exclude-cfg EXCLUDE_CFG\n exclude in listing when cfg-filename pattern matches\n (fnmatch) the given expression\n -m, --machine show as machine readable output (json)\n --no-cache do not use a cache for PyPI\n -b, --browser show as html for webbrowser\n -o [OUTPUT], --output [OUTPUT]\n safe output to output-file\n --no-colors do not show colors\n --debug-limit DEBUG_LIMIT\n Limit the number of PyPI versions fetched for\n debugging\n\n States and color codes:\n [A]ctive (white)\n [D]evelop (green)\n [O]rphaned (magenta)\n [I]nherited (older or same versions are gray, newer are yellow)\n [U]pdate of final release on PyPI available (cyan)\n [P]rerelease update on PyPI available (blue)\n [X] unpinned (red)\n [r] Requirement (gray)\n [a] Annotation (gray)\n\n Color of package name helps to indicate overall state of a package.\n\n\nFiles created\n-------------\n\nIf the script was used with the ``--pypi`` option, a directory ``.plone.versioncheck.cache`` will be created.\nIt contains the cache of the requests to PyPI or external buildout configuration files.\nTo clear the cache, remove the directory.\nThe caching library uses the expiration headers of the response from PyPI, so even with cache it starts fetching new records.\n\nIf the extension was used, a file ``.plone.versioncheck.tracked.json`` will be created.\nIt contains the information from last buildout run.\n\n\nOutput explained\n================\n\nLegend of states and colors\n---------------------------\n\n[D]evelopment Egg\n A development egg is usually active.\n Description shows location.\n Color: Green\n\n[A]ctive Pin\n Pinned version. Package is used and recent, all seems fine.\n Color: White\n\n[I]nherited Pin\n Unused pin. If older than active, the pin color is gray; if newer, it is yellow.\n\n[O]rphaned\n If tracked, it shows whether the package in the given configuration was used at all.\n Be careful with this information!\n I.e. in a development buildout file, other packages are used than in a live or continuous integration buildout!\n Color: Magenta\n\n[X] Unpinnend\n Tracked, but no pin in ``[versions]`` sections were found.\n Color: Red\n\n[U]pdate final release\n At PyPI there is a newer final version available (major, minor or bugfix).\n Descriptions shows on which level.\n Color: Cyan\n\n[P]rerelease update\n At PyPI there is a newer prerelease version available (major, minor or bugfix).\n Descriptions shows on which level.\n Only if there is no final release update available.\n Color: Blue\n\n[r] Required by\n If tracked and option ``--required-by`` was given, show packages this package is required by.\n Valid for current active/used version.\n Keep in mind this is based on the declared requirements, missing or implicit requirements are not covered.\n\n[a] Annotation\n It is possible to annotate the reason why a version was chosen.\n The information is parsed out of a section ``[versionannotations]``.\n In this section key is the name of the package and value the text annotations to be displayed.\n The value can span more than one line using indent (as usal).\n\n\nOrder of versions\n-----------------\n\nOrder of versions is the buildout resolution order (how they are resolved by buildout in the extends chain/tree).\nAfter that, the PyPI releases are shown (major, minor, pre, then the prereleases)\n\nExample, given in each a version of ``my.pkg`` was declared:\n\n1. ``buildout.cfg`` with ``my.pkg=3.0.3``\n\n 1. ``buildout.cfg`` extends ``foo.cfg`` with ``my.pkg=3.0.1``\n\n 2. ``buildout.cfg`` extends ``bar.cfg`` with ``my.pkg=2.0``\n\n 2. ``foo cfg`` extends ``baz.cfg`` with ``my.pkg=3.1``\n\n2. found a newer versions at pypi\n\n 1. major ``my.pkg=4.0``\n\n 2. minor ``my.pkg=3.2``\n\n 3. major ``prerelease my.pkg=5.1b2``\n\nOutput looks like so::\n\n my.pkg\n 3.0.3............... A buildout.cfg\n 2.0 ................ I bar.cfg\n 3.0.1 .............. I foo.cfg\n 3.1 ................ I baz.cfg\n 4.0 ................ U Major\n 3.2 ................ U Minor\n 5.1b2............... P Majorpre\n\n\n\nExample\n-------\n\nHere w/o colors, run on ``buildout.coredev``::\n\n $ ./bin/versioncheck -p buildout.cfg\n\n accesscontrol\n 3.0.12 .... A versions.cfg\n 2.13.13 ... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg\n acquisition\n 4.2.2 ..... A versions.cfg\n 2.13.9 .... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg\n alabaster\n 0.7.7 ..... X unpinned\n archetypes.multilingual\n 3.0.1 ..... A versions.cfg\n archetypes.referencebrowserwidget\n 2.5.6 ..... A versions.cfg\n archetypes.schemaextender\n 2.1.5 ..... A versions.cfg\n argcomplete\n 1.0.0 ..... A tests.cfg\n argh\n 0.26.1 .... A tests.cfg\n argparse\n (unset) ... A versions.cfg\n 1.1 ....... I http://dist.plone.org/versions/zopetoolkit-1-0-8-ztk-versions.cfg\n Can not check legacy version number. U Error\n autopep8\n 1.2.1 ..... A tests.cfg\n\n [... skipped a bunch ...]\n\n coverage\n 3.7.1 ..... A tests.cfg\n 3.5.2 ..... I http://dist.plone.org/versions/zopetoolkit-1-0-8-ztk-versions.cfg\n 4.0.3 ..... U Major\n 4.1b1 ..... P Majorpre\n cssmin\n 0.2.0 ..... A versions.cfg\n cssselect\n 0.9.1 ..... A versions.cfg\n datetime\n 3.0.3 ..... A versions.cfg\n 2.12.8 .... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg\n 4.0.1 ..... U Major\n decorator\n 4.0.6 ..... A versions.cfg\n\n [... skipped a bunch ...]\n\n plone.app.textfield\n 1.2.6 ..... A versions.cfg\n plone.app.theming\n 1.2.17.dev0 D /home/workspacejensens/coredev5/src/plone.app.theming/src\n 1.2.16 .... I versions.cfg\n plone.app.tiles\n 2.1.0 ..... A versions.cfg\n 2.2.0 ..... U Minor\n\n [... skipped a bunch ...]\n\nSource Code and Contributions\n=============================\n\n.. image:: https://travis-ci.org/plone/plone.versioncheck.svg?branch=master\n :target: https://travis-ci.org/plone/plone.versioncheck\n\nIf you want to help with the development (improvement, update, bug-fixing, ...) of ``plone.versioncheck`` this is a great idea!\n\nPlease follow the `contribution guidelines <http://docs.plone.org/develop/coredev/docs/guidelines.html>`_.\n\n- `Source code at Github <https://github.com/plone/plone.versioncheck>`_\n- `Issue tracker at Github <https://github.com/plone/plone.versioncheck>`_\n\nMaintainer of ``plone.versioncheck`` is Jens Klein and the Plone contributors.\nWe appreciate any contribution and if a release is needed to be done on PyPI, please just contact one of us (best by open an issue).\n\nDevelopment\n===========\n\nThere must be ``python`` with ``virtualenv`` and ``pip`` available in system path pointing to Python >=2.7.x\nClone the project. Then::\n\n $ bootstrap.sh\n\nFor non-unix systems please read the contents of bootstrap.py and execute the steps manually adapted to your OS.\n\nLicense\n=======\n\nThe project is licensed under the GPLv2.\n\n\nChangelog\n=========\n\n1.8.2 (2024-10-23)\n------------------\n\nBug fixes:\n\n- Fix for Python 3.12: configparser removed \"readfp()\"\n [petschki]\n\n\n1.8.1 (2023-05-08)\n------------------\n\nBug fixes:\n\n- Catch empty version and ignore invalid versions in more places.\n Needed when a package is explicitly unpinned, for example ``Zope =``.\n [maurits]\n\n\n1.8.0 (2023-04-15)\n------------------\n\n- Ignore invalid versions.\n Needed for ``setuptools`` 66 and higher when checking a package that has invalid versions on PyPI.\n Fixes `issue 52 <https://github.com/plone/plone.versioncheck/issues/52>`_.\n [maurits]\n\n\n1.7.0 (2019-03-08)\n------------------\n\n- Feature: Offers exclude pattern matching for cfg-files.\n [jensens]\n\n- Use pure black as code style.\n [jensens]\n\n- Test on Python 3.7\n [jensens]\n\n- Fix PyPI url and add output of URL in case of a problem.\n [jensens]\n\n\n1.6.10 (2018-08-20)\n-------------------\n\n- Fixes another bug in ``find_relative``.\n [jensens]\n\n\n1.6.9 (2018-08-20)\n------------------\n\n- Fixes bug in ``find_relative`` introducued in last release.\n [jensens]\n\n\n1.6.8 (2018-08-14)\n------------------\n\nBug fixes:\n\n- Better handling of relative paths as entry, like ``project/foo/dev.cfg``.\n [jensens]\n\n- If a file does not extend any other file,\n the return statement was returning only one parameter,\n while callers expected 2.\n [gforcada]\n\n\n1.6.7 (2018-03-26)\n------------------\n\nBug fixes:\n\n- Fix: Do not trust on setuptools internals.\n Works now with newest setuptools.\n [jensens]\n\n1.6.6 (2018-01-26)\n------------------\n\n- Fixed: Inherited extends with same name showed up as same.\n Now show relative to basedir if possible, else full.\n [jensens]\n\n- Fixed: Relative extends in urls were broken.\n [jensens]\n\n\n1.6.5 (2017-07-03)\n------------------\n\nBug fixes:\n\n- Relative Paths should work now, tested with subdirectories.\n [loechel]\n\n\n1.6.4 (2017-05-08)\n------------------\n\n- Fix: Default versions section name ``versions`` was not respected.\n [jensens]\n\n\n1.6.3 (2017-05-05)\n------------------\n\n- Fixes #17: Requirements were missing.\n [jensens]\n\n- Optimization: Reduce load on PyPI when fetching release dates.\n [jensens]\n\n- Feature: Change package and version fields in html output to links so that you could open pypi page for each package.\n [loechel]\n\n\n1.6.2 (2017-04-12)\n------------------\n\n- Fix: Regressions with version-annotations and stdout messages from buildout parser.\n [loechel]\n\n- Add more Tests\n [loechel]\n\n1.6.1 (2017-04-07)\n------------------\n\n- Fix: #36 New buildout parser does not work with buildout.coredev\n [loechel]\n\n1.6.0 (2017-04-07)\n------------------\n\n- Fix: ``IndexError: string index out of range`` error with empty states in the formatter.\n [thet]\n\n- Development: Added basic tests to package.\n [loechel]\n\n- Fix: Changed parser.py to use functions from zc.buildout to get versions and versionannotations section names.\n [loechel]\n\n- Feature: Add function to extract date information from PyPI to analyze package age.\n [loechel]\n\n- Feature: Add new CLI options for an output file and show release dates.\n [loechel]\n\n1.5.1 (2017-01-23)\n------------------\n\n- Fix Version Compare.\n [loechel]\n\n1.5.0 (2016-10-15)\n------------------\n\n- Development: Use code analysis for QA (and fix issues with pep8 et al.)\n [jensens]\n\n- Fix: Manifest (jinja file was missing).\n [jensens]\n\n- Feature: Implement #25: Annotate versions used.\n [jensens]\n\n\n1.4 (2016-09-30)\n----------------\n\n- Feature:\n New option '-N': feature to hide orphaned without updates.\n This reduces the noise in a environment where orphaned are used by intend.\n [jensens]\n\n\n1.3 (2016-05-19)\n----------------\n\n- Development: Add .editorconfig File to maintain code convetions following Plone API\n [loechel]\n\n- Feature: Add Support for Python 3\n [loechel]\n\n- Fix: Various documentation typos.\n [jean]\n\n1.2.1 (2016-01-26)\n------------------\n\n- Feature: Cache buildout cfg files fetched over the network.\n [jensens]\n\n- Feature: It caches now responses from PyPI.\n [jensens]\n\n\n1.1.2 (2016-01-21)\n------------------\n\n- Fix: Resolution order buildout extends chain was wrong. Also documented the\n resolution order and included in own builodut a small example.\n [jensens]\n\n- Fix: Formatter printed a newline to much after ``required by``.\n [jensens]\n\n- Fix: Do not complain about missing track file. If it is not there,\n the buildout is simply not using the buildout extension. [maurits]\n\n- Fix #13: Added missing ``zc.buildout`` requirement. [maurits]\n\n\n1.1.1 (2016-01-20)\n------------------\n\n- Fix: Orphan detection failed when no tracking file was present.\n [jensens]\n\n- Fix: Exception raised when no tracking file was present.\n [jensens]\n\n- Fix: Color of requirements was not set explicitly.\n [jensens]\n\n\n1.1 (2016-01-19)\n----------------\n\n- Enhancement: show requirements\n [jensens]\n\n- Enhancement: machine readable output (json)\n [jensens]\n\n- Enhancement: write pure processing-info output to sys.stderr\n [jensens]\n\n- Fix #5 - Require setuptools>=12\n [jensens]\n\n- Fix #7 - Available update from 'lazy' 1.0 to 1.2 is not found.\n [jensens]\n\n- Enhancement: Rethink colors and document them, fixes #2 and #3.\n [jensens]\n\n- Enhancement: display output and show tracked info\n [jensens]\n\n- Feature: Add buildout extension to optional track required by and if its use at all\n [jensens]\n\n\n1.0 (2016-01-13)\n----------------\n\n- Initial work.\n [jensens]\n",
"bugtrack_url": null,
"license": "GPL version 2",
"summary": "Checks pinned versions with overrides in a cascaded buildout",
"version": "1.8.2",
"project_urls": {
"Homepage": "https://github.com/plone/plone.versioncheck"
},
"split_keywords": [
"plone",
"buildout",
"version"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e08c61522233a647a0f30d6b64e72380ba8fcf2a82f93f304928c39cbc246b10",
"md5": "63816b7fe6074e0b602bf3c079f59dcd",
"sha256": "be7fa1a8feff6d27109b1eb43f622addc8ed762d9eeac9c6f95fddb3b548fd97"
},
"downloads": -1,
"filename": "plone.versioncheck-1.8.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "63816b7fe6074e0b602bf3c079f59dcd",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 21945,
"upload_time": "2024-10-23T19:29:18",
"upload_time_iso_8601": "2024-10-23T19:29:18.446157Z",
"url": "https://files.pythonhosted.org/packages/e0/8c/61522233a647a0f30d6b64e72380ba8fcf2a82f93f304928c39cbc246b10/plone.versioncheck-1.8.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dd3e506fb89fb0538b79d2a6663dba28b0bbc6b36f1003993f283be3b3686c1f",
"md5": "490fefb356ee20447ac620af3920f69b",
"sha256": "9b15769ee291f4db70e4a38753907385500897401fe141d8edd1d7088e98b154"
},
"downloads": -1,
"filename": "plone_versioncheck-1.8.2.tar.gz",
"has_sig": false,
"md5_digest": "490fefb356ee20447ac620af3920f69b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30838,
"upload_time": "2024-10-23T19:29:19",
"upload_time_iso_8601": "2024-10-23T19:29:19.738105Z",
"url": "https://files.pythonhosted.org/packages/dd/3e/506fb89fb0538b79d2a6663dba28b0bbc6b36f1003993f283be3b3686c1f/plone_versioncheck-1.8.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-23 19:29:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "plone",
"github_project": "plone.versioncheck",
"travis_ci": true,
"coveralls": true,
"github_actions": false,
"tox": true,
"lcname": "plone.versioncheck"
}