Repository: tensorflow/addons

Issue:
Automate Build Process
Currently we have no automated process for building Addons across python version and operating systems. Going forward we'll want this process to be automated.. but it may be challenging for us to start builds without access to the Google internal tooling.

We could conceivably use Travis... but if we can keep consistent CI that would be ideal.




Discussion:
Good example that we could adapt. Still need to determine how we can trigger a release build.
https://github.com/apache/arrow/blob/master/python/manylinux1/build_arrow.sh

@karmel @av8ramit I've start working on this as well as #77 and wanted to see if we could discuss our options.

1. Will we be able to use Google infra to build our releases?
2. Would that be something the Addons release team could trigger? Or will it need to be an internal team member?
2. Are there OSX instances we can use?
1. We could in theory set up scripts/builds for release building as well as testing.
2. Remind me-- are you able to trigger the testing builds? If so, presumably the same would work for release builds as well. ( @av8ramit to correct me if I'm wrong)
3. Oof. They are really hard to come by-- @av8ramit , do you know the feasibility of doing mac osx builds for addons?

If we can make this work with Travis, that might be preferable long-term insofar as the keys are in your hands; are there blockers to that currently?

CC @ewilderj @martinwicke , FYI
@seanpmorgan and @karmel 

2. You are correct. If you can trigger them via GitHub labels it should work. 
3. You can do Mac OSX builds for addons via the internal infrastructure we are using for presubmits and ci testing. Someone internally will have to maintain that though.
Thanks for the followup. Yeah we currently trigger tests using the korkoro label which works great, but labels seem a bit clunky for builds/releases.

I've started a branch using travis which will build nightly packages and allow us to trigger releases. 

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -17,10 +17,10 @@
 TensorFlow Addons is a repository of contributions that conform to
 well-established API patterns,but implement new functionality not available in
 core TensorFlow.TensorFlow natively supports a large number of operators,
-layers, metrics, losses, and optimizers. However, in a fast movingfield like
+layers, metrics, losses, and optimizers. However, in a fast moving field like
 ML, there are many interesting new developments that cannot be integrated into
 core TensorFlow (because their broad applicability is not yet clear, or it is
-mostly used by a smallersubset of the community).
+mostly used by a smaller subset of the community).
 """
 
 from __future__ import absolute_import
@@ -28,7 +28,9 @@
 from __future__ import print_function
 
 import os
+import sys
 
+from datetime import datetime
 from setuptools import find_packages
 from setuptools import setup
 from setuptools.dist import Distribution
@@ -46,7 +48,13 @@
     'six >= 1.10.0',
 ]
 
-project_name = 'tensorflow-addons'
+if '--nightly' in sys.argv:
+    project_name = 'tfa-nightly'
+    nightly_idx = sys.argv.index('--nightly')
+    sys.argv.pop(nightly_idx)
+    version['__version__'] += datetime.strftime(datetime.today(), "%Y%m%d")
+else:
+    project_name = 'tensorflow-addons'
 
 
 class BinaryDistribution(Distribution):
@@ -78,7 +86,6 @@ def has_ext_modules(self):
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7',
         'Topic :: Scientific/Engineering :: Mathematics',
         'Topic :: Software Development :: Libraries :: Python Modules',
         'Topic :: Software Development :: Libraries',


Test patch: