Skip to content

Commit cf66782

Browse files
author
Grace Guo
committed
Merge remote-tracking branch 'upstream/master' into gg-ExploreViewSplitReducerLogic
2 parents 90502f6 + f68189b commit cf66782

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1295
-410
lines changed

.coveralls.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
repo_token: eESbYiv4An6KEvjpmguDs4L7YkubXbqn1
1+
repo_token: 4P9MpvLrZfJKzHdGZsdV3MzO43OZJgYFn

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ cache:
1010
env:
1111
global:
1212
- TRAVIS_CACHE=$HOME/.travis_cache/
13-
- TRAVIS_NODE_VERSION="6.10.2"
13+
- TRAVIS_NODE_VERSION="7.10.0"
1414
matrix:
1515
- TOX_ENV=javascript
1616
- TOX_ENV=pylint
@@ -19,7 +19,7 @@ env:
1919
- TOX_ENV=py27-mysql
2020
- TOX_ENV=py27-sqlite
2121
before_install:
22-
- npm install -g npm@'>=4.5.0'
22+
- npm install -g npm@'>=5.0.3'
2323
before_script:
2424
- mysql -e 'drop database if exists superset; create database superset DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci' -u root
2525
- mysql -u root -e "CREATE USER 'mysqluser'@'localhost' IDENTIFIED BY 'mysqluserpassword';"

CONTRIBUTING.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ meets these guidelines:
7070

7171
## Documentation
7272

