Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
hypothesis/h
40a/h
AFDudley/h
BigBlueHat/h
BinaryStars/h
CCH543/h
Cinemacloud/h
Ericgood/h
FTG-003/h
Forethinker/h
GratefulTony/h
HGldJ1966/h
JJediny/h
John-Williams/h
Laurian/h
LittleFancy/h
MattyQ/h
Mishkin2015/h
RichardLitt/h
Staffan1/h
SteelWagstaff/h
TowerBR/h
VanyTang/h
abigailricarte/h
ackermann/h
alecchap/h
alesarrett/h
alexsegura/h
almereyda/h
alon/h
andzi/h
angelicxsoul/h
ansmoh/h
apurvajalit/h
arjunvasan/h
asdevor/h
bZichett/h
badgettrg/Webmarks
balmas/h
balupton/h
bbarker/h
bennlich/h
benthor/h
blakewest/h
bogste/h
bradparks/h
brittanystoroz/h
buiquangchien/h
cdchapman/h
charblanc/h
chowsamihq/h
chr7stos/Webmarks
chrber/h
chrismPssina/h
christinaphamAD/h
cmbirk/h
codeaudit/h
coolcool21/h
cove/h
csillag/h
danjimilk/h
dannyhope/h
daredream/h
davidmcclure/h
dennisplucinik/h
dezynetechnologies/h
diegodlh/h
djcun95/h
donsequitur/h
edsu/h
eiro10/h
emckean/h
ercchy/h
eshellman/h
fangang123/h
fchasen/h
fcrimins/h
fhirsch/h
ficolo/h
fragkopoulos/h
gauravkeerthi/h
geass/h
gergely-ujvari/h
gitter-badger/h
gnott/h
gobengo/h
gorinovic/h
gus3000/h
hashin/h
helemaalbigt/h
hmstepanek/h
hwasiti/h
hylhero/h
hyperstudio/h
iHDeveloper/h
imeysam/h
jackspaceBerkeley/h
jarey/h
jasdeep/h
jason790/h
jasonzou/j
jazahn/h
jccr/h
jean/h
jeka57/h
jeremydean/h
jermnelson/h
jibe-b/h
jnishiyama/h
jojksd/h
jpadilla/h
jtremback/h
judell/h
juli-so/h
kabacs/h
karissa/h
kaushikvijay/h
kaydoh/h
kill4uk/h
klopiinas/h
klrkdekira/h
koulihong311/h
krassif/h
krstnkngs/h
leoqmp/h
linhua55/h
lucadealfaro/h
lyspooner/h
lyzadanger/h
m1yag1/h
magee/h
mambocab/h
manunymous/h
maraino/h
mari-ja/h
markbarratt/h
martinq/h
mbbaig/h
mcarv63/h
meawoppl/h
meflyup/h
metasj/h
mgasner/h
mgax/h
mollycr/h
mrchrisadams/h
mrienstra/h
mshavlovsky/h
muddasani/h
nagyist/hyphothesis-h
nagyistoce/hypothesis-h
nanxio/h
neozhangthe1/h
ningyifan/h
nkingsley/h
nlholdem/h
nlisgo/h
noscripter/h
nshkuro/h
odnodn/h
oliversauter/h
openbizgit/h
opengovfoundation/h
openstax/hypothesis-server
ouroboros8/h
pablomarti/h
pamo/h
philipn/h
philschatz/h
pinballwonder/h
plainspace/h
raowl/h
rickyhan/h
rmoorman/h
rmtsukuru/h
robertknight/h
rowhit/h
rsarxiv/h
saakaifoundry/h
samrose/h
scharf/h
shepazu/h
sherah/h
shofheinz/h
soapdog/h
ssin122/test-h
st-fresh/h
stuk88/h
sylvanmist/h
tetratorus/h
tilgovi/h
tomnar/h
trivenews/h
truthadjustr/h
utngz/h
voidfiles/h
wenchen/h
yargevad/h
yumatch/h
zshen777/h
Nothing to show
Choose a Head Repository
hypothesis/h
40a/h
AFDudley/h
BigBlueHat/h
BinaryStars/h
CCH543/h
Cinemacloud/h
Ericgood/h
FTG-003/h
Forethinker/h
GratefulTony/h
HGldJ1966/h
JJediny/h
John-Williams/h
Laurian/h
LittleFancy/h
MattyQ/h
Mishkin2015/h
RichardLitt/h
Staffan1/h
SteelWagstaff/h
TowerBR/h
VanyTang/h
abigailricarte/h
ackermann/h
alecchap/h
alesarrett/h
alexsegura/h
almereyda/h
alon/h
andzi/h
angelicxsoul/h
ansmoh/h
apurvajalit/h
arjunvasan/h
asdevor/h
bZichett/h
badgettrg/Webmarks
balmas/h
balupton/h
bbarker/h
bennlich/h
benthor/h
blakewest/h
bogste/h
bradparks/h
brittanystoroz/h
buiquangchien/h
cdchapman/h
charblanc/h
chowsamihq/h
chr7stos/Webmarks
chrber/h
chrismPssina/h
christinaphamAD/h
cmbirk/h
codeaudit/h
coolcool21/h
cove/h
csillag/h
danjimilk/h
dannyhope/h
daredream/h
davidmcclure/h
dennisplucinik/h
dezynetechnologies/h
diegodlh/h
djcun95/h
donsequitur/h
edsu/h
eiro10/h
emckean/h
ercchy/h
eshellman/h
fangang123/h
fchasen/h
fcrimins/h
fhirsch/h
ficolo/h
fragkopoulos/h
gauravkeerthi/h
geass/h
gergely-ujvari/h
gitter-badger/h
gnott/h
gobengo/h
gorinovic/h
gus3000/h
hashin/h
helemaalbigt/h
hmstepanek/h
hwasiti/h
hylhero/h
hyperstudio/h
iHDeveloper/h
imeysam/h
jackspaceBerkeley/h
jarey/h
jasdeep/h
jason790/h
jasonzou/j
jazahn/h
jccr/h
jean/h
jeka57/h
jeremydean/h
jermnelson/h
jibe-b/h
jnishiyama/h
jojksd/h
jpadilla/h
jtremback/h
judell/h
juli-so/h
kabacs/h
karissa/h
kaushikvijay/h
kaydoh/h
kill4uk/h
klopiinas/h
klrkdekira/h
koulihong311/h
krassif/h
krstnkngs/h
leoqmp/h
linhua55/h
lucadealfaro/h
lyspooner/h
lyzadanger/h
m1yag1/h
magee/h
mambocab/h
manunymous/h
maraino/h
mari-ja/h
markbarratt/h
martinq/h
mbbaig/h
mcarv63/h
meawoppl/h
meflyup/h
metasj/h
mgasner/h
mgax/h
mollycr/h
mrchrisadams/h
mrienstra/h
mshavlovsky/h
muddasani/h
nagyist/hyphothesis-h
nagyistoce/hypothesis-h
nanxio/h
neozhangthe1/h
ningyifan/h
nkingsley/h
nlholdem/h
nlisgo/h
noscripter/h
nshkuro/h
odnodn/h
oliversauter/h
openbizgit/h
opengovfoundation/h
openstax/hypothesis-server
ouroboros8/h
pablomarti/h
pamo/h
philipn/h
philschatz/h
pinballwonder/h
plainspace/h
raowl/h
rickyhan/h
rmoorman/h
rmtsukuru/h
robertknight/h
rowhit/h
rsarxiv/h
saakaifoundry/h
samrose/h
scharf/h
shepazu/h
sherah/h
shofheinz/h
soapdog/h
ssin122/test-h
st-fresh/h
stuk88/h
sylvanmist/h
tetratorus/h
tilgovi/h
tomnar/h
trivenews/h
truthadjustr/h
utngz/h
voidfiles/h
wenchen/h
yargevad/h
yumatch/h
zshen777/h
Nothing to show
Commits on May 19, 2015
Allow long function and method names for tests only
Only test_* functions and methods are allowed longer names. Use the
pylint default for others.

