Skip to main content

Dealer -- SCM (Git, Mercurial) watcher

Project description

|logo| Dealer
#############

.. _description:

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.


.. _badges:

.. image:: http://img.shields.io/travis/klen/dealer.svg?style=flat-square
:target: http://travis-ci.org/klen/dealer
:alt: Build Status

.. image:: http://img.shields.io/coveralls/klen/dealer.svg?style=flat-square
:target: https://coveralls.io/r/klen/dealer
:alt: Coverals

.. image:: http://img.shields.io/pypi/v/dealer.svg?style=flat-square
:target: https://pypi.python.org/pypi/dealer
:alt: Version

.. image:: http://img.shields.io/pypi/dm/dealer.svg?style=flat-square
:target: https://pypi.python.org/pypi/dealer
:alt: Downloads

.. image:: http://img.shields.io/gratipay/klen.svg?style=flat-square
:target: https://www.gratipay.com/klen/
:alt: Donate


.. _contents:

.. contents::


.. _requirements:

Requirements
=============

- python (2.6, 2.7, 3.3)


.. _installation:

Installation
=============

**Dealer** should be installed using pip: ::

pip install dealer


.. _usage:

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 settings: ::

TEMPLATE_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_CLASSES += '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.


.. _bagtracker:

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:

Contributing
============

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


.. _contributors:

Contributors
=============

* klen_ (Kirill Klenov)


.. _license:

License
=======

Licensed under a `BSD license`_.


.. _links:

.. _BSD license: http://www.linfo.org/bsdlicense.html
.. _klen: http://klen.github.com/
.. _SCM: http://en.wikipedia.org/wiki/Source_Control_Management
.. _Git: http://en.wikipedia.org/wiki/Git_(oftware)
.. _Mercurial: http://en.wikipedia.org/wiki/Mercurial
.. |logo| image:: https://raw.github.com/klen/dealer/develop/docs/_static/logo.png
:width: 100

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dealer-2.0.1.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

dealer-2.0.1-py2-none-any.whl (15.9 kB view details)

Uploaded Python 2

File details

Details for the file dealer-2.0.1.tar.gz.

File metadata

  • Download URL: dealer-2.0.1.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dealer-2.0.1.tar.gz
Algorithm Hash digest
SHA256 99eae3fca9f3463f8b209aedcd49778ae93cb2c4f6890dd42ea12f739a33427f
MD5 f7d9fe0caab076a6b9fdf63fc526fe80
BLAKE2b-256 b8c705aa98423ebf609532de48a635bcb6705be5c52f4f24b3d2d0cf67ebc366

See more details on using hashes here.

File details

Details for the file dealer-2.0.1-py2-none-any.whl.

File metadata

File hashes

Hashes for dealer-2.0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 4a06076b34285749ec6fa5e3bc2970905134e227a51401698ebafa57b4bac800
MD5 ae040c3f228382054830c5440ac0f77a
BLAKE2b-256 602b36b727fa19d366c6a72c406994f3df8181fd89223506949e0c735501992b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page