73-
The latest documentation and tutorial are available [here](http://airbnb.io/superset).
73+
The latest documentation and tutorial are available [here](https://superset.incubator.apache.org/).
7474

7575
Contributing to the official documentation is relatively easy, once you've setup
7676
your environment and done an edit end-to-end. The docs can be found in the
@@ -144,7 +144,7 @@ referenced in the rst, e.g.
144144

145145
aren't actually included in that directory. _Instead_, you'll want to add and commit
146146
images (and any other static assets) to the _superset/assets/images_ directory.
147-
When the docs are being pushed to [airbnb.io](http://airbnb.io/superset/), images
147+
When the docs are being pushed to [Apache Superset (incubating)](https://superset.incubator.apache.org/), images
148148
will be moved from there to the _\_static/img_ directory, just like they're referenced
149149
in the docs.
150150

@@ -161,12 +161,12 @@ instead.
161161

162162
## Setting up a Python development environment
163163

164-
Check the [OS dependencies](http://airbnb.io/superset/installation.html#os-dependencies) before follows these steps.
164+
Check the [OS dependencies](https://superset.incubator.apache.org/installation.html#os-dependencies) before follows these steps.
165165

166166
# fork the repo on GitHub and then clone it
167167
# alternatively you may want to clone the main repo but that won't work
168168
# so well if you are planning on sending PRs
169-
# git clone [email protected]:airbnb/superset.git
169+
# git clone [email protected]:apache/incubator-superset.git
170170

171171
# [optional] setup a virtual env and activate it
172172
virtualenv env
@@ -223,8 +223,13 @@ To install third party libraries defined in `package.json`, run the
223223
following within the `superset/assets/` directory which will install them in a
224224
new `node_modules/` folder within `assets/`.
225225

226-
```
227-
npm install
226+
```bash
227+
# from the root of the repository, move to where our JS package.json lives
228+
cd superset/assets/
229+
# install yarn, a replacement for `npm install` that is faster and more deterministic
230+
npm install -g yarn
231+
# run yarn to fetch all the dependencies
232+
yarn
228233
```
229234

230235
To parse and generate bundled files for superset, run either of the
@@ -342,7 +347,7 @@ new language dictionary, run the following command:
342347

343348
pybabel init -i ./babel/messages.pot -d superset/translations -l es
344349

345-
Then it's a matter of running the statement below to gather all stings that
350+
Then it's a matter of running the statement below to gather all strings that
346351
need translation
347352

348353
fabmanager babel-extract --target superset/translations/
@@ -374,4 +379,4 @@ to take effect, they need to be compiled using this command:
374379

375380
Here's an example as a Github PR with comments that describe what the
376381
different sections of the code do:
377-
https://github.com/airbnb/superset/pull/3013
382+
https://github.com/apache/incubator-superset/pull/3013

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
Superset
22
=========
33

4-
[![Build Status](https://travis-ci.org/airbnb/superset.svg?branch=master)](https://travis-ci.org/airbnb/superset)
4+
[![Build Status](https://travis-ci.org/apache/incubator-superset.svg?branch=master)](https://travis-ci.org/apache/incubator-superset)
55
[![PyPI version](https://badge.fury.io/py/superset.svg)](https://badge.fury.io/py/superset)
6-
[![Coverage Status](https://coveralls.io/repos/airbnb/superset/badge.svg?branch=master&service=github)](https://coveralls.io/github/airbnb/superset?branch=master)
7-
[![JS Test Coverage](https://codeclimate.com/github/airbnb/superset/badges/coverage.svg)](https://codeclimate.com/github/airbnb/superset/coverage)
8-
[![Code Health](https://landscape.io/github/airbnb/superset/master/landscape.svg?style=flat)](https://landscape.io/github/airbnb/superset/master)
9-
[![Code Climate](https://codeclimate.com/github/airbnb/superset/badges/gpa.svg)](https://codeclimate.com/github/airbnb/superset)
6+
[![Coverage Status](https://coveralls.io/repos/apache/incubator-superset/badge.svg?branch=master&service=github)](https://coveralls.io/github/apache/incubator-superset?branch=master)
107
[![PyPI](https://img.shields.io/pypi/pyversions/superset.svg?maxAge=2592000)](https://pypi.python.org/pypi/superset)
11-
[![Requirements Status](https://requires.io/github/airbnb/superset/requirements.svg?branch=master)](https://requires.io/github/airbnb/superset/requirements/?branch=master)
12-
[![Join the chat at https://gitter.im/airbnb/superset](https://badges.gitter.im/airbnb/superset.svg)](https://gitter.im/airbnb/superset?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
8+
[![Requirements Status](https://requires.io/github/apache/incubator-superset/requirements.svg?branch=master)](https://requires.io/github/apache/incubator-superset/requirements/?branch=master)
9+
[![Join the chat at https://gitter.im/apache/incubator-superset](https://badges.gitter.im/apache/incubator-superset.svg)](https://gitter.im/apache/incubator-superset?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1310
[![Documentation](https://img.shields.io/badge/docs-apache.org-blue.svg)](https://superset.incubator.apache.org)
14-
[![dependencies Status](https://david-dm.org/airbnb/superset/status.svg?path=superset/assets)](https://david-dm.org/airbnb/superset?path=superset/assets)
11+
[![dependencies Status](https://david-dm.org/apache/incubator-superset/status.svg?path=superset/assets)](https://david-dm.org/apache/incubator-superset?path=superset/assets)
1512

1613
<img
1714
src="https://cloud.githubusercontent.com/assets/130878/20946612/49a8a25c-bbc0-11e6-8314-10bef902af51.png"
@@ -176,6 +173,7 @@ the world know they are using Superset. Join our growing community!
176173
- [Brilliant.org](https://brilliant.org/)
177174
- [Clark.de](http://clark.de/)
178175
- [Digit Game Studios](https://www.digitgaming.com/)
176+
- [Douban](https://www.douban.com/)
179177
- [Endress+Hauser](http://www.endress.com/)
180178
- [FBK - ICT center](http://ict.fbk.eu)
181179
- [Faasos](http://faasos.com/)
@@ -187,4 +185,5 @@ the world know they are using Superset. Join our growing community!
187185
- [Tobii](http://www.tobii.com/)
188186
- [Tooploox](https://www.tooploox.com/)
189187
- [Udemy](https://www.udemy.com/)
190-
- [Yahoo!](www.yahoo.com)
188+
- [Yahoo!](https://yahoo.com/)
189+
- [Zalando](https://www.zalando.com)

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
master_doc = 'index'
5252

5353
# General information about the project.
54-
project = "Superset's documentation"
54+
project = "Apache Superset"
5555
copyright = None
5656
author = u'Maxime Beauchemin'
5757

docs/faq.rst

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ never be affected by any dashboard level filtering.
107107
"filter_immune_slice_fields": {
108108
"177": ["country_name", "__from", "__to"],
109109
"32": ["__from", "__to"]
110-
}
110+
},
111+
"timed_refresh_immune_slices": [324]
111112
}
112113

113114
In the json blob above, slices 324, 65 and 92 won't be affected by any
@@ -124,15 +125,33 @@ But what happens with filtering when dealing with slices coming from
124125
different tables or databases? If the column name is shared, the filter will
125126
be applied, it's as simple as that.
126127

128+
129+
How to limit the timed refresh on a dashboard?
130+
----------------------------------------------
131+
By default, the dashboard timed refresh feature allows you to automatically requery every slice on a dashboard according to a set schedule. Sometimes, however, you won't want all of the slices to be refreshed - especially if some data is slow moving, or run heavy queries.
132+
To exclude specific slices from the timed refresh process, add the ``timed_refresh_immune_slices`` key to the dashboard ``JSON Metadata`` field:
133+
134+
..code::
135+
136+
{
137+
"filter_immune_slices": [],
138+
"expanded_slices": {},
139+
"filter_immune_slice_fields": {},
140+
"timed_refresh_immune_slices": [324]
141+
}
142+
143+
In the example above, if a timed refresh is set for the dashboard, then every slice except 324 will be automatically requeried on schedule.
144+
145+
127146
Why does fabmanager or superset freezed/hung/not responding when started (my home directory is NFS mounted)?
128147
-----------------------------------------------------------------------------------------
129-
superset creates and uses an sqlite database at ``~/.superset/superset.db``. Sqlite is known to `don't work well if used on NFS`__ due to broken file locking implementation on NFS.
148+
By default, superset creates and uses an sqlite database at ``~/.superset/superset.db``. Sqlite is known to `don't work well if used on NFS`__ due to broken file locking implementation on NFS.
130149

131150
__ https://www.sqlite.org/lockingv3.html
132151

133-
One work around is to create a symlink from ~/.superset to a directory located on a non-NFS partition.
152+
You can override this path using the ``SUPERSET_HOME`` environment variable.
134153

135-
Another work around is to change where superset stores the sqlite database by adding ``SQLALCHEMY_DATABASE_URI = 'sqlite:////new/localtion/superset.db'`` in superset_config.py (create the file if needed), then adding the directory where superset_config.py lives to PYTHONPATH environment variable (e.g. ``export PYTHONPATH=/opt/logs/sandbox/airbnb/``).
154+
Another work around is to change where superset stores the sqlite database by adding ``SQLALCHEMY_DATABASE_URI = 'sqlite:////new/location/superset.db'`` in superset_config.py (create the file if needed), then adding the directory where superset_config.py lives to PYTHONPATH environment variable (e.g. ``export PYTHONPATH=/opt/logs/sandbox/airbnb/``).
136155

137156
How do I add new columns to an existing table
138157
---------------------------------------------

docs/index.rst

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,48 @@
11
.. image:: _static/img/s.png
22

3-
Superset's documentation
4-
''''''''''''''''''''''''
3+
Apache Superset (incubating)
4+
''''''''''''''''''''''''''''
55

6-
Superset is a data exploration platform designed to be visual, intuitive
7-
and interactive.
6+
Apache Superset (incubating) is a modern, enterprise-ready business
7+
intelligence web application
88

99

1010
----------------
1111

1212
.. warning:: This project was originally named Panoramix, was renamed to
1313
Caravel in March 2016, and is currently named Superset as of November 2016
1414

15+
.. important::
16+
17+
**Disclaimer**: Apache Superset is an effort undergoing incubation at The
18+
Apache Software Foundation (ASF), sponsored by the Apache Incubator.
19+
Incubation is required of all newly accepted projects until a further
20+
review indicates that the infrastructure, communications, and
21+
decision making process have stabilized in a manner consistent with
22+
other successful ASF projects. While incubation status is not
23+
necessarily a reflection of the completeness or stability of
24+
the code, it does indicate that the project has yet to be fully
25+
endorsed by the ASF.
26+
1527
Overview
1628
=======================================
1729

1830
Features
1931
---------
2032

21-
- A rich set of data visualizations, integrated from some of the best
22-
visualization libraries
23-
- Create and share simple dashboards
24-
- An extensible, high-granularity security/permission model allowing
25-
intricate rules on who can access individual features and the dataset
33+
- A rich set of data visualizations
34+
- An easy-to-use interface for exploring and visualizing data
35+
- Create and share dashboards
2636
- Enterprise-ready authentication with integration with major authentication
2737
providers (database, OpenID, LDAP, OAuth & REMOTE_USER through
2838
Flask AppBuilder)
39+
- An extensible, high-granularity security/permission model allowing
40+
intricate rules on who can access individual features and the dataset
2941
- A simple semantic layer, allowing users to control how data sources are
3042
displayed in the UI by defining which fields should show up in which
3143
drop-down and which aggregation and function metrics are made available
3244
to the user
33-
- Integration with most RDBMS through SqlAlchemy
45+
- Integration with most SQL-speaking RDBMS through SQLAlchemy
3446
- Deep integration with Druid.io
3547

3648
------

docs/installation.rst

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -392,13 +392,13 @@ have the same configuration.
392392

393393
.. code-block:: python
394394
395-
class CeleryConfig(object):
396-
BROKER_URL = 'redis://localhost:6379/0'
397-
CELERY_IMPORTS = ('superset.sql_lab', )
398-
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
399-
CELERY_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}}
395+
class CeleryConfig(object):
396+
BROKER_URL = 'redis://localhost:6379/0'
397+
CELERY_IMPORTS = ('superset.sql_lab', )
398+
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
399+
CELERY_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}}
400400
401-
CELERY_CONFIG = CeleryConfig
401+
CELERY_CONFIG = CeleryConfig
402402
403403
To setup a result backend, you need to pass an instance of a derivative
404404
of ``werkzeug.contrib.cache.BaseCache`` to the ``RESULTS_BACKEND``
@@ -410,13 +410,13 @@ look something like:
410410

411411
.. code-block:: python
412412
413-
# On S3
414-
from s3cache.s3cache import S3Cache
415-
S3_CACHE_BUCKET = 'foobar-superset'
416-
S3_CACHE_KEY_PREFIX = 'sql_lab_result'
417-
RESULTS_BACKEND = S3Cache(S3_CACHE_BUCKET, S3_CACHE_KEY_PREFIX)
413+
# On S3
414+
from s3cache.s3cache import S3Cache
415+
S3_CACHE_BUCKET = 'foobar-superset'
416+
S3_CACHE_KEY_PREFIX = 'sql_lab_result'
417+
RESULTS_BACKEND = S3Cache(S3_CACHE_BUCKET, S3_CACHE_KEY_PREFIX)
418418
419-
# On Redis
419+
# On Redis
420420
from werkzeug.contrib.cache import RedisCache
421421
RESULTS_BACKEND = RedisCache(
422422
host='localhost', port=6379, key_prefix='superset_results')
@@ -444,8 +444,8 @@ your environment.::
444444

445445
# assuming $SUPERSET_HOME as the root of the repo
446446
cd $SUPERSET_HOME/superset/assets
447-
npm install
448-
npm run build
447+
yarn
448+
yarn run build
449449
cd $SUPERSET_HOME
450450
python setup.py install
451451

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def get_git_sha():
4545
'boto3==1.4.4',
4646
'celery==3.1.25',
4747
'colorama==0.3.9',
48-
'cryptography==1.7.2',
48+
'cryptography==1.9',
4949
'flask-appbuilder==1.9.1',
5050
'flask-cache==0.13.1',
5151
'flask-migrate==2.0.3',
@@ -61,7 +61,7 @@ def get_git_sha():
6161
'pandas==0.20.2',
6262
'parsedatetime==2.0.0',
6363
'pydruid==0.3.1',
64-
'PyHive>=0.3.0',
64+
'PyHive>=0.4.0',
6565
'python-dateutil==2.6.0',
6666
'requests==2.17.3',
6767
'simplejson==3.10.0',

superset/assets/backendSync.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,12 @@
750750
"default": false,
751751
"description": "Sort bars by x labels."
752752
},
753+
"combine_metric": {
754+
"type": "CheckboxControl",
755+
"label": "Combine Metrics",
756+
"default": false,
757+
"description": "Display metrics side by side within each column, as opposed to each column being displayed side by side for each metric."
758+
},
753759
"show_controls": {
754760
"type": "CheckboxControl",
755761
"label": "Extra Controls",

0 commit comments

Comments
 (0)