Like the pylint defaults this also disallows capital letters in all
function and method names, which we had previously allowed.
Reenable pylint's "except doesn't do anyting" warning
@tilgovi says we should at least log these exceptions
Re-enable PyLint's "method could be a function" warning
But disable for specific test modules that were triggering it.
Commits on May 20, 2015
Add URL params to /stream.atom
Just accepts the same URL params as /api/search.

Ensure that the params always contain a "limit" and that it's always
<= 1000.

Also add unit tests for the stream_atom() view callable (there weren't
any)
Revert "Merge pull request #2239 from hypothesis/features-cleanup"
This reverts commit f6787df, reversing
changes made to 29d9753.

I'm afraid I've had to revert this:

- it introduced a crashing bug on master (see
  #2131 (comment))
- feature flags are no longer accessible by view functions (the
  configurator object is not available from the request), thus this
  blocks #2131
Commits on May 21, 2015
Commits on May 22, 2015
Use container build infrastructure for tests
As of 418d0fc we no longer need to use the old Travis build system.
Using container-based build infrastructure results in faster build
times.
Upgrade to pip 7 and cache pip dependencies
Pip 7 includes support for automatically building wheels of installed
dependencies and caching them[1]. When combined with Travis caching,
this can result in major build speedups[2].

[1]: https://mail.python.org/pipermail/distutils-sig/2015-May/026474.html
[2]: https://github.com/nickstenning/travis-pip-cache
Remove unneeded dependency
This was included to make prospector reporting not complain
unnecessarily about the absence of the package from the import path. As
we're no longer running prospector on Travis, it's no longer needed.
No need to install SASS separately any more
SASS was installed separately because it was version pinned to avoid a
bug in the 3.4.6 released version. This is no longer necessary.
Don't run Python tests twice
This commit adds the frontend tests to `make cover`, so that we don't
need to run the Python tests twice on every build.

When we have it, we can add coverage reporting for frontend tests to the
Makefile.
Commits on May 26, 2015
Rename Hacking guide -> Contributor's guide
More friendly terminology imo. Did not change the URL so as not to break
links.
Fix broken links in README
- Make both IRC links point to IRCCloud
- Make installation guide and contributor's guide link to readthedocs instead
  of GitHub
- Fix development mailing list link to point to Google Group
Add pyroma dependency
Need to run prospector
Merge pull request #2258 from hypothesis/silence-horus-sqlalchemy-war…
…nings

Silence sqlalchemy warnings caused by horus
Add sphinx-httpdomain dependency
Needed to build the docs
Commits on May 27, 2015
Add ability to generate via links from the sidebar.
-Use document plugin to get canonical url for sharing.
-Hide share this page link on stream.
-Introduce Toolbar share icon
-Add social media icons to icomoon
-Generate via uri in the via-dialog directive
-Break out VIA url to separate configu file
-Add sharing via Facebook, Twitter, Google plus, and email
-Make account dialog and via link dialog code consistent
Fine tuning:
- Rename viaLinkDialog to shareDialog
- Add information about sharing to the help page.
- Cleaning up minor styling issues on help page.
- Make share dialog button into a toggle.
- Make share icon same size as the search icon.
View
@@ -0,0 +1,9 @@
coffeescript:
enabled: false
javascript:
config_file: .jshintrc
ignore_file: .jshintignore
ruby:
enabled: false
scss:
enabled: false
View
@@ -0,0 +1,7 @@
build/
docs/
node_modules/
h/browser/chrome/content/
h/static/scripts/vendor/
h/templates/
**/*.min.js
View
@@ -0,0 +1,28 @@
{
"bitwise": true,
"curly": true,
"eqeqeq": true,
"forin": true,
"freeze": true,
"latedef": "nofunc",
"maxcomplexity": 10,
"strict": true,
"undef": true,
"unused": true,
"globals": {
"chrome": false,
"h": false,
"Promise": false,
"angular": false,
"chai": false,
"moment": false,
"jstz": false,
"sinon": false,
"JSON": false
},
"browser": true,
"browserify": true,
"mocha": true,
"phantom": true,
"jquery": true
}
View
@@ -9,9 +9,6 @@ pylint:
enable:
- relative-import
disable:
- C0111 # Missing %s docstring
- R0201 # Method could be a function
- W0704 # Except doesn't do anything
- R0903 # Too few public methods
- W0142 # Used * or ** magic
options:
@@ -35,12 +32,8 @@ pylint:
# By default PyLint doesn't allow function or method names longer than 30
# chars, but lots of test methods do (and should) have longer names. It'd
# be better to restrict this setting to tests only.
#
# This also allows capital letters in function and method names (just not
# at the start), to allow names like
# test_instance_conforms_to_IDataManager().
method-rgx: '[a-z_][a-zA-Z0-9_]{2,64}$'
function-rgx: '[a-z_][a-zA-Z0-9_]{2,64}$'
method-rgx: '((test_[a-z0-9_]{2,59})|([a-z_][a-z0-9_]{2,30}))$'
function-rgx: '((test_[a-z0-9_]{2,59})|([a-z_][a-z0-9_]{2,30}))$'
pep257:
disable:
- D100 # Missing docstring in public module
View
@@ -1,17 +1,18 @@
# use Travis container build infrastructure
sudo: false
language:
- python
python:
- '2.7'
install:
- gem install sass
- gem install compass
- pip install coveralls
- pip install mandrill
- pip install pyramid_redis_sessions
- pip install -U pip wheel
- pip install coveralls pyramid_redis_sessions
- make
script:
- make test
# Run all tests, with coverage if possible
- make cover
# Test building browser extensions
- hypothesis-buildext conf/testext.ini chrome --base http://localhost
- hypothesis-buildext conf/testext.ini firefox --base http://localhost
- "hypothesis-buildext conf/production.ini chrome
@@ -22,6 +23,10 @@ script:
--assets resource://notarealkey/hypothesis/data"
after_success:
- coveralls
cache:
directories:
- node_modules
- $HOME/.cache/pip
notifications:
irc:
channels:
View
@@ -1,3 +1,20 @@
0.4.1 (2015-05-21)
==================
- Add NIPSA flag to user table (migration needed!)
- Upgrade to Annotator v1.2.x tip (6536160)
- Hide the widget panel until ready for input (#2207)
- Fix UI z-index to actual maximum (#1909)
- Change annotation card action from 'share' to 'link'
- Add a client-side error when saving an annotation fails
- Snap the sidebar closed as well as open (#2162)
- Put NSQ usage behind feature flag. The API no longer requires NSQ.
- For development, disable WebSocket streaming, email notifications, and NSQ.
- Lots of linting.
- Added support for URL parameters to the Atom feed at ``/stream.atom``.
For example: ``/stream.atom?user=seanh`` or
``/stream.atom?user=seanh&tags=foo,bar``.
0.4.0 (2015-05-05)
==================
View
@@ -40,6 +40,8 @@ test:
cover:
@python setup.py test --cov
@"$$(npm bin)"/karma start h/static/scripts/karma.config.js --single-run
@"$$(npm bin)"/karma start h/browser/chrome/karma.config.js --single-run
lint:
@prospector
View
@@ -11,7 +11,7 @@ Hypothesis
:target: https://landscape.io/github/hypothesis/h/master
:alt: Code Health
.. image:: https://img.shields.io/badge/IRC-%23hypothes.is-blue.svg
:target: https://www.irccloud.com/invite?channel=%23hypothes.is&amp;hostname=irc.freenode.net&amp;port=6697&amp;ssl=1
:target: `#hypothes.is`_
:alt: #hypothes.is IRC channel
@@ -33,15 +33,16 @@ Hypothesis is a tool for annotating the web.
Installation and deployment
---------------------------
See `<docs/INSTALL.rst>`_ for instructions on deploying h in a production
environment.
See the
`Installation guide <https://h.readthedocs.org/en/latest/INSTALL.html>`_ for
instructions on deploying h in a production environment.
Development
-----------
See `<docs/hacking/install.rst>`_ for instructions on setting up a development
environment for h.
See the `Contributor's guide`_ for instructions on setting up a development
environment and contributing to h.
Community
@@ -50,16 +51,16 @@ Community
Join us in `#hypothes.is`_ on freenode_ for discussion.
If you'd like to contribute to the project, you should also `subscribe`_ to the
`development mailing list`_ and read our `contributor's guide`_. Then consider
`development mailing list`_ and read our `Contributor's guide`_. Then consider
getting started on one of the issues that are ready for work. Issues tagged with
the label '`New Contributor Friendly`_' are ideal for those just getting
started.
.. _#hypothes.is: http://webchat.freenode.net/?channels=hypothes.is
.. _#hypothes.is: https://www.irccloud.com/invite?channel=%23hypothes.is&amp;hostname=irc.freenode.net&amp;port=6667&amp;ssl=1
.. _freenode: http://freenode.net/
.. _subscribe: mailto:dev+subscribe@list.hypothes.is
.. _development mailing list: http://list.hypothes.is/archive/
.. _contributor's guide: CONTRIBUTING.rst
.. _development mailing list: https://groups.google.com/a/list.hypothes.is/forum/#!forum/dev
.. _Contributor's guide: https://h.readthedocs.org/en/latest/hacking/
.. _New Contributor Friendly: https://github.com/hypothesis/h/issues?q=is%3Aopen+is%3Aissue+label%3A%22New+Contributor+Friendly%22
View
@@ -58,7 +58,6 @@ secret_key: notverysecretafterall
sqlalchemy.url: sqlite:///.h.db
jinja2.extensions: h.jinja_extensions:IncludeRawExtension
jinja2.filters: json = json.dumps
webassets.base_dir: h:static
webassets.base_url: assets
View
@@ -57,7 +57,6 @@ sqlalchemy.url: sqlite:///.h.db
# http://docs.pylonsproject.org/projects/pyramid-jinja2/en/latest/index.html#jinja2-extensions
jinja2.extensions: h.jinja_extensions:IncludeRawExtension
jinja2.filters: json = json.dumps
# Static asset configuration -- see webassets documentation
# Until the next pyramid_webassets, don't change these.
View
@@ -1,5 +1,5 @@
Hacking guide
#############
Contributor's guide
###################
The following sections document how to setup a development environment for h
and how to contribute code or documentation to the project.
View
@@ -22,6 +22,22 @@
from sqlalchemy.ext.declarative import declared_attr
# Silence some SQLAlchemy warnings caused by the Horus library.
import warnings
warnings.filterwarnings("ignore", message=r".*Unmanaged access of declarative "
"attribute __tablename__ from "
"non-mapped class UserGroupMixin")
warnings.filterwarnings("ignore", message=r".*Unmanaged access of declarative "
"attribute __tablename__ from "
"non-mapped class GroupMixin")
warnings.filterwarnings("ignore", message=r".*Unmanaged access of declarative "
"attribute __tablename__ from "
"non-mapped class ActivationMixin")
warnings.filterwarnings("ignore", message=r".*Unmanaged access of declarative "
"attribute __tablename__ from "
"non-mapped class UserMixin")
class Activation(ActivationMixin, Base):
def __init__(self, *args, **kwargs):
super(Activation, self).__init__(*args, **kwargs)
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
# pylint: disable=no-self-use
from __future__ import unicode_literals
import pytest
@@ -1,3 +1,4 @@
# pylint: disable=no-self-use
from mock import patch, Mock, MagicMock
import pytest
View
@@ -57,12 +57,12 @@ def create_app(global_config, **settings):
config.add_tween('h.tweens.csrf_tween_factory')
if config.feature('accounts'):
if config.registry.feature('accounts'):
config.set_authentication_policy(session_authn)
config.set_authorization_policy(acl_authz)
config.include('h.accounts')
if config.feature('api'):
if config.registry.feature('api'):
api_app = create_api(settings)
api_view = wsgiapp2(api_app)
config.add_view(api_view, name='api', decorator=strip_vhm)
@@ -71,16 +71,16 @@ def create_app(global_config, **settings):
config.add_view(api_view, name='api', decorator=strip_vhm,
route_name='index')
if config.feature('claim'):
if config.registry.feature('claim'):
config.include('h.claim')
if config.feature('queue'):
if config.registry.feature('queue'):
config.include('h.queue')
if config.feature('streamer'):
if config.registry.feature('streamer'):
config.include('h.streamer')
if config.feature('notification'):
if config.registry.feature('notification'):
config.include('h.notification')
return config.make_wsgi_app()
@@ -106,7 +106,7 @@ def create_api(global_config, **settings):
config.include('h.api.db')
config.include('h.api.views')
if config.feature('queue'):
if config.registry.feature('queue'):
config.include('h.queue')
config.include('h.api.queue')
View
@@ -92,24 +92,10 @@ def asset_response_subscriber(event):
event.response.headers['Access-Control-Allow-Origin'] = '*'
def setup_jinja2_enviroment(config):
jinja2_env = config.get_jinja2_environment('__webassets__')
jinja2_env.globals['feature'] = config.feature
jinja2_env.variable_start_string = '"{{'
jinja2_env.variable_end_string = '}}"'
webassets_env = config.get_webassets_env()
webassets_env.config['jinja2_env'] = jinja2_env
def includeme(config):
config.registry.settings.setdefault('webassets.bundles', 'h:assets.yaml')
config.include('pyramid_webassets')
config.include('pyramid_jinja2')
config.add_jinja2_renderer('__webassets__')
config.action(None, setup_jinja2_enviroment, args=(config,), order=1)
# Set up a predicate and subscriber to set CORS headers on asset responses
config.add_subscriber_predicate('asset_request', AssetRequest)
config.add_subscriber(
View
@@ -101,13 +101,9 @@ config:
filters: uglifyjs
contents:
- output: scripts/config.js
filters:
- browserify
- jinja2
filters: browserify
contents:
- h:static/scripts/config/features.coffee
depends:
- h:static/scripts/config/*
- h:static/scripts/config/accounts.coffee
# Application
@@ -1,3 +1,4 @@
# pylint: disable=no-self-use
import mock
import pytest
View
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
# pylint: disable=no-self-use
"""
The `conftest` module is automatically loaded by py.test and serves as a place
to put fixture functions that are useful application-wide.
View
@@ -53,6 +53,4 @@ def _features_from_settings(settings, prefix=__package__ + '.feature.'):
def includeme(config):
def directive(config, name):
return get_client(config)(name)
config.add_directive('feature', directive)
config.registry.feature = get_client(config)
View
@@ -1,7 +1,5 @@
from . import atom_feed
JINJA2_FILE_EXTENSIONS = ['.js', '.txt', '.html', '.xml']
class AnnotationsAtomRendererFactory(object):
@@ -39,18 +37,7 @@ def __call__(self, value, system):
return atom_feed.render_annotations(request=system["request"], **value)
def setup_jinja2_environment(config, extension):
env = config.get_jinja2_environment(extension)
env.globals['feature'] = config.feature
def includeme(config):
config.add_renderer(
name="annotations_atom",
factory="h.renderers.AnnotationsAtomRendererFactory")
config.include('pyramid_jinja2')
for extension in JINJA2_FILE_EXTENSIONS:
args = (config, extension)
config.action(None, setup_jinja2_environment, args=args, order=1)
config.add_jinja2_renderer(extension)
Oops, something went wrong.

No commit comments for this range