Software life on computer is only started by installation, after this it 
require constant update - bug fixes and new features should be delivered to the 
customer.

[b]Change[/b]

Bug fix or new feature is Change - set of changed and new files to fix problem 
or to introduce new functionality. This set is in general case random set of 
files selected to be all in one putback. Like library change may require all 
programs which uses this library be changed also (or may not require as well). 
Some fix in some program let say webserver may require fixes and changes in 
different unrelated libraries. So files from single change may very well be 
from different DU - different packages. 

In general all files which belongs to the fix depends on each other meaning 
that one changed or new file will not work properly if  other file is not 
changed (or delivered if new). This dependency is always mutual. We can not 
deliver changed library and not deliver corresponding changes in program which 
uses it, as well as we can not deliver changed program without delivering 
libraries which support this changes. However this dependency are not as strict 
as dependency for installation - if for example program is not installed on the 
computer at all than we do not have to deliver new changed version of this 
program together with changed library, it is OK to deliver only library changes.

So files may belong to different DU - different packages and all files must be 
deployed only all together as a single transaction. 

Ultimately we face new file property here - version. We already have for file 
list of files which this one depends on. Now we have version and we have 
another dependency list which include different files for certain version.

For installation we should check if all files from dependency list is available 
(already installed or will be installed at same transaction).

For update we should check if all files from dependency list [b][i]if 
exists[/i][/b] available with listed version or higher.

This set of files need to be delivered to customer computers, most natural way 
is to have single bundle where all files present - anyway they can not go 
separately, but only all together. 
---------------------------------------------------------------------------------------------
[b]Reality check[/b]
Patches is what currently represents changes. Patch contain all changed files 
in form of delta packages which patchadd apply to the system. If package not 
installed on the system, then patchadd skips delta package.

Currently patches in Solaris have revisions and mechanism of accumulation for 
changes. I am not talking about this yet which is related to next topic - 
dependency between changes (I described dependency inside change).

So for now let me say that single change can be represented as a patch (in 
first revision of the patch).

vassun
 
 
This message posted from opensolaris.org

Reply via email to