diff options
author | Tomás Touceda <chiiph@leap.se> | 2013-06-28 14:25:19 -0300 |
---|---|---|
committer | Tomás Touceda <chiiph@leap.se> | 2013-06-28 14:25:19 -0300 |
commit | 5b975799ce9b7a6e0a88be4bcb48bdfb90800bb3 (patch) | |
tree | bda674a79b1aeccb37b67609517bc4761db7ae07 /docs/dev | |
parent | 9cea9c8a34343f8792d65b96f93ae22bd8685878 (diff) | |
parent | c088a1544a5f7a51359d2802019c0740aab0cc5b (diff) |
Merge branch 'release-0.2.2'0.2.2
Diffstat (limited to 'docs/dev')
-rw-r--r-- | docs/dev/environment.rst | 49 | ||||
-rw-r--r-- | docs/dev/internationalization.rst | 22 | ||||
-rw-r--r-- | docs/dev/resources.rst | 4 | ||||
-rw-r--r-- | docs/dev/workflow.rst | 8 |
4 files changed, 43 insertions, 40 deletions
diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst index c3868b81..010ccc83 100644 --- a/docs/dev/environment.rst +++ b/docs/dev/environment.rst @@ -8,19 +8,20 @@ This document covers how to get an enviroment ready to contribute code to the LE Cloning the repo ---------------- .. note:: - Stable releases will be in *master* branch (nothing there yet, move on!). + Stable releases are in *master* branch. Development code lives in *develop* branch. :: git clone git://leap.se/leap_client + git checkout develop Base Dependencies ------------------ Leap client depends on these libraries: * `python 2.6 or 2.7` -* `qt4` libraries (see also :ref:`Troubleshooting PyQt install <pyqtvirtualenv>` about how to install inside your virtualenv) +* `qt4` libraries (see also :ref:`Troubleshooting PySide install <pysidevirtualenv>` about how to install inside your virtualenv) * `openssl` * `openvpn <http://openvpn.net/index.php/open-source/345-openvpn-project.html>`_ @@ -28,7 +29,7 @@ Debian ^^^^^^ In debian-based systems:: - $ apt-get install openvpn python-qt4 python-crypto python-openssl + $ apt-get install openvpn python-pyside python-openssl To install the software from sources:: @@ -50,6 +51,10 @@ The basic problem being addressed is one of dependencies and versions, and indir Read more about it in the `project documentation page <http://pypi.python.org/pypi/virtualenv/>`_. +.. note:: + this section could be completed with useful options that can be passed to the virtualenv command (e.g., to make portable paths, site-packages, ...). We also should document how to use virtualenvwrapper. + + Create and activate your dev environment ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -58,36 +63,36 @@ Create and activate your dev environment $ virtualenv </path/to/new/environment> $ source </path/to/new/environment>/bin/activate -Install python dependencies -^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _pysidevirtualenv: -You can install python dependencies with pip. If you do it inside your working environment, they will be installed avoiding the need for administrative permissions:: +Avoid compiling PySide inside a virtualenv +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - $ pip install -r pkg/requirements.pip +If you attempt to install PySide inside a virtualenv as part of the rest of the dependencies using pip, basically it will take ages to compile. -.. _pyqtvirtualenv: +As a workaround, you can run the following script after creating your virtualenv. It will symlink to your global PySide installation (*this is the recommended way if you are running a debian-based system*):: -Troubleshooting PyQt install inside a virtualenv -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + $ pkg/postmkvenv.sh -If you attempt to install PyQt inside a virtualenv using pip, it will fail because PyQt4 does not use the standard setup.py mechanism. +A second option if that does not work for you would be to install PySide globally and pass the ``--site-packages`` option when you are creating your virtualenv:: -As a workaround, you can run the following script after creating your virtualenv. It will symlink to your global PyQt installation (*this is the recommended way if you are running a debian-based system*):: + $ apt-get install python-pyside + $ virtualenv --site-packages . - $ pkg/postmkvenv.sh +After that, you must export ``LEAP_VENV_SKIP_PYSIDE`` to skip the isntallation:: -A second option if that does not work for you would be to install PyQt globally and pass the ``--site-packages`` option when you are creating your virtualenv:: + $ export LEAP_VENV_SKIP_PYSIDE=1 - $ apt-get install python-qt4 - $ virtualenv --site-packages . +And now you are ready to proceed with the next section. -Or, if you prefer, you can also `download the official PyQt tarball <http://www.riverbankcomputing.com/software/pyqt/download>`_ and execute ``configure.py`` in the root folder of their distribution, which generates a ``Makefile``:: +.. _pydepinstall: - $ python configure.py - $ make && make install +Install python dependencies +^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. note:: - this section could be completed with useful options that can be passed to the virtualenv command (e.g., to make portable paths, site-packages, ...). +You can install python dependencies with ``pip``. If you do it inside your working environment, they will be installed avoiding the need for administrative permissions:: + + $ pip install -r pkg/requirements.pip .. _copyscriptfiles: @@ -95,7 +100,7 @@ Or, if you prefer, you can also `download the official PyQt tarball <http://www. Copy script files ----------------- -The openvpn invocation expects some files to be in place. If you have not installed `leap-client` from a debian package, you must copy these files manually:: +The openvpn invocation expects some files to be in place. If you have not installed `leap-client` from a debian package, you must copy these files manually by now:: $ sudo mkdir -p /etc/leap $ sudo cp pkg/linux/resolv-update /etc/leap diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst index 1a9af0be..8c584fdd 100644 --- a/docs/dev/internationalization.rst +++ b/docs/dev/internationalization.rst @@ -6,7 +6,7 @@ Internationalization This part of the documentation covers the localization and translation of LEAP Client. Because we want to *bring fire to the people*, in as many countries and languages as possible. -Translating the LEAP Client PyQt Application +Translating the LEAP Client PySide Application -------------------------------------------- .. raw:: html @@ -32,7 +32,7 @@ For devs: i18n conventions .. note:: should say something about our special cases (provider labels and exceptions) when we get decision about it. -Refer to `pyqt documentation <http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/i18n.html>`_. +Refer to `pyside documentation <http://qt-project.org/wiki/PySide_Internationalization>`_. tl;dr;:: @@ -40,15 +40,11 @@ tl;dr;:: for any string that you want to be translated, as long as the instance derives from ``QObject``. -If you have to translate something that it is not a ``QObject``, use the magic leap ``translate`` method: - - -.. code-block:: python - - from leap.util.translations import translate - - class Foo(object): - bar = translate(<Context>, <string>, <comment>) +.. If you have to translate something that it is not a ``QObject``, use the magic leap ``translate`` method: +.. .. code-block:: python +.. from leap.util.translations import translate +.. class Foo(object): +.. bar = translate(<Context>, <string>, <comment>) .. Note about this: there seems to be some problems with the .tr method @@ -59,9 +55,9 @@ If you have to translate something that it is not a ``QObject``, use the magic l For i18n maintainers ^^^^^^^^^^^^^^^^^^^^ -You need ``pylupdate4`` and ``lrelease`` for these steps. To get it, in debian:: +You need ``pyside-lupdate`` and ``lrelease`` for these steps. To get it, in debian:: - $ apt-get install pyqt4-dev-tools qt4-linguist-tools + $ apt-get install pyside-tools qt4-linguist-tools If you do not already have it, install the ``transifex-client`` from the cheese shop:: diff --git a/docs/dev/resources.rst b/docs/dev/resources.rst index 7cfa2b70..e68649a1 100644 --- a/docs/dev/resources.rst +++ b/docs/dev/resources.rst @@ -1,7 +1,7 @@ .. _resources: -PyQt Resource files -=================== +PySide Resource files +===================== Compiling resource/ui files --------------------------- diff --git a/docs/dev/workflow.rst b/docs/dev/workflow.rst index 5ceccca4..e36431ff 100644 --- a/docs/dev/workflow.rst +++ b/docs/dev/workflow.rst @@ -20,20 +20,22 @@ If you introduce a new dependency, please add it under ``pkg/requirements`` or ` Git flow -------- -See `A successful git branching model <http://nvie.com/posts/a-successful-git-branching-model/>`_ for more information. The slight modification we make is that release tags are made in the release branch before getting merged to master, rather than getting tagged in master. +We are basing our workflow on what is described in `A successful git branching model <http://nvie.com/posts/a-successful-git-branching-model/>`_. .. image:: https://leap.se/code/attachments/13/git-branching-model.png The author of the aforementioned post has also a handy pdf version of it: `branching_model.pdf`_ +However, we use a setup in which each developer maintains her own feature branch in her private repo. After a code review, this feature branch is rebased onto the authoritative integration branch. Thus, the leapcode repo in leap.se (mirrored in github) only maintains the master and develop branches. + A couple of tools that help to follow this process are `git-flow`_ and `git-sweep`_. .. _`branching_model.pdf`: https://leap.se/code/attachments/14/Git-branching-model.pdf .. _`git-flow`: https://github.com/nvie/gitflow .. _`git-sweep`: http://pypi.python.org/pypi/git-sweep -Merge into integration branch ------------------------------ +Code review and merges into integration branch +----------------------------------------------- All code ready to be merged into the integration branch is expected to: * Have tests |