~doanac/ubuntu-ci-services-itself/upgrade-support

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Style and Technology Guidelines
===============================

This is intended to keep us on the same page about choices we make. Rules
we have agreed on:

 * Python is the language of choice when possible. We should try and use
   Python3 where possible, but in cases where we need Python2 libraries we'll
   try and keep the code Python3 friendly.

   * Code should pass pep8_ rules and pyflakes_ tests. All editors have plugins
     that flag violations.

 * Django 1.5 is the web framework of choice.

 * New services need a REST interface and "tastypie_" is the recommended
   tool for implementing the interface.

   * **TODO:** what's the recommendation for authentication/authorization?

 * New services should include unit testing.

   * **TODO:** should we add guidelines about how much to test? ie just the
     model or also test REST interface?

 * **TODO**: recommended REST client? tastypie-queryset-client_ looks promising
   and will feel transparent to people familiar with Django.

.. _pep8: http://www.python.org/dev/peps/pep-0008
.. _pyflakes: https://launchpad.net/pyflakes
.. _tastypie: http://django-tastypie.readthedocs.org/en/latest
.. _tastypie-queryset-client: https://github.com/ikeikeikeike/tastypie-queryset-client