Skip to content
Make some staff
Branch: develop
Clone or download
klen Merge pull request #27 from remcogerlich/remco-fix-comment-on-dealer-…
…version

For Django<2 it is actually Dealer<2 that should be used
Latest commit 6becc48 Nov 12, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dealer
docs Added docs. Jun 20, 2013
tests
.bumpversion.cfg Bump version: 2.0.5 → 2.1.0 Nov 9, 2018
.gitignore wip Nov 9, 2018
.travis.yml
AUTHORS
Changelog Current branch information added for Flask Apr 19, 2018
DESCRIPTION
LICENSE
MANIFEST.in python3 Jun 20, 2013
Makefile wip Nov 9, 2018
README.rst For Django<2 it is actually Dealer<2 that should be used Nov 12, 2018
requirements-test.txt Support Django>2 Nov 9, 2018
requirements.txt python3 Jun 20, 2013
setup.cfg Update dealer Dec 10, 2014
setup.py Support Django>2 Nov 9, 2018
tox.ini

README.rst

logo Dealer

Dealer — SCM revision helper in your projects. Just add SCM revision to your static paths and get automatic control at client browser caches:

Somewhere in templates:

<script src='/main.js?{{ request.revision }}'

On clientside:

<script src='/main.js?34jhfd45hd8'

Supported Git, Mercurial and simple revision parse by file.

Note

You should install Mercurial for hg support.

Note

For Django<2 please use Dealer<2

Build Status Coverals Version Downloads Donate

Requirements

  • python 2.7, 3.5+

Note

For Django<2 please use Dealer<2

Installation

Dealer should be installed using pip:

pip install dealer

Usage

Basic usage

from dealer.git import git

print git.revision

print git.tag
# Auto parse repository type
from dealer.auto import auto
print auto.revision

print auto.tag

Manually create backend

path — path to SCM repository (current dir by default)

from dealer.mercurial import Backend

hg = Backend('/path/to/hg/repo')

Django support

Settings

DEALER_TYPE — Type of SCM repository ('auto', 'git', 'mercurial', 'simple', 'env', 'null'). By default 'auto';

DEALER_PATH — Path to SCM. By default current dir;

DEALER_SILENT — Disable log warnings;

DEALER_BACKENDS — Backends for auto search by default ('git', 'mercurial', 'simple', 'env', 'null');

Context-processor

Append to your context processors:

...
context_processors = ['dealer.contrib.django.context_processor']

And use the REVISION and TAG variables in your templates:

<link href="/test.css?{{ REVISION }}" rel="stylesheet" type="text/css" media="screen" />
<script src="/test.js?{{ REVISION }}"></script>

Middleware

Append to your settings:

MIDDLEWARE = ['dealer.contrib.django.Middleware']

And use in your views:

def view(request):
    return request.revision

Or in your templates by request.revision var.

Flask support

Settings

DEALER_TYPE — Type of SCM repository ('auto', 'git', 'mercurial', 'simple', 'env', 'null'). By default 'auto' DEALER_PARAMS — Params for backend

Usage

In views:

from flask import Flask, g
from dealer.contrib.flask import Dealer

app = Flask('test')
Dealer(app)
assert app.revision

@app.route('/')
def usage_in_view():
    return g.revision

In templates:

<link href="/test.css?{{ REVISION }}" rel="stylesheet" type="text/css" media="screen" />

Pyramid support

config.include('dealer.contrib.pyramid')
def myview(request):
    revision = request.registry.dealer.revision
    tag = request.registry.dealer.tag

In templates

Revision: {{DEALER_REVISION}}
Tag: {{DEALER_TAG}}

Heroku support

Settings

DEALER_TYPE = 'env' DEALER_PARAMS:

revision_env_keyname - Variable name for revision (default: DEALER_REVISION)
tag_env_keyname - Variable name for tag (default: DEALER_TAG)

Usage

Setup your revision and tag value in envirement variables. For example in Heroku.com:

heroku config:set DEALER_REVISION='3ffb6b6'
heroku config:set DEALER_TAG=v1_1

After that use dealer as described above.

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/Dealer/issues

Contributing

Development of dealer happens at github: https://github.com/klen/dealer

Contributors

  • klen (Kirill Klenov)

License

Licensed under a BSD license.

You can’t perform that action at this time.