This adds simple integration with the new baseplate library so we can
use thrift clients. Further down the line we can hopefully replace
config parsing and metrics with the baseplate equivalents.
This check was in place for c20db7e11d to make
sure that we were using a new enough version of distribute to handle
the "cythonize" command. distribute was a now-deprecated fork of setuptools,
and the versions of setuptools on precise and trusty are new enough to not
need this check.
http://pylons-webframework.readthedocs.org/en/latest/upgrading.html
This requires several code changes:
* pylons `config` option must be explicitly passed during setup
* the pylons global has been renamed from `g` to `app_globals`
* the pylons global has been renamed from `c` to `tmpl_context`
* set pylons.strict_tmpl_context = False (instead of pylons.strict_c)
* redirect_to() has been swapped for redirect()
* must implement `ErrorDocuments` middleware ourselves
pylons 1.0 also required an upgrade of routes from 1.11 to 1.12. This
required the following changes:
* set Mapper.minimization = True (the default value changed)
* set Mapper.explicit = False (the default value changed)
Change RedditTest so that it maintains global state and will only fire up the app
context a single time. Inject mocks for the database manager and avoid making
calls to the database during thing initialization.
This reverts commit 6c8999d4ba8fc0d494428e6cc4e8c3f14aaf13ec.
That commit was preventing plugin hooks from registering in
reddit-run and reddit-shell contexts.
Change RedditTest so that it maintains global state and will only fire up the app
context a single time. Inject mocks for the database manager and avoid making
calls to the database during thing initialization.
We'd like to display multiple sizes of thumbnails for the mobile apps, rather
than just the one size we currently use. The first step to this is storing the
source image, rather than just the one resized version, so we can create all
the differently-sized versions from it.
The resizing is implemented using the provider system because that gives us
flexibility - just as open-source and dev installs can use local file storage
rather than S3, so they can use a no-op resizer or one that pulls in correct
image sizes from a placeholder image site.
Separate search logic into provider system. Move existing logic into a
cloudsearch implementation of a search provider, and add a Solr
implementation of a search provider.
Ok, now I'm getting some angst in my commit messages like my
predecessors had. I understand now. It's a terrible burden. Why must
the calendar progress? Why must numbers increment? The world is
forever turning.
The future is here.
It is 2014.
The aim of this patch is to allow a mostly equivalent subset of CSS
through as the cssutils-based parser did.
The subset of valid properties represented in this are the entirety of
CSS2.1 plus a handful of newer ones that are already in active use on
reddit.
Several IE hacks like the "filter" property, "_height", etc. are no
longer allowed.
This media provider is for simple single-server installations where an
HTTP server running on the same machine handles serving of the static
media files.
An appropriate setup with nginx is now the default in the new install
script.
This removes the need to run `make pyx` before running setup.py on an
initial install which had stopped working due to various imports needed
for the makefile. Additionally, cythonize is capable of tracking
dependencies the cython files have, such as external headers or other
cython files.
I had to upgrade setuptools to distribute to get v0.6.16 which is the
minimum required to properly use `cythonize` due to a bug in setuptools:
https://bitbucket.org/tarek/distribute/issue/195/
PyPI only has versions for Python 2.3 and 2.4. Modern installs that
don't use our PPA to get a debianized copy of this library fail when
trying to resolve the setup.py install_requires dependencies. This fixes
the problem by using a reddit-hosted tarball of the 0.4 source (taken
directly from the source SVN repo).
The paste-supplied gzip middleware is primarily for testing and is
insufficient in that it:
1) is unable to require a minimum size for gzipping
2) does not correctly add the "Vary: Accept-Encoding" header
it is also somewhat difficult to add those features given its structure.
This setup assumes the existence of a `test.ini` file. No current tests
mutate backend state, but that may happen in the future so don't make
your test.ini point at production!