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 |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |