OEP:pkg: Difference between revisions

2,430 bytes added ,  23 November 2012
→‎Version numbers: more dicussion, use of version modifer and mixing with -db modifier
m (fix headline level)
(→‎Version numbers: more dicussion, use of version modifer and mixing with -db modifier)
Line 142: Line 142:


== Version numbers ==
== Version numbers ==
=== specifying version ===
Actions dependent on a package version can be specified with a -version modifier for that
action. It is however necessary to define the default order. Comparison operators
should be used to specify versions. If no comparsion is use then greater than or
equal is assumed. So that the following:
;pkg load image
: loads latest version of the image package. If package is not installed, give error
;pkg load -version 1.0.5 image
: load the latest version greater than or equal to 1.0.5. If no such version found, give error
;pkg load -version >=1.0.5 image
: same as not specifying comparison
;pkg load -version >1.0.5 image
: load anything above that version (does it make sense supportung this? It's not a lot of trouble...)
;pkg load -version =1.0.5 image
: load image package only if the same version (should we use == instead? Why not only =? Should not support both syntax)
For the other 2 remainig comparisons (< and <=), the question used for > and >=
is the same. Does it make sense to support both? For ''greater than'', the only
thing that makes sense is ''greater than or equal'' and for ''lesser than'', the
only think that makes sense is ''only lesser than'' since people will mark them
as the first release that implemented, or the first release that no longer had,
a specific feature.
Whatever code is used on this section should also be used for solving package
dependencies.
Should versions take precedence over the database for loading order? For example,
if there is a global installation of image 1.0.5 and a 2.0.0 version on an external
database named labdev, what version should be loaded?
;pkg load image
: load version 1.0.5 from global (database takes precedence over version)
;pkg load -version >1.0.0 image
: load version 1.0.5 from global (database takes precedence over version)
;pkg load -version >2.0.0 image
: load version 2.0.0 from labdev (only version that meets the requirements)
;pkg load -version >1.0.0 -db labdev image
: load version 2.0.0 from labdev (while database takes precedence, labdev was specified so we load the latest)
Should the -db modifier make pkg ignore completely version? If a system has signal
version 1.0.0 on an external named labdev, and 1.2.0 on a global, what should be loaded?
;pkg load signal
: load version 1.2.0 from global
;pkg load -db labdev image
: load latest version from global or from labdev?
=== version definition ===
The current implementation only accepts versions on the format x.y.z. This does
The current implementation only accepts versions on the format x.y.z. This does
not allow for dev versions, beta or release candidates releases such x.y.z-rc0, x.y.z+, etc
not allow for dev versions, beta or release candidates releases such x.y.z-rc0, x.y.z+, etc