diff options
Diffstat (limited to 'docs/development.rst')
-rw-r--r-- | docs/development.rst | 113 |
1 files changed, 90 insertions, 23 deletions
diff --git a/docs/development.rst b/docs/development.rst index 8e3feb5..cd0610e 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -2,7 +2,13 @@ Development =========== :Source code: http://git.overlays.gentoo.org/gitweb/?p=proj/g-octave.git -:Bugs to: rafael [at] rafaelmartins [dot] eng [dot] br +: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 ----------------------- @@ -11,44 +17,105 @@ 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://soc.dev.gentoo.org/~rafaelmartins/g-octave/ +.. _`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, report me a bug by email. The bug tracker is -temporary disabled. +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: -Creating source tarballs from the octave-forge SVN repository -------------------------------------------------------------- +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`` + +:: -We have a script to create source tarballs for all the packages, -using the latest stable revision from the octave-forge SVN repo. + $ 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 -To use it, add a ``pkg_cache`` option to your configuration file with -the directory where you want to save the generated tarballs and, after -clone the Mercurial repository or download the source tarball, run from -the root of the source tree:: +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. - $ scripts/package_sources.py +Updating the list of external dependencies and licenses +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Creating a package database from the previously created source tarballs ------------------------------------------------------------------------ +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). -You should want to also create a package database. For this, keep the -``pkg_cache`` option in your configuration file pointing to the directory -with your source tarballs and run from the root of the source 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 - $ scripts/package_database.py /path/to/your/new/database.tar.gz +Sending patches to the source code +---------------------------------- -Sending patches ---------------- +The source code of g-Octave lives on a repository on the Gentoo Linux +infrastructure. :: -You can send git formated patches to me via email. + $ git clone git://git.overlays.gentoo.org/proj/g-octave.git -More information will be available soon. +You can change what you need, commit, generate a Git-formated patch and +attach it to a new ticket on our `bug tracker`_. |