Skip to content

Cleaning up the release scripts #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 31, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions firebase_admin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
from firebase_admin import credentials


Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a comment with the link to https://www.python.org/dev/peps/pep-0396/#specification in it so people know why we have this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

# Declaring module version as per https://www.python.org/dev/peps/pep-0396/#specification
# Update this accordingly for each release.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a thought: We should probably have a script like we do in Java (release-to-gh.sh) and Node.js (create-release-tarball.sh) which takes the version number as an argument and updates this kind of stuff automatically.

__version__ = '0.0.1'

_apps = {}
_apps_lock = threading.RLock()

Expand Down
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[bdist_wheel]
universal = 1
94 changes: 25 additions & 69 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,92 +1,48 @@
"""Setup file for distribution artifacts."""
from __future__ import print_function

from os import path
from setuptools import setup, find_packages
import sys

from setuptools import find_packages
from setuptools import setup

import firebase_admin


if sys.version_info < (2, 7):
print('firebase_admin requires python2 version >= 2.7 or python3.', file=sys.stderr)
sys.exit(1)

here = path.abspath(path.dirname(__file__))

long_description = ('The Firebase Admin Python SDK enables server-side (backend) Python developers '
'to integrate Firebase into their services and applications.')
install_requires = [
'oauth2client>=4.0.0',
'six>=1.6.1'
]

version = firebase_admin.__version__

setup(
name='firebase_admin',

# Versions should comply with PEP440. For a discussion on single-sourcing
# the version across setup.py and the project code, see
# https://packaging.python.org/en/latest/single_source_version.html
version='0.0.1',

version=version,
description='Firebase Admin Python SDK',
long_description=long_description,

url='https://firebase.google.com/docs/admin/setup/',

# Author details
author='Firebase',

# Choose your license
license='https://firebase.google.com/terms/',

# See https://pypi.python.org/pypi?%3Aaction=list_classifiers
keywords='firebase cloud development',
install_requires=install_requires,
packages=find_packages(exclude=['tests']),
classifiers=[
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
'Development Status :: 3 - Alpha',

# Indicate who your project is intended for
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',

# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This kind of harkens back to our discussion from Wednesday, but do we need to explicitly list 3.3 and 3.5 here? I'm fine if we want to keep it, but it just seems kinda random.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured we should list the Python versions that we have explicitly tested on. oauth2client does something similar: https://github.com/google/oauth2client/blob/master/setup.py

'Programming Language :: Python :: 3.5',
],

# What does your project relate to?
keywords='firebase cloud development',

packages=find_packages(exclude=['tests']),

# List run-time dependencies here. These will be installed by pip when
# your project is installed. For an analysis of "install_requires" vs pip's
# requirements files see:
# https://packaging.python.org/en/latest/requirements.html
install_requires=[
'oauth2client>=4.0.0',
'six>=1.6.1'
],

# List additional groups of dependencies here (e.g. development
# dependencies). You can install these using the following syntax,
# for example:
# $ pip install -e .[dev,test]
#extras_require={
# 'dev': ['check-manifest'],
# 'test': ['coverage'],
#},

# If there are data files included in your packages that need to be
# installed, specify them here. If using Python 2.6 or less, then these
# have to be included in MANIFEST.in as well.
#package_data={
# 'sample': ['package_data.dat'],
#},

# Although 'package_data' is the preferred approach, in some case you may
# need to place data files outside of your packages. See:
# http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa
# In this case, 'data_file' will be installed into '<sys.prefix>/my_data'
#data_files=[('my_data', ['data/data_file'])],

# To provide executable scripts, use entry points in preference to the
# "scripts" keyword. Entry points provide cross-platform support and allow
# pip to create the appropriate form of executable for the target platform.
#entry_points={
# 'console_scripts': [
# 'sample=sample:main',
# ],
#},
)