Summer of Code - Getting Started: Difference between revisions

Line 274: Line 274:
The planned improvements are:
The planned improvements are:


* install from URLs
* install and update from repositories (hg and git)
* automatic handling of dependencies
* easily load, update or check specific package versions
* management of tests and demos in C++ sources of packages
* more flexibility on dependencies, e.g., dependent on specific Octave build options or being dependent in one of multiple packages
* support for multiple version packages
* support for multiple Octave installs
* support for multiple Octave installs
* support for multiple version packages
* support for system-wide and user installed packages
* support for system-wide and user installed packages
* automatic handling of dependencies
* more flexibility on dependencies, e.g., dependent on specific Octave build options or being dependent in one of multiple packages
* management of tests and demos in C++ sources of packages
* think ahead for multiple
* easily load or check specific package versions
* install from URLs
* install and update from repositories (hg and git)


The current {{codeline|pkg}} also performs some functions which probably should not. Instead a package for developers should be created with such tools.
The main objective of this project is to make {{codeline|pkg}} more user friendly and to make it a tool to foster third party participation in Octave.
{{codeline|pkg}} needs to be more flexible and intelligent when dealing with packages, different verisons and different sources, as well as options on how to build and install the package.
There are also advance features of pkg that are useful for testing packages. However, the current {{codeline|pkg}} also performs some maintenance functions which it probably should not.
Instead a package for developers should be created with such tools.
 
To do this enhacenment effectively, a refactoring of the current {{codeline|pkg}} code will be needed.
[https://bitbucket.org/carandraug/octave/commits/branch/pkg This job was started once], but due to diverging and growing specifications, it stalled.
In this project we will focus on the most needed features, keeping the requirements to a minimum.  


Many of these problems have been solved in other languages. Familiarity with how other languages handle this problem will be useful to come up with elegant solutions. In some cases, there are standards to follow. For example, there are specifications published by freedesktop.org about where files should go ([http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html base directory spec]) and Windows seems to have its own standards. See bugs {{bug|36477}} and {{bug|40444}} for more details.
Many of these problems have been solved in other languages. Familiarity with how other languages handle this problem will be useful to come up with elegant solutions. In some cases, there are standards to follow. For example, there are specifications published by freedesktop.org about where files should go ([http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html base directory spec]) and Windows seems to have its own standards. See bugs {{bug|36477}} and {{bug|40444}} for more details.
657

edits