Giter Site home page Giter Site logo

whiskers's Introduction

Whiskers

"Vibrissae (singular: vibrissa), or whiskers, are specialized hairs (or, in certain bird species, specialized feathers) usually employed for tactile sensation." - Wikipedia

Whiskers is a Pyramid application for storing information about your buildouts. It is intended to use with buildout.sendpickedversions (PyPI, Github) extension.

image

Reason behind Whiskers

Why? Shortly to automate your workflow.

Think an environment where you're managing tens or hundereds of buildouts - say Plone instances. Most of them have probably almost the same packages and versions. Now you make an critical fix to some custom package and you need to know which buildouts you have to update. Whiskers helps you here by knowing what is required and where.

Installation

Requirements

Python 2.6, 2.7 or 3.3

Pip

virtualenv --no-site-packages -p /path/to/python whiskers
cd whiskers
bin/pip install whiskers
wget https://github.com/pingviini/whiskers/raw/master/production.ini
bin/pserve production.ini

Github

virtualenv --no-site-packages -p /path/to/python whiskers
git clone git://github.com/pingviini/whiskers.git
cd whiskers
python setup.py install
bin/pserve production.ini

Usage

To get some data to Whiskers you should set up buildout.sendpickedversions for your buildouts. Just add following lines to your buildout.cfg: :

[buildout]
extensions = buildout.sendpickedversions
send-data-url = http://localhost:6543
...

Above configuration assumes you have Whiskers running on localhost.

Run buildout and it should say in last lines something like this: :

...
root: Sending data to remote url (http://localhost:6543/)
Added buildout information to Whiskers.

Open web browser and go to http://localhost:6543/buildouts and you should see your buildout data.

Having trouble

Both Whiskers and buildout.sendpickedversions have been updated to work nicely together. Make sure you are using latest version of buildout.sendpickedversions when you've set up Whiskers 1.x.

Older version of buildout.sendpickedversions (0.x) is incompatible with Whiskers 1.x. Same goes to other way too - Whiskers 0.x doesn't work with buildout.sendpickedversions 1.x.

Found a bug

Please kill it (or add a new issue to github). Code is out there for you.

Seriously - I'm more than willing accepting new contributions.

whiskers's People

Contributors

markvl avatar mrijken avatar pingviini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

whiskers's Issues

Delete old buildouts

I have done some tests and wanted to delete old buildouts data in whiskers. Is that a feature which is not implemented on purpose?

KeyError

When I run a buildout with sendpickedversions, I will get a KeyError on my Whiskers server:

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/var/atmiz/eggs/pyramid-1.4-py2.7.egg/pyramid/router.py", line 251, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/var/atmiz/eggs/pyramid-1.4-py2.7.egg/pyramid/router.py", line 227, in invoke_subrequest
    response = handle_request(request)
  File "/var/atmiz/eggs/pyramid-1.4-py2.7.egg/pyramid/tweens.py", line 21, in excview_tween
    response = handler(request)
  File "/var/atmiz/eggs/pyramid_tm-0.7-py2.7.egg/pyramid_tm/__init__.py", line 82, in tm_tween
    reraise(*exc_info)
  File "/var/atmiz/eggs/pyramid_tm-0.7-py2.7.egg/pyramid_tm/__init__.py", line 63, in tm_tween
    response = handler(request)
  File "/var/atmiz/eggs/pyramid-1.4-py2.7.egg/pyramid/router.py", line 161, in handle_request
    response = view_callable(context, request)
  File "/var/atmiz/eggs/pyramid-1.4-py2.7.egg/pyramid/config/views.py", line 375, in viewresult_to_response
    result = view(context, request)
  File "/var/atmiz/eggs/pyramid-1.4-py2.7.egg/pyramid/config/views.py", line 467, in _class_requestonly_view
    response = getattr(inst, attr)()
  File "/var/atmiz/eggs/whiskers-1.0_alpha.3-py2.7.egg/whiskers/views/buildouts.py", line 70, in post
    self.add_buildout(jsondata, host, checksum)
  File "/var/atmiz/eggs/whiskers-1.0_alpha.3-py2.7.egg/whiskers/views/buildouts.py", line 85, in add_buildout
    package_info['requirements'], data.versionmap)
  File "/var/atmiz/eggs/whiskers-1.0_alpha.3-py2.7.egg/whiskers/views/buildouts.py", line 124, in get_requirements
    if version != versionmap[name]:
KeyError: u'zope.schema'

Not all packages are shown

Although the output from the buildout contains all the packages, some are not shown in the front-end. As far as I can see, it happens when a package has a version number that is already in the database.

Incorrect count of buildouts

On the hosts page, the number of buildouts is the number of all versions. On the buildouts only the buildouts with a unique name are given, so the number of buildouts on that page are much less than on the hosts page. I prefer the number of buildouts to be equal to the number of buildouts with a unique name.

Add license

Please provide a license for the project, since "no license" implies exclusive copyrights, and normally this prevents the usage of the project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.