From 5ff29dc57e2877a14e705d09b7042cddf4165d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Wed, 6 Mar 2013 15:27:23 -0300 Subject: Remove everything to start from scratch --- docs/dev/authors.rst | 0 docs/dev/environment.rst | 121 -------------------------------------- docs/dev/internals.rst | 12 ---- docs/dev/internationalization.rst | 117 ------------------------------------ docs/dev/resources.rst | 14 ----- docs/dev/tests.rst | 62 ------------------- docs/dev/todo.rst | 0 docs/dev/workflow.rst | 41 ------------- 8 files changed, 367 deletions(-) delete mode 100644 docs/dev/authors.rst delete mode 100644 docs/dev/environment.rst delete mode 100644 docs/dev/internals.rst delete mode 100644 docs/dev/internationalization.rst delete mode 100644 docs/dev/resources.rst delete mode 100644 docs/dev/tests.rst delete mode 100644 docs/dev/todo.rst delete mode 100644 docs/dev/workflow.rst (limited to 'docs/dev') diff --git a/docs/dev/authors.rst b/docs/dev/authors.rst deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst deleted file mode 100644 index c3868b81..00000000 --- a/docs/dev/environment.rst +++ /dev/null @@ -1,121 +0,0 @@ -.. _environment: - -Setting up a development environment -==================================== - -This document covers how to get an enviroment ready to contribute code to the LEAP Client. - -Cloning the repo ----------------- -.. note:: - Stable releases will be in *master* branch (nothing there yet, move on!). - Development code lives in *develop* branch. - -:: - - git clone git://leap.se/leap_client - -Base Dependencies ------------------- -Leap client depends on these libraries: - -* `python 2.6 or 2.7` -* `qt4` libraries (see also :ref:`Troubleshooting PyQt install ` about how to install inside your virtualenv) -* `openssl` -* `openvpn `_ - -Debian -^^^^^^ -In debian-based systems:: - - $ apt-get install openvpn python-qt4 python-crypto python-openssl - -To install the software from sources:: - - $ apt-get install python-pip python-dev - -.. _virtualenv: - -Working with virtualenv ------------------------ - -Intro -^^^^^^^^^^^^^^^^^^^ - -*Virtualenv* is the *Virtual Python Environment builder*. - -It is a tool to create isolated Python environments. - -The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded. - -Read more about it in the `project documentation page `_. - - -Create and activate your dev environment -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:: - - $ virtualenv - $ source /bin/activate - -Install python dependencies -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -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 - -.. _pyqtvirtualenv: - -Troubleshooting PyQt install inside a virtualenv -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you attempt to install PyQt inside a virtualenv using pip, it will fail because PyQt4 does not use the standard setup.py mechanism. - -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*):: - - $ pkg/postmkvenv.sh - -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:: - - $ apt-get install python-qt4 - $ virtualenv --site-packages . - -Or, if you prefer, you can also `download the official PyQt tarball `_ and execute ``configure.py`` in the root folder of their distribution, which generates a ``Makefile``:: - - $ python configure.py - $ make && make install - -.. 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, ...). - - -.. _copyscriptfiles: - -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:: - - $ sudo mkdir -p /etc/leap - $ sudo cp pkg/linux/resolv-update /etc/leap - -.. _policykit: - -Running openvpn without root privileges ---------------------------------------- - -In linux, we are using ``policykit`` to be able to run openvpn without root privileges, and a policy file is needed to be installed for that to be possible. -The setup script tries to install the policy file when installing the client system-wide, so if you have installed the client in your global site-packages at least once it should have copied this file for you. - -If you *only* are running the client from inside a virtualenv, you will need to copy this file by hand:: - - $ sudo cp pkg/linux/polkit/net.openvpn.gui.leap.policy /usr/share/polkit-1/actions/ - - -Missing Authentication agent -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you are running a desktop other than gnome or unity, you might get an error saying that you are not running the authentication agent. You can launch it like this:: - - /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 & diff --git a/docs/dev/internals.rst b/docs/dev/internals.rst deleted file mode 100644 index 8bb19211..00000000 --- a/docs/dev/internals.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. _internals: - -Internals -========= - -This section covers briefly the internal organization of the LEAP Client source tree. - -.. note:: - - very unfinished. - -`TBD` diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst deleted file mode 100644 index 1a9af0be..00000000 --- a/docs/dev/internationalization.rst +++ /dev/null @@ -1,117 +0,0 @@ -.. _i18n: - -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 --------------------------------------------- - -.. raw:: html - - - - -For translators -^^^^^^^^^^^^^^^ -.. note:: - We should probably move the translators info to a top level section of the docs, and leave this - as internal notes. - - -We are using `transifex `_ to coordinate translation efforts. If you want to contribute, just sign up there and ... - -.. note:: - ... and what?? - -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 `_. - -tl;dr;:: - - self.tr('your string') - -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(, , ) - - -.. Note about this: there seems to be some problems with the .tr method - so the translate method could actually be the preferred thing in all the cases. - Still missing what to do for language labels (json-based). - --kali - -For i18n maintainers -^^^^^^^^^^^^^^^^^^^^ - -You need ``pylupdate4`` and ``lrelease`` for these steps. To get it, in debian:: - - $ apt-get install pyqt4-dev-tools qt4-linguist-tools - -If you do not already have it, install the ``transifex-client`` from the cheese shop:: - - pip install transifex-client - -You can learn more about the transifex-client `here `_. - -**1.** Add any new source files to the project file, ``data/leap_client.pro``. *We should automate this with some templating, it's tedious.* - -**2.** Update the source .ts file ``data/ts/en_US.ts``.:: - - $ make translations - -**3.** Push source .ts file to transifex:: - - $ tx push -s - -**4.** Let the translation fairies do their work... - -**5.** *Et voila!* Get updated .ts files for each language from ``Transifex``. For instance, to pull updated spanish translations:: - - $ tx pull -l es - Pulling new translations for resource leap-client.leap-client (source: data/ts/en_US.ts) - -> es: data/translations/es.ts - Done. - - -Note that there is a configuration option in ``.tx/config`` for setting the minimum completion percentage needed to be able to actually pull a resource. - -**6.** Generate .qm files from the updated .ts files:: - - $ make translations - -and yes, it's the same command than in step 2. One less thing to remember :) - -**7.** Check that the .qm for the language you're working with is listed in ``data/resources/locale.qrc`` file. That should take the translated files from ``data/translations`` - -**8.** Re-generate ``src/leap/gui/locale_qrc``. This is the embedded resource file that we load in the main app entry point; and from where we load the data for the qt translator object:: - - $ make resources - -If you want to try it, just set your LANG environment variable:: - - $ LANG=es_ES leap-client - - -Translating the Documentation ------------------------------- - -.. note:: - ...unfinished - -`translating sphinx docs `_ diff --git a/docs/dev/resources.rst b/docs/dev/resources.rst deleted file mode 100644 index 7cfa2b70..00000000 --- a/docs/dev/resources.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. _resources: - -PyQt Resource files -=================== - -Compiling resource/ui files ---------------------------- - -You should refresh resource/ui files every time you change an image or a resource/ui (.ui / .qc). From the root folder:: - - % make ui - % make resources - -As there are some tests to guard against unwanted resource updates, you will have to update the resource hash in those failing tests. diff --git a/docs/dev/tests.rst b/docs/dev/tests.rst deleted file mode 100644 index 7f5fbaaf..00000000 --- a/docs/dev/tests.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. _tests: - -Running and writing tests -========================= - -.. note:: - should include seeAlso to virtualenv - -This section covers the documentation about the tests for the LEAP Client code. -All patches should have tests for them ... - - -Testing dependencies --------------------- - -have a look at ``pkg/test-requirements.pip`` -The ``./run_tests.sh`` command should install all of them in your virtualenv for you. - -If you prefer to install them system wide, this should do in a debian system:: - - $ apt-get install python-nose python-mock python-coverage - - -Running tests -------------- - -There is a convenience script at ``./run_tests.sh`` - -If you want to run specific tests, pass the (sub)module to nose:: - - $ nosetests leap.util - -or:: - - $ nosetests leap.util.tests.test_leap_argparse - -Hint: colorized output -^^^^^^^^^^^^^^^^^^^^^^ - -Install ``rednose`` locally, export the ``NOSE_REDNOSE`` variable, and give your eyes a rest :):: - - (leap_client)% pip install rednose - (leap_client)% export NOSE_REDNOSE=1 - -Testing all the supported python versions ------------------------------------------ - -For running testsuite against all the supported python versions (currently 2.6 and 2.7), run:: - - % tox -v - -Coverage reports ----------------- - -Pass the ``-c`` flat to the ``run_tests.sh`` script:: - - $ run_tests.sh -c - -Using ``coverage`` it will generate beautiful html reports that you can access pointing your browser to ``docs/covhtml/index.html`` - -.. note:: - The coverage reports will not be generated if all tests are not passing. diff --git a/docs/dev/todo.rst b/docs/dev/todo.rst deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/dev/workflow.rst b/docs/dev/workflow.rst deleted file mode 100644 index 5ceccca4..00000000 --- a/docs/dev/workflow.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. _workflow: - -Development Workflow -==================== - -This section documents the workflow that the LEAP project team follows and expects for the code contributions. - -Code formatting ---------------- -In one word: `PEP8`_. - -`autopep8` might be your friend. or eat your code. - -.. _`PEP8`: http://www.python.org/dev/peps/pep-0008/ -.. _`autopep8`: http://pypi.python.org/pypi/autopep8 - -Dependencies ------------- -If you introduce a new dependency, please add it under ``pkg/requirements`` or ``pkg/test-requirements`` as appropiate, under the proper module section. - -Git flow --------- -See `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. - -.. 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`_ - -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 ------------------------------ -All code ready to be merged into the integration branch is expected to: - -* Have tests -* Be documented -* Pass existing tests: do **run_tests.sh** and **tox -v**. All feature branches are automagically built by our `buildbot farm `_. So please check your branch is green before merging it it to `develop`. Rebasing against the current tip of the integration when possible is preferred in order to keep a clean history. -- cgit v1.2.3 From 2dae2703fb8c2ae7e721ce83020c0dd10ff9ca33 Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 3 May 2013 02:59:22 +0900 Subject: updated documentation * documentation reviewed after rewrite, ready for 0.2.1 * updated docstrings format to fit sphinx autodoc --- docs/dev/authors.rst | 8 +++ docs/dev/environment.rst | 126 ++++++++++++++++++++++++++++++++++++++ docs/dev/internals.rst | 12 ++++ docs/dev/internationalization.rst | 117 +++++++++++++++++++++++++++++++++++ docs/dev/resources.rst | 14 +++++ docs/dev/tests.rst | 62 +++++++++++++++++++ docs/dev/todo.rst | 6 ++ docs/dev/workflow.rst | 43 +++++++++++++ 8 files changed, 388 insertions(+) create mode 100644 docs/dev/authors.rst create mode 100644 docs/dev/environment.rst create mode 100644 docs/dev/internals.rst create mode 100644 docs/dev/internationalization.rst create mode 100644 docs/dev/resources.rst create mode 100644 docs/dev/tests.rst create mode 100644 docs/dev/todo.rst create mode 100644 docs/dev/workflow.rst (limited to 'docs/dev') diff --git a/docs/dev/authors.rst b/docs/dev/authors.rst new file mode 100644 index 00000000..db32bd94 --- /dev/null +++ b/docs/dev/authors.rst @@ -0,0 +1,8 @@ +.. _authors: + +Authors +======= + +We are many. +We are legion. + diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst new file mode 100644 index 00000000..010ccc83 --- /dev/null +++ b/docs/dev/environment.rst @@ -0,0 +1,126 @@ +.. _environment: + +Setting up a development environment +==================================== + +This document covers how to get an enviroment ready to contribute code to the LEAP Client. + +Cloning the repo +---------------- +.. note:: + 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 PySide install ` about how to install inside your virtualenv) +* `openssl` +* `openvpn `_ + +Debian +^^^^^^ +In debian-based systems:: + + $ apt-get install openvpn python-pyside python-openssl + +To install the software from sources:: + + $ apt-get install python-pip python-dev + +.. _virtualenv: + +Working with virtualenv +----------------------- + +Intro +^^^^^^^^^^^^^^^^^^^ + +*Virtualenv* is the *Virtual Python Environment builder*. + +It is a tool to create isolated Python environments. + +The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded. + +Read more about it in the `project documentation page `_. + +.. 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 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:: + + $ virtualenv + $ source /bin/activate + +.. _pysidevirtualenv: + +Avoid compiling PySide inside a virtualenv +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +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. + +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*):: + + $ pkg/postmkvenv.sh + +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:: + + $ apt-get install python-pyside + $ virtualenv --site-packages . + +After that, you must export ``LEAP_VENV_SKIP_PYSIDE`` to skip the isntallation:: + + $ export LEAP_VENV_SKIP_PYSIDE=1 + +And now you are ready to proceed with the next section. + +.. _pydepinstall: + +Install python dependencies +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +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: + +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 by now:: + + $ sudo mkdir -p /etc/leap + $ sudo cp pkg/linux/resolv-update /etc/leap + +.. _policykit: + +Running openvpn without root privileges +--------------------------------------- + +In linux, we are using ``policykit`` to be able to run openvpn without root privileges, and a policy file is needed to be installed for that to be possible. +The setup script tries to install the policy file when installing the client system-wide, so if you have installed the client in your global site-packages at least once it should have copied this file for you. + +If you *only* are running the client from inside a virtualenv, you will need to copy this file by hand:: + + $ sudo cp pkg/linux/polkit/net.openvpn.gui.leap.policy /usr/share/polkit-1/actions/ + + +Missing Authentication agent +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you are running a desktop other than gnome or unity, you might get an error saying that you are not running the authentication agent. You can launch it like this:: + + /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 & diff --git a/docs/dev/internals.rst b/docs/dev/internals.rst new file mode 100644 index 00000000..8bb19211 --- /dev/null +++ b/docs/dev/internals.rst @@ -0,0 +1,12 @@ +.. _internals: + +Internals +========= + +This section covers briefly the internal organization of the LEAP Client source tree. + +.. note:: + + very unfinished. + +`TBD` diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst new file mode 100644 index 00000000..1a9af0be --- /dev/null +++ b/docs/dev/internationalization.rst @@ -0,0 +1,117 @@ +.. _i18n: + +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 +-------------------------------------------- + +.. raw:: html + + + + +For translators +^^^^^^^^^^^^^^^ +.. note:: + We should probably move the translators info to a top level section of the docs, and leave this + as internal notes. + + +We are using `transifex `_ to coordinate translation efforts. If you want to contribute, just sign up there and ... + +.. note:: + ... and what?? + +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 `_. + +tl;dr;:: + + self.tr('your string') + +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(, , ) + + +.. Note about this: there seems to be some problems with the .tr method + so the translate method could actually be the preferred thing in all the cases. + Still missing what to do for language labels (json-based). + --kali + +For i18n maintainers +^^^^^^^^^^^^^^^^^^^^ + +You need ``pylupdate4`` and ``lrelease`` for these steps. To get it, in debian:: + + $ apt-get install pyqt4-dev-tools qt4-linguist-tools + +If you do not already have it, install the ``transifex-client`` from the cheese shop:: + + pip install transifex-client + +You can learn more about the transifex-client `here `_. + +**1.** Add any new source files to the project file, ``data/leap_client.pro``. *We should automate this with some templating, it's tedious.* + +**2.** Update the source .ts file ``data/ts/en_US.ts``.:: + + $ make translations + +**3.** Push source .ts file to transifex:: + + $ tx push -s + +**4.** Let the translation fairies do their work... + +**5.** *Et voila!* Get updated .ts files for each language from ``Transifex``. For instance, to pull updated spanish translations:: + + $ tx pull -l es + Pulling new translations for resource leap-client.leap-client (source: data/ts/en_US.ts) + -> es: data/translations/es.ts + Done. + + +Note that there is a configuration option in ``.tx/config`` for setting the minimum completion percentage needed to be able to actually pull a resource. + +**6.** Generate .qm files from the updated .ts files:: + + $ make translations + +and yes, it's the same command than in step 2. One less thing to remember :) + +**7.** Check that the .qm for the language you're working with is listed in ``data/resources/locale.qrc`` file. That should take the translated files from ``data/translations`` + +**8.** Re-generate ``src/leap/gui/locale_qrc``. This is the embedded resource file that we load in the main app entry point; and from where we load the data for the qt translator object:: + + $ make resources + +If you want to try it, just set your LANG environment variable:: + + $ LANG=es_ES leap-client + + +Translating the Documentation +------------------------------ + +.. note:: + ...unfinished + +`translating sphinx docs `_ diff --git a/docs/dev/resources.rst b/docs/dev/resources.rst new file mode 100644 index 00000000..7cfa2b70 --- /dev/null +++ b/docs/dev/resources.rst @@ -0,0 +1,14 @@ +.. _resources: + +PyQt Resource files +=================== + +Compiling resource/ui files +--------------------------- + +You should refresh resource/ui files every time you change an image or a resource/ui (.ui / .qc). From the root folder:: + + % make ui + % make resources + +As there are some tests to guard against unwanted resource updates, you will have to update the resource hash in those failing tests. diff --git a/docs/dev/tests.rst b/docs/dev/tests.rst new file mode 100644 index 00000000..7f5fbaaf --- /dev/null +++ b/docs/dev/tests.rst @@ -0,0 +1,62 @@ +.. _tests: + +Running and writing tests +========================= + +.. note:: + should include seeAlso to virtualenv + +This section covers the documentation about the tests for the LEAP Client code. +All patches should have tests for them ... + + +Testing dependencies +-------------------- + +have a look at ``pkg/test-requirements.pip`` +The ``./run_tests.sh`` command should install all of them in your virtualenv for you. + +If you prefer to install them system wide, this should do in a debian system:: + + $ apt-get install python-nose python-mock python-coverage + + +Running tests +------------- + +There is a convenience script at ``./run_tests.sh`` + +If you want to run specific tests, pass the (sub)module to nose:: + + $ nosetests leap.util + +or:: + + $ nosetests leap.util.tests.test_leap_argparse + +Hint: colorized output +^^^^^^^^^^^^^^^^^^^^^^ + +Install ``rednose`` locally, export the ``NOSE_REDNOSE`` variable, and give your eyes a rest :):: + + (leap_client)% pip install rednose + (leap_client)% export NOSE_REDNOSE=1 + +Testing all the supported python versions +----------------------------------------- + +For running testsuite against all the supported python versions (currently 2.6 and 2.7), run:: + + % tox -v + +Coverage reports +---------------- + +Pass the ``-c`` flat to the ``run_tests.sh`` script:: + + $ run_tests.sh -c + +Using ``coverage`` it will generate beautiful html reports that you can access pointing your browser to ``docs/covhtml/index.html`` + +.. note:: + The coverage reports will not be generated if all tests are not passing. diff --git a/docs/dev/todo.rst b/docs/dev/todo.rst new file mode 100644 index 00000000..c50eac09 --- /dev/null +++ b/docs/dev/todo.rst @@ -0,0 +1,6 @@ +.. _todo: + +To-Do +===== + +alot diff --git a/docs/dev/workflow.rst b/docs/dev/workflow.rst new file mode 100644 index 00000000..e36431ff --- /dev/null +++ b/docs/dev/workflow.rst @@ -0,0 +1,43 @@ +.. _workflow: + +Development Workflow +==================== + +This section documents the workflow that the LEAP project team follows and expects for the code contributions. + +Code formatting +--------------- +In one word: `PEP8`_. + +`autopep8` might be your friend. or eat your code. + +.. _`PEP8`: http://www.python.org/dev/peps/pep-0008/ +.. _`autopep8`: http://pypi.python.org/pypi/autopep8 + +Dependencies +------------ +If you introduce a new dependency, please add it under ``pkg/requirements`` or ``pkg/test-requirements`` as appropiate, under the proper module section. + +Git flow +-------- +We are basing our workflow on what is described in `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 + +Code review and merges into integration branch +----------------------------------------------- +All code ready to be merged into the integration branch is expected to: + +* Have tests +* Be documented +* Pass existing tests: do **run_tests.sh** and **tox -v**. All feature branches are automagically built by our `buildbot farm `_. So please check your branch is green before merging it it to `develop`. Rebasing against the current tip of the integration when possible is preferred in order to keep a clean history. -- cgit v1.2.3 From 89805e33ca85616fdea351b8ce0652adf2c99e2c Mon Sep 17 00:00:00 2001 From: kali Date: Tue, 7 May 2013 23:03:24 +0900 Subject: fix pyqt references --- docs/dev/internationalization.rst | 22 +++++++++------------- docs/dev/resources.rst | 4 ++-- 2 files changed, 11 insertions(+), 15 deletions(-) (limited to 'docs/dev') 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 `_. +Refer to `pyside documentation `_. 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(, , ) +.. 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(, , ) .. 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 --------------------------- -- cgit v1.2.3