OEP:pkg: Difference between revisions

2,123 bytes added ,  18 November 2012
add section on naming of packages
(add section on naming of packages)
Line 1: Line 1:
== Abstract ==
== Abstract ==
This OEP refers to Octave's design of the pkg system. The purpose of this system
This OEP refers to Octave's design of the pkg system. The purpose of this system
Line 26: Line 25:
     times
     times


== Package names ==
For parsing of the commands and files, some limitations on package names are required. This will
limit what pkg commands can do. For example, if a package name is allowed to use score, then
commands such as "pkg load image-2.0.0" can no longer be used to load a specific package version.
Something such as "pkg load image::2.0.0" would have to be used. Using this alternative syntax
means that package names cannot have colons.
This is not only limited to package versions. As pkg is to be expanded to load pkg databases from
other files (packages in a not always mounted directory for example), it becomes a possibility to
have more than one package with the same version available to "pkg load". This means that it
becomes necessary to specify which package to load. Something like "pkg load image-lab-2.0.0" can
be used. A nice thing would also be "pkg load image-2.0.0 from lab" but that would add one of following
2 limitations: either no package can be named from; or pkg load becomes limited to load only
one package.
Also, supporting multiple packages versions means that the word "all" to refer to all
packages has new limitations. Should we load only the latest version of each package?
And if there's multiple packages with the same version on varios db, which one should
be loaded? I'd propose the default to be:
- load the latest version availale
- load the local install of the package
- load the global install of the package
- load the package from the external .db, starting from the latest added in case there's more than one.
For package names, the proposal is to limit package names to the same as variable
names (makes it even easier to check validaity with isvarname). So package name
must start with a letter, and otherwise be comprised of alphanumeric and underscores
characters. Unlike variable names, package names will not be case sensitive since
it would create problems when installing packages in filesystems that are not case
sensitive (creating directories named Image and image would not be possible in FAT
systems).
== Types of package installs ==
== User cases ==
=== Case 1 ===
=== Case 1 ===
Denise installs Octave 3.4.3 and installs the latest version of the financial (1.0.4) and
Denise installs Octave 3.4.3 and installs the latest version of the financial (1.0.4) and