forked from BigfootDev/flatbuffers
Use a combination of travis and twine to publish to PyPI. New publications will be made: * When `master` is updated. This will trigger the publication of a the Python artifact versioned an iso-compliant build datetime. In this way, the cutting edge version will always be available via PyPI. * When a new git tag is pushed. Tag pushes trigger the publication of a python artifact with the same version as the git tag, with the leading `v` stripped if present (`v1.2.3` becomes `1.2.3`). Publications rely on Travis having a PYPI_PASSWORD environment set in the project settings. See the Travis CI documentation for information on [setting environment variables which containing sensitive data][1]. Make extra sure the "Display value in build log" switch is OFF. In addition to setting the previously mentioned `PYPI_PASSWORD` environment variable, the owner of the PyPI `flatbuffers` repository should, after merging this commit into master, add his own commit to change `mikeholler` in `.travis/deploy-python.sh` to his username. It's also recommended that the owner of `flatbuffers` use a separate account in the unlikely event that the environment variable somehow becomes compromised. Again, this is very unlikely, since the environment variable is only set for "safe" builds approved by maintainers (not on random pull requests). [1]: https://docs.travis-ci.com/user/environment-variables/#Defining-Variables-in-Repository-Settings
58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
# Copyright 2016 Google Inc. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import os
|
|
from datetime import datetime
|
|
from setuptools import setup
|
|
|
|
|
|
def version():
|
|
version = os.getenv('VERSION', None)
|
|
if version:
|
|
# Most git tags are prefixed with 'v' (example: v1.2.3) this is
|
|
# never desirable for artifact repositories, so we strip the
|
|
# leading 'v' if it's present.
|
|
return version[1:] if version.startswith('v') else version
|
|
else:
|
|
# Default version is an ISO8601 compiliant datetime. PyPI doesn't allow
|
|
# the colon ':' character in its versions, and time is required to allow
|
|
# for multiple publications to master in one day. This datetime string
|
|
# uses the "basic" ISO8601 format for both its date and time components
|
|
# to avoid issues with the colon character (ISO requires that date and
|
|
# time components of a date-time string must be uniformly basic or
|
|
# extended, which is why the date component does not have dashes.
|
|
#
|
|
# Publications using datetime versions should only be made from master
|
|
# to represent the HEAD moving forward.
|
|
version = datetime.utcnow().strftime('%Y%m%d%H%M%S')
|
|
print("VERSION environment variable not set, using datetime instead: {}"
|
|
.format(version))
|
|
|
|
return version
|
|
|
|
setup(
|
|
name='flatbuffers',
|
|
version=version(),
|
|
license='Apache 2.0',
|
|
author='FlatBuffers Contributors',
|
|
author_email='me@rwinslow.com',
|
|
url='https://github.com/google/flatbuffers',
|
|
long_description=('Python runtime library for use with the Flatbuffers'
|
|
'serialization format.'),
|
|
packages=['flatbuffers'],
|
|
include_package_data=True,
|
|
requires=[],
|
|
description='The FlatBuffers serialization format for Python',
|
|
)
|