[V3dot10] Announcing new VersionsBrowser and source condensing

Edgar J. De Cleene edgardec2001 at yahoo.com.ar
Thu Jul 26 09:09:30 UTC 2007

El 7/25/07 10:43 PM, "Maurice Rabb" <m3rabb at uiuc.edu> escribió:

> Hello All,
> I am 1st year PhD student at UIUC working under Ralph Johnson.  I am
> releasing a new version of the VersionsBrowser and
> ClassCommentVersionsBrowser.  This is the extra feature that Ralph
> mentioned that he wants to include in V3.10.
> It is a complete refactoring of the version browsing tools as well as
> the mechanism for condensing the sources.  It enables the previous
> versions of method source and class comments to be stored in, and
> accessed from, an external archive.  Many Squeakers don't condense
> the sources or changes files because they want to maintain the
> complete record of previous versions of methods.  Unfortunately, this
> approach to development prevents one from using the changes file to
> full effect.  If one starts work with an empty changes file, the
> changes file only contains methods that are relevant to ones work.
> With my new refactoring, one can have the advantages of both worlds:
> a clean changes file, and access to the previous historical versions
> of methods and comments.
> You can check out the project documentation at the following link:
> http://swiki.cs.uiuc.edu/cs598rej/332
> The project has evolved since a bit since we first posted the above
> docs.  We wrote the VersionsBrowser first, modifying the way it
> searches for source code.  I am comfortable that is works properly as
> a replacement for the old VersionsBrowser.  However, I would
> appreciate if people would try it out and bang on it.
> Even though the browser appears to work properly the "old" way, I
> couldn't be sure that it really was working properly until it was
> tested on a sources and changes file that truly referenced code
> remotely.  That involved the ugly process refactoring the source
> condensing process. This part now seems to work as well, but needs to
> be tested more thoroughly.
> To get the code, use the Monticello browser to load the Tools-
> Versions-Tests package from:
> http://www.squeaksource.com/VersionsBrowser2/
> It only depends on the Tools-Versions package which in turn depends
> on a bunch of other packages.
> To condense the sources, look at the methods in the 'condensing'
> category in SystemDictionary.
> - #condenseChanges 
> works the same way condensing the changes file only.
> - #condenseCurrentSource
> is my renaming of #condenseSources but otherwise works the same way.
> - #archiveSourcesPermanently
> This method empties the changes file and condense all of the current
> sources to a new source file, and moves all of the prior source
> versions to the permanent master archive.  Since we don't want random
> Squeakers to affect the master archive, this method actually only
> generate a new permanent archive locally.  Once generated locally, it
> can be copied manually to the actual FTP archive site by someone who
> has authorization.
> - #archiveSourceLocally
> This method allows one to create one's own personal methods archive
> that doesn't affect the permanent master archive.
> The VersionsBrowser looks for methods first in the source and changes
> file, then in the local archive, and then finally in the permanent
> archive.  Method versions from the permanent archive are stored in a
> local cache if the permanent archive is being remotely accessed.
> This leads me to two areas I would really appreciate some HELP:
> 1)  Does anyone have write access to a publicly accessible FTP site
> that I can use to host the archives? (Possibly ftp.squeak.org ?)  I
> have been having too many firewall issues here at UIUC to be able to
> run and test the remote access.
> 2) I would like to build a complete permanent archive of the old
> versions of past methods.  As I understand it the prior versions were
> lost at V3.9 when the changes file got too big.  Is this so
> Stephane?  However, when I looked at V3.8 it too doesn't appear to
> have much method version history.  What is the last version of Squeak
> to have a complete record of method versions?  Do I need to go all
> the way back to V1.x and build the archive from each version in order?
> Even without a "complete" method versions history, the new
> VersionsBrowser and condensing work can be released with 3.10.  We
> can swap in a more complete permanent archive as we build it.
> I look forward to your comments, fixes and feedback.
> Thank you!
> Cheers,
> Maurice
> On May 12, 2007, at 10:16 , Ralph Johnson wrote:
> [munch]
>> One of the features of the new versions browser that doesn't yet work
>> is for the history database to be remote.  Right now, the history
>> database is a directory of files, one for each class in the database.
>> My plan was for this to be put on a server and that people who didn't
>> need to browse version history very often, or who were short on disk
>> space, could just use the remote version.  That doesn't work yet,
>> though it might work in a few days.  However, everything else seems to
>> work, though it hasn't been tested very much.
>> Here is what I am thinking.  For our final alpha image, we will
>> provide a history database, a new .sources file, and a completely
>> empty changes file.  During the beta process, we will keep using the
>> history database and the .sources file, (unless we discover something
>> wrong with them).  Then, for the final 3.10 release, we will once
>> again rebuild the history database and .sources file, and have an
>> empty changes file.
>> The 3.9 team ran out of space in the .changes file and had to condense
>> changes, losing some history.   It would be cool to go back and
>> recover that history and put it in the history database.
>> Even cooler, we could go back and get all the history in Squeak 1 and
>> Squeak 2, so we could have a complete history of all code that had
>> ever been in the Squeak image.  This would only require changing the
>> history database, not changing anything in the image, so it is outside
>> the official 3.10 release process.  If we don't have time to work on
>> it earlier, we could work on it after 3.10 is over.
>> The new versions browser has a much nicer way of representing the
>> sources than what Squeak currently has.  We should considering
>> refactoring Squeak to use these classes everywhere.  However, I am
>> opposed to doing that in 3.10.   We should use the new versions
>> browser and debug these classes.  Once these classes are mature than
>> we can change other tools to use them, perhaps in 3.11 or 3.12.
>> This work was done by Maurice Rabb and Navodit Kaushik as a class
>> project for my course on OO programming and design.  Navodit will be
>> the first to admit that Maurice was the leader on this project.  He is
>> a long-time Smalltalker who is just starting grad school at UIUC and
>> you can expect to hear a lot from him in the future!
>> So, here is a summary of my proposal.  I want to know what you
>> think about it!
>> We will make the final 3.10 alpha be to add the new versions browser,
>> and the final alpha image will have a new history database, a new
>> .sources file and an empty changes file.  If you update your old image
>> to have all the changes then you will still have the old .sources file
>> and the old .changes file and the history database won't be much use
>> to you.  We might not have the remote history database working.  We
>> should be able to do this within a week.
>> During the beta period we will just fix bugs.  One of those bugs might
>> be the fact that the remote history database doesn't work.
>> The final 3.10 release will have a new .sources file and a new
>> history database.
>> -Ralph
>> _______________________________________________
>> V3dot10 mailing list
>> V3dot10 at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/v3dot10
> _______________________________________________
> V3dot10 mailing list
> V3dot10 at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/v3dot10

I send copy to my students.
Next week they try on the last 3.10 we got at week end (today is 7034)
The test is under Mac OS X, Windows XP, Windows 98 and Umbuntu operative

Very thanks , Maurice !


More information about the V3dot10 mailing list