[V3dot10] Announcing new VersionsBrowser and source condensing
Maurice Rabb
m3rabb at uiuc.edu
Thu Jul 26 01:43:32 UTC 2007
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/v3dot10/attachments/20070725/dc3f7211/attachment-0001.htm
More information about the V3dot10
mailing list