aboutsummaryrefslogtreecommitdiff
blob: 61f9627a2b7126a0a75f38662573b3a0ea6f7f25 (plain)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Development
===========

:Source code: http://git.overlays.gentoo.org/gitweb/?p=proj/g-octave.git
:Bugs to: http://www.g-octave.org/trac/newticket

.. warning::
    
    This section of the documentation is supposed to be used by g-Octave
    developers. End-users should not need to read this!


Running the test suites
-----------------------

You can run the tests suites using the script ``run_tests.py`` that can be
found in the directory ``scripts`` in the recent `source tarballs`_ or
in the `Git repository`_

.. _`source tarballs`: http://www.g-octave.org/releases/
.. _`Git repository`: http://git.overlays.gentoo.org/gitweb/?p=proj/g-octave.git

::
    
    $ scripts/run_tests.py


If some test is broken, please use the `bug tracker`_.

.. _`bug tracker`: http://www.g-octave.org/trac/newticket


Working on the package database
-------------------------------

Package databases are Git repositories with the DESCRIPTION files, patches
and a ``info.json`` file with the non-octave dependencies and the licenses
of the packages.

We're using github to host the package database:

http://github.com/rafaelmartins/g-octave-db/

If you want to fix something on the package database, please fork the
repository, change it and fill a merge request.


Updating the package database
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We have a script to update the package database: ``contrib/manage_pkgdb.py``.
You just need to clone the git repository and create a directory to store
the source tarballs, that are used to extract the DESCRIPTION files and
build the package database.

g-Octave will install the script on ``/usr/share/g-octave/contrib``

::

    $ git clone git+ssh://git@github.com:your_username/g-octave-db.git
    $ mkdir tarballs
    $ /usr/share/g-octave/contrib/manage_pkgdb.py tarballs g-octave-db

The first parameter of the script is the path to the directory that will
store the tarballs. The second parameter is the path to the local clone
of your forked git repository.

You'll need an additional dependency::

    # emerge -av dev-python/feedparser


Updating the list of external dependencies and licenses
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We have a script to update the JSON file that contains the external
dependencies (non-octave packages from the portage tree) and the licenses
(the license names used by the octave-forge developers doesn't matches
with the names used on the Portage tree).

This script will be also installed on ``/usr/share/g-octave/contrib``

::
    
    $ /usr/share/g-octave/contrib/manage_info.py g-octave-db/info.json

The script is interactive and the argument is the path to the ``info.json``
file, that lives on the root of the Git repository of the package database.

The script will suggest some matches for each dependency. For the licenses
you need to find the best match at the directory ``${PORTDIR}/licenses``,
where ${PORTDIR} is the path to your Portage tree (``/usr/portage``
usually).


Commiting the changes
~~~~~~~~~~~~~~~~~~~~~

You can use the script ``manage_pkgdb.py`` to commit the changes::

    $ /usr/share/g-octave/contrib/manage_pkgdb.py --commit tarballs g-octave-db

The script will do a last check on your updates and commit the stuff to
your fork repository.


Using your fork as package database
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you want to use your fork as package database, change the variable
``db_mirror`` on the file ``/etc/g-octave.cfg`` to something like::
    
    db_mirror = github://your_username/g-octave-db


Sending patches to the source code
----------------------------------

The source code of g-Octave lives on a repository on the Gentoo Linux
infrastructure. ::

    $ git clone git://git.overlays.gentoo.org/proj/g-octave.git

You can change what you need, commit, generate a Git-formated patch and
attach it to a new ticket on our `bug tracker`_.