Compare commits

...

41 Commits

Author SHA1 Message Date
Kenneth Reitz 9a227e6c73 v24 2013-07-17 08:38:47 -04:00
Kenneth Reitz ddc9c24d34 deep-rm for normal builds 2013-07-17 08:34:14 -04:00
Kenneth Reitz 42488a2be7 deep-rm 2013-07-17 08:33:36 -04:00
Kenneth Reitz 839486c25b make things pretty, skip anvil build for normal runs 2013-07-17 08:25:17 -04:00
Kenneth Reitz 5d56200179 bugfix for legacy apps + usr_env_compile 2013-07-16 16:54:33 -04:00
Kenneth Reitz fef1d4f7c0 instrumentation 2013-07-16 15:10:49 -04:00
Kenneth Reitz 43defcc17e Revert "skip anvil steps that slow things down"
This reverts commit f78460e2a7.
2013-07-16 00:30:00 -04:00
Kenneth Reitz f78460e2a7 skip anvil steps that slow things down 2013-06-26 14:00:13 -04:00
Kenneth Reitz 3448923b69 collectstatic logic improvements 2013-06-26 13:58:00 -04:00
Kenneth Reitz 58a13bc268 Merge pull request #93 from bacongobbler/master
Add Django v1.5 testing support with Heroku
2013-06-05 13:09:42 -07:00
bacongobbler c18038f986 added Django v1.5 tests 2013-05-22 17:50:52 -07:00
bacongobbler d4356a1f4c added requirements.txt with django v1.5 2013-05-22 17:41:34 -07:00
bacongobbler 3c8f478b65 added django 1.5 skeleton for testing 2013-05-22 17:37:12 -07:00
Kenneth Reitz 23493302e6 Update Readme.md 2013-04-30 13:31:53 -03:00
Kenneth Reitz 35ceaf728d Merge pull request #90 from buildingenergy/master
Store changes made in post_compile in the cache.
2013-04-27 17:59:46 -07:00
Steven Skoczen 5c9412fc33 moves cache storage until after the post_compile hook. 2013-04-26 16:27:00 -07:00
Kenneth Reitz 825c9329eb Merge pull request #89 from gregburek/use-pg-dev-db
Remove shared db from release and add heroku-postgresql dev db
2013-04-23 23:53:21 -07:00
gregburek 9ebb990716 Remove shared db and add heroku-postgresql dev db 2013-04-23 23:50:54 -07:00
Kenneth Reitz f964209589 Merge remote-tracking branch 'origin/master' 2013-04-10 08:01:34 -07:00
Kenneth Reitz 2e699d392e Merge pull request #86 from manojlds/master
Fixing the compile hook scripts paths
2013-04-10 07:54:51 -07:00
manojlds 431ecee509 Using the bin path at root of pwd
The compile script is run with the root of the git repo of the project
being pushed as the working directory.

$BIN_DIR is pointing to the bin directory of the buildpack which is not
where you would want to put the pre and post compile hooks.

