Skip to main content

Git and hg versioning for natcap projects

Project description

Consistent versioning for NatCap Projects

This package provides a consistent versioning scheme for projects of the Natural Capital Project (http://naturalcapitalproject.org).

Versioning Scheme

How a version string is formatted:

If we are at a tag:
    version = {tag}
else:
    version = {tag}.post{N}+r{nodeid|short}

If there are no tags:
    {tag} = 'null'

Examples:

  • Version string = 3.4.5

    • Meaning: This version of this tool was built from the tag 3.4.5.

    • You can update to this revision by calling hg update -r 3.4.5

  • Version string = 3.4.5.post35+r788a29c99234

    • Meaning: This version of this tool was built from a revision where:

      • The latest tag was 3.4.5

      • The latest commit on this branch is 35 commits beyond the latest tag.

      • The latest commit has a shortened node ID of 788a29c99234

    • You can update to this revision by calling hg update -r 788a29c99234

Installation

Via pip: pip install natcap.versioner

Via setup.py: python setup.py install

Dependencies

Both these can be installed via pip.

  • setuptools

  • yaml

To install dependencies:

pip install setuptools pyyaml

Usage In Your Project

To use this project, you’ll need to edit two files: setup.py and __init__.py.

In your ``setup.py``

Adding these lines to your setup.py allows the DVCS information to be fetched from git or hg and recorded in the package metadata.

from setuptools import setup
import natcap.versioner

setup(
    name='example_project',
    ...
    version=natcap.versioner.parse_version()
    natcap_version='example_project/version.py',
)

In your package’s ``__init__.py``

Adding these lines to your package’s __init__.py file will allow the package version to be fetched from the package metadata.

# Let's assume your package name is still 'example_project'
import natcap.versioner
__version__ = natcap.versioner.get_version('example_project')

Support

If something doesn’t work, it’s probably broken! Please submit an issue via the issue tracker, send James an email or stop by if you’re in the office and I’ll try to fix it!

Tests

To run the suite of tests:

$ python setup.py nosetests

Note that hg and git must be available as executables on the command-line.

0.3.1

  • Restoring support for installation as egg (0.3.0 lacked this).

  • Minor stylistic changes for PEP8 and PEP257

0.3.0

  • Adding support for git.

  • Added tests for core versioning functionality.

0.2.4

  • Allowing get_version() to allow fallback to SCM only when allowed by user input. Defaults to only allowing fallback in non-frozen environments (e.g. a source tree). natcap.versioner.VersionNotFound will be raised if the version string cannot be loaded normally or SCM is disallowed.

  • If a version string cannot be parsed by vcs_version(), natcap.versioner.VersionNotFound will optionally be raised.

0.2.3

  • Turning setuptools zip_safe flag to False. When this and natcap.invest have their zip_safe flags all as False, the packages happily install side-by-side as individual eggs.

0.2.2

  • Fixes an issue where a development version is returned when the user is at a tag. The version is now correctly reported as just the tag.

0.2.1

  • Version files are now properly imported. This fixes an issue with users unable to fetch version strings from within frozen environments that are outside of a source tree.

0.2.0

  • API Change: version is now parsed from setup.py using natcap.versioner.parse_version().

  • Allowing the version to be correctly fetched from PKG-INFO from egg/distribution metadata even when the package has not already been built.

0.1.4

  • Attempting to get the utils module to import correctly.

0.1.3

  • Allowing version string to be written to a package file.

0.1.2

  • Default version scheme is dvcs-based post-release now. but can also do a pre-release.

0.1.1

  • Fixes installation issues where certain files needed for setup.py were missing from the source distribution.

0.1.0

  • Initial public release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

natcap.versioner-0.3.1.tar.gz (10.1 kB view details)

Uploaded Source

Built Distributions

natcap.versioner-0.3.1-py2.7.egg (16.9 kB view details)

Uploaded Source

natcap.versioner-0.3.1-py2-none-any.whl (13.7 kB view details)

Uploaded Python 2

File details

Details for the file natcap.versioner-0.3.1.tar.gz.

File metadata

File hashes

Hashes for natcap.versioner-0.3.1.tar.gz
Algorithm Hash digest
SHA256 cf2f8a14eabb08822856b590a9e1aba4c4a2d4288919a32e1607c4a71dc10fdd
MD5 109cab47f0c215f3009104b69d89ac44
BLAKE2b-256 a39618b42b153150bf8c21711fc4b438ce8baba0af151b214d4b97dd506815bb

See more details on using hashes here.

File details

Details for the file natcap.versioner-0.3.1-py2.7.egg.

File metadata

File hashes

Hashes for natcap.versioner-0.3.1-py2.7.egg
Algorithm Hash digest
SHA256 e8fb1bfdbe5270e2f15eab8a5ad89f23481ac90dd4ab037623d82431db297e70
MD5 bfe9af6ca267316bcf7d9bda6cbab5ac
BLAKE2b-256 24ae77d5c793c61231f2bd352f65f9360e8fe6a8df10f488dd4d4c5d6f884327

See more details on using hashes here.

File details

Details for the file natcap.versioner-0.3.1-py2-none-any.whl.

File metadata

File hashes

Hashes for natcap.versioner-0.3.1-py2-none-any.whl
Algorithm Hash digest
SHA256 0038cdf1a4b41d586748be0d3e452ae6626b89af9df21bfaeb6ab216ec380abf
MD5 c0c9cf81eb2e10acc2d2aee5074e6074
BLAKE2b-256 a98d732d27da23dbfdac8d1cb926c35f0457b03282241c9b16f2dceb832d27e2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page