VW app. patching

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

VW app. patching

John Treble


I just noticed BottomFeeder's Upgrade Manager - very slick.  Are VW's
patching capabilities documented/described somewhere?  Any
pointers/references would be appreciated.


John Treble
Ottawa, Ontario, Canada


Reply | Threaded
Open this post in threaded view
|

Re: VW app. patching

Andre Schnoor
John Treble wrote:
> I just noticed BottomFeeder's Upgrade Manager - very slick.  Are VW's
> patching capabilities documented/described somewhere?  Any
> pointers/references would be appreciated.
>  

It's just loading parcels that add or replace code. However, the main
problem to solve in an industry context is how to *create* these parcels
in a way other than manually picking individual code elements into a new
package/parcel.

It should be possible to file out changes tracked in Store, but AFAIK
there's no simple button "Save changes since ... as parcel" yet. I've
written a solution that tracks changes from Store on a meta-bundle level
and builds binary-only parcels from it, but it incorporates a lot of
taylor made custom stuff (i.e. dirty hacks) that won't run elsewhere.

You could check this pseudo code as a start:

pcl := Parcel createParcelNamed: 'MyUpdates'.
pcl startLoad. "inhibit change log writing"
self packagesSorted
    do:[ :pkg | pkg copyContentsToParcel: pcl ].
self separatelyIncludedClasses asSortedCollection
    do: [ :cls | pcl addEntiretyOfClass: cls ].
self separatelyIncludedMethods keysAndValuesDo:[ :cls :sels |
     sels do:[ :sel | pcl addSelector: sel class: cls ]].
pcl endLoad.

pcl
        parcelOutOn: 'MyUpdates.pcl'
        withSource: nil
        hideOnLoad: true
        republish: false
        backup: false.

A major problem with this approach is that it "garbles" the image
somehow, i.e. code ist moved from existing packages to the parcel. I',
not sure what the rela consequences of this are, hence I quit the image
after completion to be sure.

HTH

Andre


Reply | Threaded
Open this post in threaded view
|

Re: VW app. patching

James Robertson-3
I avoided that approach, because I realized that I'd have to create a
version control system at the client end.  Not something I had much
interest in...

At 11:35 AM 5/5/2006, you wrote:

>John Treble wrote:
>>I just noticed BottomFeeder's Upgrade Manager - very slick.  Are VW's
>>patching capabilities documented/described somewhere?  Any
>>pointers/references would be appreciated.
>>
>
>It's just loading parcels that add or replace code. However, the main
>problem to solve in an industry context is how to *create* these parcels
>in a way other than manually picking individual code elements into a new
>package/parcel.
>It should be possible to file out changes tracked in Store, but AFAIK
>there's no simple button "Save changes since ... as parcel" yet. I've
>written a solution that tracks changes from Store on a meta-bundle level
>and builds binary-only parcels from it, but it incorporates a lot of
>taylor made custom stuff (i.e. dirty hacks) that won't run elsewhere.
>
>You could check this pseudo code as a start:
>
>pcl := Parcel createParcelNamed: 'MyUpdates'.
>pcl startLoad. "inhibit change log writing"
>self packagesSorted
>    do:[ :pkg | pkg copyContentsToParcel: pcl ].
>self separatelyIncludedClasses asSortedCollection
>    do: [ :cls | pcl addEntiretyOfClass: cls ].
>self separatelyIncludedMethods keysAndValuesDo:[ :cls :sels |
>     sels do:[ :sel | pcl addSelector: sel class: cls ]].
>pcl endLoad.
>
>pcl
>        parcelOutOn: 'MyUpdates.pcl'
>        withSource: nil
>        hideOnLoad: true
>        republish: false
>        backup: false.
>
>A major problem with this approach is that it "garbles" the image somehow,
>i.e. code ist moved from existing packages to the parcel. I', not sure
>what the rela consequences of this are, hence I quit the image after
>completion to be sure.
>
>HTH
>
>Andre
>

<Talk Small and Carry a Big Class Library>
James Robertson, Product Manager, Cincom Smalltalk
http://www.cincomsmalltalk.com/blog/blogView

Reply | Threaded
Open this post in threaded view
|

RE: VW app. patching

John Treble
In reply to this post by John Treble


James Robertson summarizes BottomFeeder's dynamic patching system:

http://www.cincomsmalltalk.com/blog/blogView?showComments=true&entry=3324276
899

Very slick.

j.t.


-----Original Message-----
From: John Treble [mailto:[hidden email]]
Sent: May 5, 2006 9:26 AM
To: '[hidden email]'
Subject: VW app. patching



I just noticed BottomFeeder's Upgrade Manager - very slick.  Are VW's
patching capabilities documented/described somewhere?  Any
pointers/references would be appreciated.


John Treble
Ottawa, Ontario, Canada