Changing back to the old convention of looking for the hooks from the
bin directory at the root of the project.
2013-04-10 15:06:51 +05:30
Kenneth Reitz 90696215ae python-2.7.4 default version 2013-04-09 15:03:27 -07:00
Kenneth Reitz 5b55261700 Merge pull request #73 from incuna/hooks-fix
Use $BIN_DIR in hooks.
2013-04-09 10:25:13 -07:00
Kenneth Reitz 727ff90acf Merge pull request #83 from aljosa/distribute_version_upgrade
upgraded distribute to v0.6.36.
2013-04-08 15:10:22 -07:00
Aljosa Mohorovic 0060fdacd8 upgraded distribute to v0.6.36.
fixes pip v1.3.1 installation issue
2013-04-08 18:00:53 +02:00
Kenneth Reitz 85ad1fa988 Merge pull request #78 from streeter/master
Allow pylibmc to be commented out in the requirements file
2013-03-21 00:53:49 -07:00
Kenneth Reitz 56c022ca41 remove bunk files 2013-03-20 03:44:19 -07:00
Chris Streeter f68e0989ea Allow pylibmc to be disabled. 2013-03-12 22:24:08 -07:00
Kenneth Reitz 7381117bb8 working dir fix 2013-03-07 23:11:06 -05:00
Kenneth Reitz c9209ebb3d fixes and cleanups 2013-03-07 21:10:46 -05:00
Kenneth Reitz 35345d11f5 run hash after install 2013-03-07 21:05:59 -05:00
Kenneth Reitz 6ee17b4c26 debug 2013-03-07 21:02:54 -05:00
Kenneth Reitz 86267f93a1 hash -r 2013-03-07 21:01:09 -05:00
Kenneth Reitz 50642e7069 check for fresh python before we try to run pip 2013-03-07 21:00:01 -05:00
Kenneth Reitz 8349f291d2 print updated pip version at install time 2013-03-07 20:52:36 -05:00
Kenneth Reitz 1aad21382e update pip if it is out of date 2013-03-07 20:50:51 -05:00
Kenneth Reitz 686ee087a5 use new pip/distribute 2013-03-07 20:40:32 -05:00
Kenneth Reitz f137ba213a sanity check 2013-03-07 20:38:06 -05:00
Kenneth Reitz 5ae51010cc update pip to v0.3.1 2013-03-07 20:37:40 -05:00
Kenneth Reitz 29d8e7f670 update distribute to v0.6.35 2013-03-07 20:36:03 -05:00
Marc Tamlyn 5be3e0ce52 Use $BIN_DIR in hooks. 2013-01-11 10:54:05 +00:00
255 changed files with 8814 additions and 8769 deletions
+2 -2
View File
@@ -49,6 +49,6 @@ You can also provide arbitrary releases Python with a `runtime.txt` file.
Runtime options include: Runtime options include:
- python-2.7.3 - python-2.7.4
- python-3.3.0 - python-3.3.1
- pypy-1.9 (experimental) - pypy-1.9 (experimental)
+122 -46
View File
@@ -25,12 +25,30 @@ LEGACY_TRIGGER="lib/python2.7"
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh" PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
# Python version. This will be used in the future to specify custom Pythons. # Python version. This will be used in the future to specify custom Pythons.
DEFAULT_PYTHON_VERSION="python-2.7.3" DEFAULT_PYTHON_VERSION="python-2.7.4"
PYTHON_EXE="/app/.heroku/python/bin/python" PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="1.3.1"
DISTRIBUTE_VERSION="0.6.36"
# Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
LOGPLEX_KEY="t.b396af7f-ad75-4643-8b9e-ebb288acc624"
export BPWATCH_STORE_PATH=$CACHE_DIR/bpwatch.json
BUILDPACK_VERSION=v24
# Support Anvil Build_IDs
[ ! "$REQUEST_ID" ] && REQUEST_ID=$SLUG_ID
# Sanitizing environment variables. # Sanitizing environment variables.
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH
bpwatch init $LOGPLEX_KEY
bpwatch build python $BUILDPACK_VERSION $REQUEST_ID
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
bpwatch start compile
# We'll need to send these statics to other scripts we `source`. # We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
@@ -42,11 +60,19 @@ APP_DIR='/app'
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
# Copy Anvil app dir to temporary storage... # Copy Anvil app dir to temporary storage...
mkdir -p $TMP_APP_DIR bpwatch start anvil_appdir_stage
deep-mv $APP_DIR $TMP_APP_DIR if [ "$SLUG_ID" ]; then
mkdir -p $TMP_APP_DIR
deep-mv $APP_DIR $TMP_APP_DIR
else
deep-rm $APP_DIR
fi
bpwatch stop anvil_appdir_stage
# Copy Application code in. # Copy Application code in.
deep-mv $BUILD_DIR $APP_DIR bpwatch start appdir_stage
deep-mv $BUILD_DIR $APP_DIR
bpwatch stop appdir_stage
# Set new context. # Set new context.
ORIG_BUILD_DIR=$BUILD_DIR ORIG_BUILD_DIR=$BUILD_DIR
@@ -63,7 +89,9 @@ export LD_LIBRARY_PATH=/app/.heroku/vendor/lib
cd $BUILD_DIR cd $BUILD_DIR
# Experimental pre_compile hook. # Experimental pre_compile hook.
source $BIN_DIR/steps/hooks/pre_compile bpwatch start pre_compile
source $BIN_DIR/steps/hooks/pre_compile
bpwatch stop pre_compile
# If no requirements given, assume `setup.py develop`. # If no requirements given, assume `setup.py develop`.
if [ ! -f requirements.txt ]; then if [ ! -f requirements.txt ]; then
@@ -81,13 +109,17 @@ fi
mkdir -p $CACHE_DIR mkdir -p $CACHE_DIR
# Purge "old-style" virtualenvs. # Purge "old-style" virtualenvs.
[ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include bpwatch start clear_old_venvs
[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src [ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
bpwatch stop clear_old_venvs
# Restore old artifacts from the cache. # Restore old artifacts from the cache.
for dir in $CACHED_DIRS; do bpwatch start restore_cache
cp -R $CACHE_DIR/$dir . &> /dev/null || true for dir in $CACHED_DIRS; do
done cp -R $CACHE_DIR/$dir . &> /dev/null || true
done
bpwatch stop restore_cache
set +e set +e
# Create set-aside `.heroku` folder. # Create set-aside `.heroku` folder.
@@ -102,8 +134,10 @@ PYTHON_VERSION=$(cat runtime.txt)
# Install Python. # Install Python.
if [ -f .heroku/python-version ]; then if [ -f .heroku/python-version ]; then
if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
puts-step "Found $(cat .heroku/python-version), removing." bpwatch start uninstall_python
rm -fr .heroku/python puts-step "Found $(cat .heroku/python-version), removing."
rm -fr .heroku/python
bpwatch stop uninstall_python
else else
SKIP_INSTALL=1 SKIP_INSTALL=1
fi fi
@@ -111,62 +145,86 @@ fi
if [ ! "$SKIP_INSTALL" ]; then if [ ! "$SKIP_INSTALL" ]; then
puts-step "Preparing Python runtime ($PYTHON_VERSION)" bpwatch start install_python
curl http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2 -s | tar jx &> /dev/null puts-step "Preparing Python runtime ($PYTHON_VERSION)"
if [[ $? != 0 ]] ; then curl http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2 -s | tar jx &> /dev/null
puts-warn "Requested runtime ($PYTHON_VERSION) was not found." if [[ $? != 0 ]] ; then
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support" puts-warn "Requested runtime ($PYTHON_VERSION) was not found."
exit 1 puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
fi exit 1
mv python .heroku/python fi
mv python .heroku/python
bpwatch stop install_python
# Record for future reference. # Record for future reference.
echo $PYTHON_VERSION > .heroku/python-version echo $PYTHON_VERSION > .heroku/python-version
WORKING_DIR=$(pwd) FRESH_PYTHON=true
# Prepare it for the real world
puts-step "Installing Distribute (0.6.34)"
cd $ROOT_DIR/vendor/distribute-0.6.34/
python setup.py install &> /dev/null
cd $WORKING_DIR
puts-step "Installing Pip (1.2.1)"
cd $ROOT_DIR/vendor/pip-1.2.1/
python setup.py install &> /dev/null
cd $WORKING_DIR
hash -r hash -r
else else
puts-step "Using Python runtime ($PYTHON_VERSION)" puts-step "Using Python runtime ($PYTHON_VERSION)"
fi fi
# If Pip isn't up to date:
if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
WORKING_DIR=$(pwd)
bpwatch start prepare_environment
bpwatch start install_distribute
# Prepare it for the real world
puts-step "Installing Distribute ($DISTRIBUTE_VERSION)"
cd $ROOT_DIR/vendor/distribute-$DISTRIBUTE_VERSION/
python setup.py install &> /dev/null
cd $WORKING_DIR
bpwatch stop install_distribute
bpwatch start install_pip
puts-step "Installing Pip ($PIP_VERSION)"
cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
python setup.py install &> /dev/null
cd $WORKING_DIR
bpwatch stop install_pip
bpwatch stop prepare_environment
fi
set -e set -e
hash -r
# Pylibmc support. # Pylibmc support.
# See [`bin/steps/pylibmc`](pylibmc.html). # See [`bin/steps/pylibmc`](pylibmc.html).
source $BIN_DIR/steps/pylibmc bpwatch start pylibmc_install
source $BIN_DIR/steps/pylibmc
bpwatch stop pylibmc_install
# Install Mercurial if it appears to be required. # Install Mercurial if it appears to be required.
if (grep -Fiq "hg+" requirements.txt) then if (grep -Fiq "hg+" requirements.txt) then
pip install --use-mirrors mercurial | cleanup | indent bpwatch start mercurial_install
/app/.heroku/python/bin/pip install --use-mirrors mercurial | cleanup | indent
bpwatch stop mercurial_install
fi fi
# Install dependencies with Pip. # Install dependencies with Pip.
puts-step "Installing dependencies using Pip (1.2.1)" puts-step "Installing dependencies using Pip ($PIP_VERSION)"
pip install --use-mirrors -r requirements.txt --exists-action=w --src=./.heroku/src | cleanup | indent
[ ! "$FRESH_PYTHON" ] && bpwatch start pip_install
[ "$FRESH_PYTHON" ] && bpwatch start pip_install_first
/app/.heroku/python/bin/pip install --use-mirrors -r requirements.txt --exists-action=w --src=./.heroku/src | cleanup | indent
[ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install
[ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first
# Django collectstatic support. # Django collectstatic support.
source $BIN_DIR/steps/collectstatic bpwatch start collectstatic
source $BIN_DIR/steps/collectstatic
bpwatch stop collectstatic
# ### Finalize # ### Finalize
# #
# Store new artifacts in cache.
for dir in $CACHED_DIRS; do
rm -rf $CACHE_DIR/$dir
cp -R $dir $CACHE_DIR/
done
# Set context environment variables. # Set context environment variables.
set-env PATH '$HOME/.heroku/python/bin:$PATH' set-env PATH '$HOME/.heroku/python/bin:$PATH'
set-env PYTHONUNBUFFERED true set-env PYTHONUNBUFFERED true
@@ -179,9 +237,27 @@ set-default-env PYTHONPATH /app/
# Experimental post_compile hook. # Experimental post_compile hook.
source $BIN_DIR/steps/hooks/post_compile bpwatch start post_compile
source $BIN_DIR/steps/hooks/post_compile
bpwatch stop post_compile
# Store new artifacts in cache.
bpwatch start dump_cache
for dir in $CACHED_DIRS; do
rm -rf $CACHE_DIR/$dir
cp -R $dir $CACHE_DIR/
done
bpwatch stop dump_cache
# ### Fin. # ### Fin.
bpwatch start appdir_commit
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
bpwatch stop appdir_commit
deep-mv $BUILD_DIR $ORIG_BUILD_DIR bpwatch start anvil_appdir_commit
deep-mv $TMP_APP_DIR $APP_DIR if [ "$SLUG_ID" ]; then
deep-mv $TMP_APP_DIR $APP_DIR
fi
bpwatch stop anvil_appdir_commit
bpwatch stop compile
+1 -1
View File
@@ -18,6 +18,6 @@ if [[ $MANAGE_FILE ]]; then
cat <<EOF cat <<EOF
addons: addons:
shared-database:5mb heroku-postgresql:dev
EOF EOF
fi fi
+3 -5
View File
@@ -7,13 +7,11 @@ indent() {
} }
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1) MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1)
MANAGE_FILE=${MANAGE_FILE:2} MANAGE_FILE=${MANAGE_FILE:-fakepath}
if [ -f .heroku/collectstatic_disabled ]; then [ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
DISABLE_COLLECTSTATIC=1
fi
if [ ! "$DISABLE_COLLECTSTATIC" ]; then if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ]; then
set +e set +e
# Check if collectstatic is configured properly. # Check if collectstatic is configured properly.
+1 -1
View File
@@ -16,7 +16,7 @@ VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz
source $BIN_DIR/utils source $BIN_DIR/utils
# If pylibmc exists within requirements, use vendored libmemcached. # If pylibmc exists within requirements, use vendored libmemcached.
if (grep -Fiq "pylibmc" requirements.txt) then if (grep -Eiq "^\s*pylibmc" requirements.txt) then
echo "-----> Noticed pylibmc. Bootstrapping libmemcached." echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
cd .heroku cd .heroku
+6
View File
@@ -20,6 +20,12 @@ testDetectWithEmptyReqs() {
assertCapturedSuccess assertCapturedSuccess
} }
testDetectDjango15() {
detect "django-1.5-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango14() { testDetectDjango14() {
detect "django-1.4-skeleton" detect "django-1.4-skeleton"
assertCapturedEquals "Python" assertCapturedEquals "Python"
-3
View File
@@ -1,3 +0,0 @@
Script started on Wed Dec 19 22:40:46 2012
%
+8
View File
@@ -52,3 +52,11 @@ function deep-mv (){
rm -fr $1/!(tmp) rm -fr $1/!(tmp)
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \; find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
} }
# Does some serious deleting.
function deep-rm (){
rm -fr $1/!(tmp)
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
}
@@ -0,0 +1,156 @@
# Django settings for haystack project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '', # Or path to database file if using sqlite3.
# The following settings are not used with sqlite3:
'USER': '',
'PASSWORD': '',
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}
# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []
# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'America/Chicago'
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True
# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True
# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = ''
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = ''
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
# Make this unique, and don't share it with anybody.
SECRET_KEY = '@w-1$9#jh05!qvbh#1k)c4=w9llcq116f$5(4&s_c)n4@%n=pc'
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'haystack.urls'
# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'haystack.wsgi.application'
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
+17
View File
@@ -0,0 +1,17 @@
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'haystack.views.home', name='home'),
# url(r'^haystack/', include('haystack.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
)
+32
View File
@@ -0,0 +1,32 @@
"""
WSGI config for haystack project.
This module contains the WSGI application used by Django's development server
and any production WSGI deployments. It should expose a module-level variable
named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
this application via the ``WSGI_APPLICATION`` setting.
Usually you will have the standard Django WSGI application here, but it also
might make sense to replace the whole Django WSGI application with a custom one
that later delegates to the Django one. For example, you could introduce WSGI
middleware here, or combine a Django application with an application of another
framework.
"""
import os
# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
# if running multiple sites in the same mod_wsgi process. To fix this, use
# mod_wsgi daemon mode with each site in its own daemon process, or use
# os.environ["DJANGO_SETTINGS_MODULE"] = "haystack.settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "haystack.settings")
# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "haystack.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
@@ -0,0 +1 @@
django==1.5
Vendored Executable
+14
View File
@@ -0,0 +1,14 @@
#!/usr/local/bin/python
import os
import sys
DEFUALT_PATH = '{}.zip'.format(os.path.abspath(__file__))
BPWATCH_DISTRO_PATH = os.environ.get('BPWATCH_DISTRO_PATH', DEFUALT_PATH)
sys.path.insert(0, BPWATCH_DISTRO_PATH)
import bp_cli
bp_cli.main()
BIN
View File
Binary file not shown.
@@ -2,11 +2,33 @@
CHANGES CHANGES
======= =======
---------- ------
Unreleased 0.6.36
---------- ------
+ Issue #341: 0.6.33 fails to build under python 2.4 * Pull Request #35: In `Buildout issue 64
<https://github.com/buildout/buildout/issues/64>`_, it was reported that
under Python 3, installation of distutils scripts could attempt to copy
the ``__pycache__`` directory as a file, causing an error, apparently only
under Windows. Easy_install now skips all directories when processing
metadata scripts.
------
0.6.35
------
Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
how it parses version numbers.
* Issue #278: Restored compatibility with distribute 0.6.22 and setuptools
0.6. Updated the documentation to match more closely with the version
parsing as intended in setuptools 0.6.
------
0.6.34
------
* Issue #341: 0.6.33 fails to build under Python 2.4.
------ ------
0.6.33 0.6.33
@@ -1,6 +1,6 @@
Metadata-Version: 1.1 Metadata-Version: 1.1
Name: distribute Name: distribute
Version: 0.6.34 Version: 0.6.36
Summary: Easily download, build, install, upgrade, and uninstall Python packages Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: http://packages.python.org/distribute Home-page: http://packages.python.org/distribute
Author: The fellowship of the packaging Author: The fellowship of the packaging
@@ -107,9 +107,9 @@ Description: ===============================
Download the source tarball, uncompress it, then run the install command:: Download the source tarball, uncompress it, then run the install command::
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz $ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
$ tar -xzvf distribute-0.6.34.tar.gz $ tar -xzvf distribute-0.6.36.tar.gz
$ cd distribute-0.6.34 $ cd distribute-0.6.36
$ python setup.py install $ python setup.py install
--------------------------- ---------------------------
@@ -238,11 +238,33 @@ Description: ===============================
CHANGES CHANGES
======= =======
---------- ------
Unreleased 0.6.36
---------- ------
+ `Issue #341`_: 0.6.33 fails to build under python 2.4 * Pull Request #35: In `Buildout `issue 64`_
<https://github.com/buildout/buildout/issues/64>`_, it was reported that
under Python 3, installation of distutils scripts could attempt to copy
the ``__pycache__`` directory as a file, causing an error, apparently only
under Windows. Easy_install now skips all directories when processing
metadata scripts.
------
0.6.35
------
Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
how it parses version numbers.
* `Issue #278`_: Restored compatibility with distribute 0.6.22 and setuptools
0.6. Updated the documentation to match more closely with the version
parsing as intended in setuptools 0.6.
------
0.6.34
------
* `Issue #341`_: 0.6.33 fails to build under Python 2.4.
------ ------
0.6.33 0.6.33
@@ -273,8 +295,8 @@ Description: ===============================
* `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3. * `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3.
* `Issue #329`_: Properly close files created by tests for compatibility with * `Issue #329`_: Properly close files created by tests for compatibility with
Jython. Jython.
* Work around Jython bugs `#1980 <http://bugs.jython.org/`issue1980`_>`_ and * Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
`#1981 <http://bugs.jython.org/`issue1981`_>`_. `#1981 <http://bugs.jython.org/issue1981>`_.
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__` * `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
such as numpy does. This change should address such as numpy does. This change should address
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long `virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
@@ -625,19 +647,19 @@ Description: ===============================
========== ==========
* Added Python 3 support; see docs/python3.txt. * Added Python 3 support; see docs/python3.txt.
This closes http://bugs.python.org/setuptools/`issue39`_. This closes http://bugs.python.org/setuptools/issue39.
* Added option to run 2to3 automatically when installing on Python 3. * Added option to run 2to3 automatically when installing on Python 3.
This closes `issue #31`_. This closes `issue #31`_.
* Fixed invalid usage of requirement.parse, that broke develop -d. * Fixed invalid usage of requirement.parse, that broke develop -d.
This closes http://bugs.python.org/setuptools/`issue44`_. This closes http://bugs.python.org/setuptools/issue44.
* Fixed script launcher for 64-bit Windows. * Fixed script launcher for 64-bit Windows.
This closes http://bugs.python.org/setuptools/`issue2`_. This closes http://bugs.python.org/setuptools/issue2.
* KeyError when compiling extensions. * KeyError when compiling extensions.
This closes http://bugs.python.org/setuptools/`issue41`_. This closes http://bugs.python.org/setuptools/issue41.
bootstrapping bootstrapping
============= =============
@@ -647,7 +669,7 @@ Description: ===============================
* Fixed 2.6 dependencies. This closes `issue #50`_. * Fixed 2.6 dependencies. This closes `issue #50`_.
* Make sure setuptools is patched when running through easy_install * Make sure setuptools is patched when running through easy_install
This closes http://bugs.python.org/setuptools/`issue40`_. This closes http://bugs.python.org/setuptools/issue40.
----- -----
0.6.1 0.6.1
@@ -660,9 +682,9 @@ Description: ===============================
This closes `issue #16`_ and `issue #18`_. This closes `issue #16`_ and `issue #18`_.
* zip_ok is now False by default. This closes * zip_ok is now False by default. This closes
http://bugs.python.org/setuptools/`issue33`_. http://bugs.python.org/setuptools/issue33.
* Fixed invalid URL error catching. http://bugs.python.org/setuptools/`issue20`_. * Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20.
* Fixed invalid bootstraping with easy_install installation (`issue #40`_). * Fixed invalid bootstraping with easy_install installation (`issue #40`_).
Thanks to Florian Schulze for the help. Thanks to Florian Schulze for the help.
@@ -746,6 +768,7 @@ Description: ===============================
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269 .. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272 .. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
.. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273 .. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273
.. _`Issue #278`: http://bitbucket.org/tarek/distribute/issue/278
.. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283 .. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283
.. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294 .. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299 .. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
@@ -836,15 +859,7 @@ Description: ===============================
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7 .. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8 .. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9 .. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
.. _`issue1980`: http://bitbucket.org/tarek/distribute/issue/1980 .. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
.. _`issue1981`: http://bitbucket.org/tarek/distribute/issue/1981
.. _`issue2`: http://bitbucket.org/tarek/distribute/issue/2
.. _`issue20`: http://bitbucket.org/tarek/distribute/issue/20
.. _`issue33`: http://bitbucket.org/tarek/distribute/issue/33
.. _`issue39`: http://bitbucket.org/tarek/distribute/issue/39
.. _`issue40`: http://bitbucket.org/tarek/distribute/issue/40
.. _`issue41`: http://bitbucket.org/tarek/distribute/issue/41
.. _`issue44`: http://bitbucket.org/tarek/distribute/issue/44
Keywords: CPAN PyPI distutils eggs package management Keywords: CPAN PyPI distutils eggs package management
@@ -99,9 +99,9 @@ Source installation
Download the source tarball, uncompress it, then run the install command:: Download the source tarball, uncompress it, then run the install command::
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz $ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
$ tar -xzvf distribute-0.6.34.tar.gz $ tar -xzvf distribute-0.6.36.tar.gz
$ cd distribute-0.6.34 $ cd distribute-0.6.36
$ python setup.py install $ python setup.py install
--------------------------- ---------------------------
@@ -1,6 +1,6 @@
Metadata-Version: 1.1 Metadata-Version: 1.1
Name: distribute Name: distribute
Version: 0.6.34 Version: 0.6.36
Summary: Easily download, build, install, upgrade, and uninstall Python packages Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: http://packages.python.org/distribute Home-page: http://packages.python.org/distribute
Author: The fellowship of the packaging Author: The fellowship of the packaging
@@ -107,9 +107,9 @@ Description: ===============================
Download the source tarball, uncompress it, then run the install command:: Download the source tarball, uncompress it, then run the install command::
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz $ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
$ tar -xzvf distribute-0.6.34.tar.gz $ tar -xzvf distribute-0.6.36.tar.gz
$ cd distribute-0.6.34 $ cd distribute-0.6.36
$ python setup.py install $ python setup.py install
--------------------------- ---------------------------
@@ -238,11 +238,33 @@ Description: ===============================
CHANGES CHANGES
======= =======
---------- ------
Unreleased 0.6.36
---------- ------
+ `Issue #341`_: 0.6.33 fails to build under python 2.4 * Pull Request #35: In `Buildout `issue 64`_
<https://github.com/buildout/buildout/issues/64>`_, it was reported that
under Python 3, installation of distutils scripts could attempt to copy
the ``__pycache__`` directory as a file, causing an error, apparently only
under Windows. Easy_install now skips all directories when processing
metadata scripts.
------
0.6.35
------
Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
how it parses version numbers.
* `Issue #278`_: Restored compatibility with distribute 0.6.22 and setuptools
0.6. Updated the documentation to match more closely with the version
parsing as intended in setuptools 0.6.
------
0.6.34
------
* `Issue #341`_: 0.6.33 fails to build under Python 2.4.
------ ------
0.6.33 0.6.33
@@ -273,8 +295,8 @@ Description: ===============================
* `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3. * `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3.
* `Issue #329`_: Properly close files created by tests for compatibility with * `Issue #329`_: Properly close files created by tests for compatibility with
Jython. Jython.
* Work around Jython bugs `#1980 <http://bugs.jython.org/`issue1980`_>`_ and * Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
`#1981 <http://bugs.jython.org/`issue1981`_>`_. `#1981 <http://bugs.jython.org/issue1981>`_.
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__` * `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
such as numpy does. This change should address such as numpy does. This change should address
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long `virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
@@ -625,19 +647,19 @@ Description: ===============================
========== ==========
* Added Python 3 support; see docs/python3.txt. * Added Python 3 support; see docs/python3.txt.
This closes http://bugs.python.org/setuptools/`issue39`_. This closes http://bugs.python.org/setuptools/issue39.
* Added option to run 2to3 automatically when installing on Python 3. * Added option to run 2to3 automatically when installing on Python 3.
This closes `issue #31`_. This closes `issue #31`_.
* Fixed invalid usage of requirement.parse, that broke develop -d. * Fixed invalid usage of requirement.parse, that broke develop -d.
This closes http://bugs.python.org/setuptools/`issue44`_. This closes http://bugs.python.org/setuptools/issue44.
* Fixed script launcher for 64-bit Windows. * Fixed script launcher for 64-bit Windows.
This closes http://bugs.python.org/setuptools/`issue2`_. This closes http://bugs.python.org/setuptools/issue2.
* KeyError when compiling extensions. * KeyError when compiling extensions.
This closes http://bugs.python.org/setuptools/`issue41`_. This closes http://bugs.python.org/setuptools/issue41.
bootstrapping bootstrapping
============= =============
@@ -647,7 +669,7 @@ Description: ===============================
* Fixed 2.6 dependencies. This closes `issue #50`_. * Fixed 2.6 dependencies. This closes `issue #50`_.
* Make sure setuptools is patched when running through easy_install * Make sure setuptools is patched when running through easy_install
This closes http://bugs.python.org/setuptools/`issue40`_. This closes http://bugs.python.org/setuptools/issue40.
----- -----
0.6.1 0.6.1
@@ -660,9 +682,9 @@ Description: ===============================
This closes `issue #16`_ and `issue #18`_. This closes `issue #16`_ and `issue #18`_.
* zip_ok is now False by default. This closes * zip_ok is now False by default. This closes
http://bugs.python.org/setuptools/`issue33`_. http://bugs.python.org/setuptools/issue33.
* Fixed invalid URL error catching. http://bugs.python.org/setuptools/`issue20`_. * Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20.
* Fixed invalid bootstraping with easy_install installation (`issue #40`_). * Fixed invalid bootstraping with easy_install installation (`issue #40`_).
Thanks to Florian Schulze for the help. Thanks to Florian Schulze for the help.
@@ -746,6 +768,7 @@ Description: ===============================
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269 .. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272 .. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
.. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273 .. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273
.. _`Issue #278`: http://bitbucket.org/tarek/distribute/issue/278
.. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283 .. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283
.. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294 .. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299 .. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
@@ -836,15 +859,7 @@ Description: ===============================
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7 .. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8 .. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9 .. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
.. _`issue1980`: http://bitbucket.org/tarek/distribute/issue/1980 .. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
.. _`issue1981`: http://bitbucket.org/tarek/distribute/issue/1981
.. _`issue2`: http://bitbucket.org/tarek/distribute/issue/2
.. _`issue20`: http://bitbucket.org/tarek/distribute/issue/20
.. _`issue33`: http://bitbucket.org/tarek/distribute/issue/33
.. _`issue39`: http://bitbucket.org/tarek/distribute/issue/39
.. _`issue40`: http://bitbucket.org/tarek/distribute/issue/40
.. _`issue41`: http://bitbucket.org/tarek/distribute/issue/41
.. _`issue44`: http://bitbucket.org/tarek/distribute/issue/44
Keywords: CPAN PyPI distutils eggs package management Keywords: CPAN PyPI distutils eggs package management
@@ -49,7 +49,7 @@ except ImportError:
args = [quote(arg) for arg in args] args = [quote(arg) for arg in args]
return os.spawnl(os.P_WAIT, sys.executable, *args) == 0 return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
DEFAULT_VERSION = "0.6.34" DEFAULT_VERSION = "0.6.36"
DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/" DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
SETUPTOOLS_FAKED_VERSION = "0.6c11" SETUPTOOLS_FAKED_VERSION = "0.6c11"
@@ -187,10 +187,11 @@ than ``2.4.1`` (which has a higher release number).
A pre-release tag is a series of letters that are alphabetically before A pre-release tag is a series of letters that are alphabetically before
"final". Some examples of prerelease tags would include ``alpha``, ``beta``, "final". Some examples of prerelease tags would include ``alpha``, ``beta``,
``a``, ``c``, ``dev``, and so on. You do not have to place a dot before ``a``, ``c``, ``dev``, and so on. You do not have to place a dot or dash
the prerelease tag if it's immediately after a number, but it's okay to do before the prerelease tag if it's immediately after a number, but it's okay to
so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` both represent release do so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` and ``2.4-c1`` all
candidate 1 of version ``2.4``, and are treated as identical by setuptools. represent release candidate 1 of version ``2.4``, and are treated as identical
by setuptools.
In addition, there are three special prerelease tags that are treated as if In addition, there are three special prerelease tags that are treated as if
they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version
@@ -216,13 +217,6 @@ a post-release tag, so this version is *newer* than ``0.6a9.dev``.
For the most part, setuptools' interpretation of version numbers is intuitive, For the most part, setuptools' interpretation of version numbers is intuitive,
but here are a few tips that will keep you out of trouble in the corner cases: but here are a few tips that will keep you out of trouble in the corner cases:
* Don't use ``-`` or any other character than ``.`` as a separator, unless you
really want a post-release. Remember that ``2.1-rc2`` means you've
*already* released ``2.1``, whereas ``2.1rc2`` and ``2.1.c2`` are candidates
you're putting out *before* ``2.1``. If you accidentally distribute copies
of a post-release that you meant to be a pre-release, the only safe fix is to
bump your main release number (e.g. to ``2.1.1``) and re-release the project.
* Don't stick adjoining pre-release tags together without a dot or number * Don't stick adjoining pre-release tags together without a dot or number
between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``, between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``,
*not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in *not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in
@@ -239,7 +233,7 @@ but here are a few tips that will keep you out of trouble in the corner cases:
>>> parse_version('1.9.a.dev') == parse_version('1.9a0dev') >>> parse_version('1.9.a.dev') == parse_version('1.9a0dev')
True True
>>> parse_version('2.1-rc2') < parse_version('2.1') >>> parse_version('2.1-rc2') < parse_version('2.1')
False True
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9') >>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
True True
@@ -48,9 +48,9 @@ copyright = u'2009-2011, The fellowship of the packaging'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '0.6.34' version = '0.6.36'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '0.6.34' release = '0.6.36'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
@@ -187,10 +187,11 @@ than ``2.4.1`` (which has a higher release number).
A pre-release tag is a series of letters that are alphabetically before A pre-release tag is a series of letters that are alphabetically before
"final". Some examples of prerelease tags would include ``alpha``, ``beta``, "final". Some examples of prerelease tags would include ``alpha``, ``beta``,
``a``, ``c``, ``dev``, and so on. You do not have to place a dot before ``a``, ``c``, ``dev``, and so on. You do not have to place a dot or dash
the prerelease tag if it's immediately after a number, but it's okay to do before the prerelease tag if it's immediately after a number, but it's okay to
so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` both represent release do so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` and ``2.4-c1`` all
candidate 1 of version ``2.4``, and are treated as identical by setuptools. represent release candidate 1 of version ``2.4``, and are treated as identical
by setuptools.
In addition, there are three special prerelease tags that are treated as if In addition, there are three special prerelease tags that are treated as if
they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version
@@ -216,13 +217,6 @@ a post-release tag, so this version is *newer* than ``0.6a9.dev``.
For the most part, setuptools' interpretation of version numbers is intuitive, For the most part, setuptools' interpretation of version numbers is intuitive,
but here are a few tips that will keep you out of trouble in the corner cases: but here are a few tips that will keep you out of trouble in the corner cases:
* Don't use ``-`` or any other character than ``.`` as a separator, unless you
really want a post-release. Remember that ``2.1-rc2`` means you've
*already* released ``2.1``, whereas ``2.1rc2`` and ``2.1.c2`` are candidates
you're putting out *before* ``2.1``. If you accidentally distribute copies
of a post-release that you meant to be a pre-release, the only safe fix is to
bump your main release number (e.g. to ``2.1.1``) and re-release the project.
* Don't stick adjoining pre-release tags together without a dot or number * Don't stick adjoining pre-release tags together without a dot or number
between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``, between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``,
*not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in *not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in
@@ -239,7 +233,7 @@ but here are a few tips that will keep you out of trouble in the corner cases:
>>> parse_version('1.9.a.dev') == parse_version('1.9a0dev') >>> parse_version('1.9.a.dev') == parse_version('1.9a0dev')
True True
>>> parse_version('2.1-rc2') < parse_version('2.1') >>> parse_version('2.1-rc2') < parse_version('2.1')
False True
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9') >>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
True True
@@ -1936,7 +1936,7 @@ replace = {'pre':'c', 'preview':'c','-':'final-','rc':'c','dev':'@'}.get
def _parse_version_parts(s): def _parse_version_parts(s):
for part in component_re.split(s): for part in component_re.split(s):
part = replace(part,part) part = replace(part,part)
if part in ['', '.']: if not part or part=='.':
continue continue
if part[:1] in '0123456789': if part[:1] in '0123456789':
yield part.zfill(8) # pad for numeric comparison yield part.zfill(8) # pad for numeric comparison
@@ -1979,6 +1979,8 @@ def parse_version(s):
parts = [] parts = []
for part in _parse_version_parts(s.lower()): for part in _parse_version_parts(s.lower()):
if part.startswith('*'): if part.startswith('*'):
if part<'*final': # remove '-' before a prerelease tag
while parts and parts[-1]=='*final-': parts.pop()
# remove trailing zeros from each series of numeric parts # remove trailing zeros from each series of numeric parts
while parts and parts[-1]=='00000000': while parts and parts[-1]=='00000000':
parts.pop() parts.pop()
@@ -20,7 +20,7 @@ try:
except Exception: except Exception:
pass pass
VERSION = '0.6.34' VERSION = '0.6.36'
def get_next_version(): def get_next_version():
digits = map(int, VERSION.split('.')) digits = map(int, VERSION.split('.'))
@@ -50,7 +50,7 @@ def get_mercurial_creds(system='https://bitbucket.org', username=None):
# todo: consider getting this from .hgrc # todo: consider getting this from .hgrc
username = username or getpass.getuser() username = username or getpass.getuser()
keyring_username = '@@'.join((username, system)) keyring_username = '@@'.join((username, system))
system = '@'.join((keyring_username, 'Mercurial')) system = 'Mercurial'
password = ( password = (
keyring.get_password(system, keyring_username) keyring.get_password(system, keyring_username)
if 'keyring' in globals() if 'keyring' in globals()
@@ -46,7 +46,7 @@ exec(init_file.read(), d)
init_file.close() init_file.close()
SETUP_COMMANDS = d['__all__'] SETUP_COMMANDS = d['__all__']
VERSION = "0.6.34" VERSION = "0.6.36"
from setuptools import setup, find_packages from setuptools import setup, find_packages
from setuptools.command.build_py import build_py as _build_py from setuptools.command.build_py import build_py as _build_py
@@ -136,7 +136,7 @@ if _being_installed():
# return contents of reStructureText file with linked issue references # return contents of reStructureText file with linked issue references
def _linkified(rst_path): def _linkified(rst_path):
bitroot = 'http://bitbucket.org/tarek/distribute' bitroot = 'http://bitbucket.org/tarek/distribute'
revision = re.compile(r'\b(issue\s*#?\d+)\b', re.M | re.I) revision = re.compile(r'\b(issue\s+#?\d+)\b', re.M | re.I)
rst_file = open(rst_path) rst_file = open(rst_path)
rst_content = rst_file.read() rst_content = rst_file.read()
@@ -522,6 +522,10 @@ Please make the appropriate changes for your system and try again.
"""Write all the scripts for `dist`, unless scripts are excluded""" """Write all the scripts for `dist`, unless scripts are excluded"""
if not self.exclude_scripts and dist.metadata_isdir('scripts'): if not self.exclude_scripts and dist.metadata_isdir('scripts'):
for script_name in dist.metadata_listdir('scripts'): for script_name in dist.metadata_listdir('scripts'):
if dist.metadata_isdir('scripts/' + script_name):
# The "script" is a directory, likely a Python 3
# __pycache__ directory, so skip it.
continue
self.install_script( self.install_script(
dist, script_name, dist, script_name,
dist.get_metadata('scripts/'+script_name) dist.get_metadata('scripts/'+script_name)

Some files were not shown because too many files have changed in this diff Show More