summaryrefslogtreecommitdiff
path: root/docs/dev
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dev')
-rw-r--r--docs/dev/environment.rst49
-rw-r--r--docs/dev/internationalization.rst22
-rw-r--r--docs/dev/resources.rst4
-rw-r--r--docs/dev/workflow.rst8
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