Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Prototypical foundation for a Lojban web infrastructure with a focus on Jbovlaste 2.
Python
Branch: master
Failed to load latest commit information.
docs Clean up stutuzctl a little
flaskext Use more BTrees
relvlast Merge commit '92fcc3c0615180'
stutuz Properly use Logbook contexts
tests Move export to relvlast, prefix views with +, content-dispose export …
.gitignore Don't keep messages.pot under version control
LICENSE Foundation
MANIFEST.in Move manage to package, add stutuzctl entry point
README.rst Move hacking docs to new chapter, don't include readme directly
babel.cfg
setup.cfg Foundation
setup.py Translatable templates and strings, closes #2

README.rst

Prototypical foundation for a Lojban web infrastructure with a focus on Jbovlaste 2.

(From the affix forms of stuzi as a cmevla, because it's not really a stuzi (more like a ciste or a tcana) and because Robin loves affix-form cmevla. Also, lojbo tcana was sort of already taken.)

So... What is this, really?

Not really anything - yet. I'm laying the groundwork for what hopefully will end up being the next jbovlaste, also known as relvlast and JVS2, or really any web application the community might need. The idea is to have a solid foundation to build anything on easily.

As for Jbovlaste 2, my thinking is that it's better to start now building something than endlessly discuss how to design it first. As we perfect the design, it should be easy to adapt the implementation because it is built with modern technologies and test driven development.

Great! So when can I use it?

Not in quite some time! Just reimplementing jbovlaste from scratch is a non-trivial undertaking, and we're not even sure yet how we want to redesign it. In fact, I'm working under the assumption that the Lojban server will support Python 2.6 by the time this is deployed, something which requires Debian to release their next stable version and Robin to update the machine. Even then it might not be usable yet.

Setting up a development instance

Prerequisites:

On Ubuntu 10.10 you can install all of these with:

sudo apt-get install virtualenvwrapper

Next, we'll create a virtual Python environment to set it all up in:

mkvirtualenv --no-site-packages stutuz
./setup.py develop

Working with our development instance

Run the tests:

./setup.py test

Start the development server:

stutuzctl runserver

When you're done you might want to get out of the environment:

deactivate

And the next time you need it, run:

workon stutuz

Technical details

  • Flask is used for the HTTP side
  • Werkzeug is primarily used by Flask but sometimes we use it directly
  • Genshi is used for HTML templating
  • ZODB is used for data persistence

Contributing

First of all: Don't panic! An unsuccessful attempt at contributing has more potential to lead to a successful contribution than no attempt at all. It can also help me improve this documentation!

Some suggestions:

  • Follow the Style Guide for Python code
  • Add unit tests for new code and make sure all tests pass before you commit
  • Write docstrings where they make sense, with Sphinx markup

There are some tools you can use to check your code (but beware of false positives - no need to be fanatic):

pip install pep8 pyflakes

Check the code style:

pep8 stutuz/

Look for missing or unused imports/variables/etc:

pyflakes stutuz/

And finally: Have fun!

Something went wrong with that request. Please try again.