From 2432c3155a21f4b896a65215a467a0a04a5e455c Mon Sep 17 00:00:00 2001 From: vera-liu Date: Thu, 15 Sep 2016 17:20:18 -0700 Subject: [PATCH] Associate version to entry files (#1060) * Associate version to entry files * Modified path joins for configs * Made changes based on comments --- caravel/__init__.py | 3 --- caravel/assets/package.json | 2 +- caravel/assets/webpack.config.js | 5 ++++- caravel/bin/caravel | 2 +- caravel/config.py | 7 +++++++ caravel/templates/caravel/base.html | 10 +++++++--- caravel/templates/caravel/basic.html | 4 +++- caravel/templates/caravel/dashboard.html | 4 +++- caravel/templates/caravel/explore.html | 4 +++- caravel/templates/caravel/partials/_script_tag.html | 4 ++++ caravel/templates/caravel/sqllab.html | 4 +++- caravel/templates/caravel/standalone.html | 8 ++++++-- caravel/templates/caravel/welcome.html | 6 ++++-- caravel/version.py | 7 ------- setup.py | 12 ++++++++---- 15 files changed, 54 insertions(+), 28 deletions(-) create mode 100644 caravel/templates/caravel/partials/_script_tag.html delete mode 100644 caravel/version.py diff --git a/caravel/__init__.py b/caravel/__init__.py index b750b99842..4cf93425d4 100644 --- a/caravel/__init__.py +++ b/caravel/__init__.py @@ -14,9 +14,6 @@ from flask_appbuilder.baseviews import expose from flask_cache import Cache from flask_migrate import Migrate -from caravel import version - -VERSION = version.VERSION_STRING APP_DIR = os.path.dirname(__file__) CONFIG_MODULE = os.environ.get('CARAVEL_CONFIG', 'caravel.config') diff --git a/caravel/assets/package.json b/caravel/assets/package.json index 321def7648..0ccb17f1f7 100644 --- a/caravel/assets/package.json +++ b/caravel/assets/package.json @@ -1,6 +1,6 @@ { "name": "caravel", - "version": "0.1.0", + "version": "0.10.0", "description": "Caravel is a data exploration platform designed to be visual, intuitive, and interactive.", "directories": { "doc": "docs", diff --git a/caravel/assets/webpack.config.js b/caravel/assets/webpack.config.js index 79e5d780aa..7b851e2e0e 100644 --- a/caravel/assets/webpack.config.js +++ b/caravel/assets/webpack.config.js @@ -1,5 +1,6 @@ const webpack = require('webpack'); const path = require('path'); +const fs = require('fs'); // input dir const APP_DIR = path.resolve(__dirname, './'); @@ -7,6 +8,8 @@ const APP_DIR = path.resolve(__dirname, './'); // output dir const BUILD_DIR = path.resolve(__dirname, './dist'); +const VERSION_STRING = JSON.parse(fs.readFileSync('package.json')).version; + const config = { entry: { 'css-theme': APP_DIR + '/javascripts/css-theme.js', @@ -19,7 +22,7 @@ const config = { }, output: { path: BUILD_DIR, - filename: '[name].entry.js', + filename: `[name].${VERSION_STRING}.entry.js`, }, resolve: { extensions: [ diff --git a/caravel/bin/caravel b/caravel/bin/caravel index 0c94289053..a582c3e5ec 100755 --- a/caravel/bin/caravel +++ b/caravel/bin/caravel @@ -73,7 +73,7 @@ def version(verbose): "-----------------------\n" "Caravel {version}\n" "-----------------------").format( - boat=ascii_art.boat, version=caravel.VERSION) + boat=ascii_art.boat, version=config.get('VERSION_STRING')) print(s) if verbose: print("[DB] : " + "{}".format(db.engine)) diff --git a/caravel/config.py b/caravel/config.py index 233f99a6c7..4856c07fa7 100644 --- a/caravel/config.py +++ b/caravel/config.py @@ -8,7 +8,9 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals +from caravel import app +import json import os from dateutil import tz @@ -22,6 +24,11 @@ if not os.path.exists(DATA_DIR): # --------------------------------------------------------- # Caravel specific config # --------------------------------------------------------- +PACKAGE_DIR = os.path.join(BASE_DIR, 'static', 'assets') +PACKAGE_FILE = os.path.join(PACKAGE_DIR, 'package.json') +with open(PACKAGE_FILE) as package_file: + VERSION_STRING = json.load(package_file)['version'] + ROW_LIMIT = 50000 CARAVEL_WORKERS = 16 diff --git a/caravel/templates/caravel/base.html b/caravel/templates/caravel/base.html index 69a6d0a9bd..49502f2950 100644 --- a/caravel/templates/caravel/base.html +++ b/caravel/templates/caravel/base.html @@ -8,10 +8,14 @@ {% block head_js %} {{super()}} - + {% with filename="css-theme" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} {% block tail_js %} - {{super()}} - + {{super()}} + {% with filename="common" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} diff --git a/caravel/templates/caravel/basic.html b/caravel/templates/caravel/basic.html index f2545ec73a..2ca5f5c29a 100644 --- a/caravel/templates/caravel/basic.html +++ b/caravel/templates/caravel/basic.html @@ -13,7 +13,9 @@ {% endblock %} {% block head_js %} - + {% with filename="css-theme" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} diff --git a/caravel/templates/caravel/dashboard.html b/caravel/templates/caravel/dashboard.html index de59a56373..f559e672e6 100644 --- a/caravel/templates/caravel/dashboard.html +++ b/caravel/templates/caravel/dashboard.html @@ -2,7 +2,9 @@ {% block head_js %} {{ super() }} - + {% with filename="dashboard" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} {% block title %}[dashboard] {{ dashboard.dashboard_title }}{% endblock %} {% block body %} diff --git a/caravel/templates/caravel/explore.html b/caravel/templates/caravel/explore.html index be87414c96..eaa7d008d9 100644 --- a/caravel/templates/caravel/explore.html +++ b/caravel/templates/caravel/explore.html @@ -335,5 +335,7 @@ {% block tail_js %} {{ super() }} - + {% with filename="explore" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} diff --git a/caravel/templates/caravel/partials/_script_tag.html b/caravel/templates/caravel/partials/_script_tag.html new file mode 100644 index 0000000000..5afd264182 --- /dev/null +++ b/caravel/templates/caravel/partials/_script_tag.html @@ -0,0 +1,4 @@ +{% set VERSION_STRING = appbuilder.get_app.config.get("VERSION_STRING") %} +{% block tail_js %} + +{% endblock %} diff --git a/caravel/templates/caravel/sqllab.html b/caravel/templates/caravel/sqllab.html index 374deb64e9..e330a3525c 100644 --- a/caravel/templates/caravel/sqllab.html +++ b/caravel/templates/caravel/sqllab.html @@ -2,5 +2,7 @@ {% block tail_js %} {{ super() }} - + {% with filename="sqllab" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} diff --git a/caravel/templates/caravel/standalone.html b/caravel/templates/caravel/standalone.html index bd12e54b29..7004925043 100644 --- a/caravel/templates/caravel/standalone.html +++ b/caravel/templates/caravel/standalone.html @@ -23,7 +23,11 @@
- - + {% with filename="css-theme" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} + {% with filename="standalone" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} diff --git a/caravel/templates/caravel/welcome.html b/caravel/templates/caravel/welcome.html index bdc8f92a46..c3a5fe66fd 100644 --- a/caravel/templates/caravel/welcome.html +++ b/caravel/templates/caravel/welcome.html @@ -1,8 +1,10 @@ {% extends "caravel/basic.html" %} {% block head_js %} -{{ super() }} - + {{ super() }} + {% with filename="welcome" %} + {% include "caravel/partials/_script_tag.html" %} + {% endwith %} {% endblock %} {% block title %}{{ _("Welcome!") }}{% endblock %} diff --git a/caravel/version.py b/caravel/version.py deleted file mode 100644 index 61478e0898..0000000000 --- a/caravel/version.py +++ /dev/null @@ -1,7 +0,0 @@ -VERSION_MAJOR = 0 -VERSION_MINOR = 10 -VERSION_BUILD = 0 -VERSION_INFO = (VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD) -VERSION_STRING = "%d.%d.%d" % VERSION_INFO - -__version__ = VERSION_INFO diff --git a/setup.py b/setup.py index fd3f6a987e..0a83a422a6 100644 --- a/setup.py +++ b/setup.py @@ -1,16 +1,20 @@ import imp import os +import json from setuptools import setup, find_packages -version = imp.load_source( - 'version', os.path.join('caravel', 'version.py')) +BASE_DIR = os.path.abspath(os.path.dirname(__file__)) +PACKAGE_DIR = os.path.join(BASE_DIR, 'caravel', 'static', 'assets') +PACKAGE_FILE = os.path.join(PACKAGE_DIR, 'package.json') +with open(PACKAGE_FILE) as package_file: + version_string = json.load(package_file)['version'] setup( name='caravel', description=( "A interactive data visualization platform build on SqlAlchemy " "and druid.io"), - version=version.VERSION_STRING, + version=version_string, packages=find_packages(), include_package_data=True, zip_safe=False, @@ -55,7 +59,7 @@ setup( author_email='maximebeauchemin@gmail.com', url='https://github.com/airbnb/caravel', download_url=( - 'https://github.com/airbnb/caravel/tarball/' + version.VERSION_STRING), + 'https://github.com/airbnb/caravel/tarball/' + version_string), classifiers=[ 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.4',