Mostly docs, combined release.
CHANGES:
2018-06-06: polyvers-v0.1.0a1, polyversion-v0.1.0a7
- FEAT: reinstated :term:
engravingson_version.py
(see previous release for rational).
2018-06-06: polyvers-v0.1.0a1, polyversion-v0.1.0a7
Mostly docs, combined release.
- FEAT: reinstated :term:
engravingson_version.py
(see previous release for rational).
2018-06-05: polyvers-v0.1.0a0, polyversion-v0.1.0a6: co2mpas-ready
-
FEAT: reinstated :term:
engravingsonsetup.py(dropped only for a while
in2018-06-03: polyversion-v0.1.0a3: setuptools_ ), since, assuming clients have adopted
the new :term:setuptools pluginkeyword, it is thedefault_versionthat
will be engraved, which is fine. -
fix: report any version matched both from :term:
v-tag\s and :term:r-tag's. -
fix:
bumpcommand does not engrave egg-related files. -
polyversioncommand got a bit more civilized (with logging to explain
problems with related stacktraces. -
dev: don't test building wheel on travis...too much fuzzz.
2018-06-05: polyversion-v0.1.0a5
- Disable standalone-wheel hack from
pvlib/setup.pyand rely on
setuptools plugin even for polyversion ONCE MORE.
(but no need to update standalone, which is a wheel, unaffected by that)
2018-06-05: polyversion-v0.1.0a4
Bugfixing polyversion (and generate a non-buggy standalone wheel):
-
FIX
polyversionwhere it ignoredsetup(default_versionkeyword.
(:git:6519a1ba) -
fix:
polyversionstop eating half of its own dog food: cannot reliably use
:term:setuptools pluginfor its installation. (:git:56a894cde) -
Monkeypatching distutils for :term:
bdist-checkwas failing in PY2
due to being an "old class". (:git:1f72baec) -
doc: fixed recommendation about how to bypass :term:
bdist-checkto this:...
You may bypass this check and create a package with non-engraved sources
(although it might not work correctly) by addingskip_polyversion_checkoption
in your$CWD/setup.cfgfile, like this::[global] skip_polyversion_check = true ...
2018-06-03: polyversion-v0.1.0a3: setuptools
-
v0.1.0a2Canceled (like the previous 2), cannot release from r-tags becausesetup()
reports version from v-tag.- Q: Is a new setup-keyword needed
--is-polyversion-release? - A: no, just search both.
- Q: Is a new setup-keyword needed
-
v0.1.0a0had been canceled for the same reason, but somewhere down the road,
the fix was reverted (:term:bdist-checkworks for r-tag only). -
v0.1.0a1just marked that oursetup.pyfiles ate our dog food.
Breaking changes
-
Dropped all positional-arguments from :func:
polyversion.polyversion();
was error-prone. They have all been converted to keyword-arguments. -
Renamed data in :mod:
polyversion
(also applied for :class:polyvers.pvproject.Project())::pvtag_frmt --> pvtag_format vtag_frmt --> vtag_format -
Changed arguments in :func:
polyversion.polyversion()
(affect also :class:polyvers.pvproject.Project())::default --> default_version tag_frmt --> tag_format --> vprefixes (new) --> is_release (new) -
REVERTED again the
0.0.2a9default logic to raise when it version/time
cannot be derived. Now by default it raises, unless default-version or
no_raisefor :func:polyversion.polytime(). -
Stopped engraving
setup.pyfiles ; clients should use setuptools plugin
to derive version for those files (see new features, below)).
For reference, this is the removed element from default :class:~Project's
configuration (in YAML)::globs: [setup.py] grafts: - regex: -| (?xm) \bversion (\ *=\ *) .+?(, \ *[\n\r])+ -
polyversion library searches both v-tags and r-tags (unless limited).
Previously, even checked-out on an r-tag, bothpolyversioncommand
andpolyvers bumpwould ignore it, and report +1 from the v-tag!
Features
-
The
polyversionlibrary function as a setuptools "plugin", and
adds two newsetup()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:
skip_polyversion_check --> bool
When true, disable :term:bdist-check, when false (default),
anybdist_*(e.g.bdist_wheel), commands will abort if not run
from a :term:release tag.
You may bypass this check and create a package with non-engraved sources
(although it might not work correctly) by invoking the setup-script
from command-line like this::$ python setup.py bdist_wheel --skip-polyversion-check
-
-
bumpcmd: engrave also non-bumped projects with theirgit describe-derived
version (controlled by--BumpCmd.engrave_bumped_onlyflag). -
Assign names to engraves & grafts for readable printouts, and for refering to
them from the newProject.enabled_engarveslist. (namengraves) -
polyversion -tcommand-line tool prints the full tag (not the version)
to make it easy to know if it is a v-tag or r-tag.
Documentation changes
-
Adopt
towncrierfor compiling CHANGES. So now each code change can describe
its change in the same commit, without conflicts. (towncrier) -
usage: explain how to set your projects :pep:
0518pyproject.toml
file &setup_requireskeyword insetup.pyin your script. -
add
pbr,incrementalandZest.releasein :ref:similar-toolssection
as setuptools plugins. -
re-wrote and shrinked opening section using glossary terms.
-
Chore development:
- deps: don't pin
packaging==17.1, any bigger +17 is fine for parsing
version correctly.
- deps: don't pin