661
edits
Carandraug (talk | contribs) |
Carandraug (talk | contribs) (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 |