[squeak-dev] My social distancing project - MCConfiguration maps with versioning, comments, and author timestamps.

David T. Lewis lewis at mail.msen.com
Wed Apr 29 21:47:39 UTC 2020


If someone has some spare cycles to take a look at this, I would
appreciate a review. I'd like to move this to trunk but I would
like at least one other set of eyeballs on it before I do so.

Here is how to test:

1) Merge Tests-dtl.432 and MonticelloConfigurations-dtl.167 from the
inbox into your image.

2) Run MCConfigurationTest tests if you want to see how it works.

3) Open a repository such as trunk or VMMaker, and browse one of the
update maps (e.g. update-mt.466.mcm in the trunk repository).

4) Change something in the browser (update a dependency or something
like that).

5) Click the save button, entering things as prompted. There will
be an editor for providing a version comment. When you you get to
the dialog for selecting a repository, pick a local directory based
repository on your hard drive (do not save back to the trunk repo).

6) Find the new MCM that you just saved, and browse it.

7) The browser will have a "Versions" button on the button bar. Click
that to open an explorer showing a list of the new version and of its
predecessors. Each of these instances maintains its own list of prior
versions, as well as the comment text, a timestamp, author initials,
and a UUID. There is no user interface for this, but an explorer is
sufficient to show the version history.

8) From your local directory based repository, try browsing and saving
the MCM a couple more times, and explore the resulting history lists.

9) Using an image that does /not/ have MonticelloConfigurations-dtl.167
installed, try opening and browsing one of the extended MCM files that
you saved in your local directory based repository. They should look
exactly as you would normally see, with no version history, comments,
or author information.

10) Reply back to the list and say what you think.

Note that you should not expect a great user interface experience.
This might be the subject of a future update, but for now we just
need something that works.

Thank you!

Dave

On Sat, Apr 18, 2020 at 03:37:15PM -0400, David T. Lewis wrote:
> Has anyone had a chance to take a look at this? I've made a comple of
> updates, so the current versions in the inbox are Tests-dtl.432 and
> MonticelloConfigurations-dtl.167.
> 
> I should note that these updates interoperate with the current SqueakSource
> servers without issue, but the servers will need to have their
> MonticelloConfigurations packages updated before they can render the
> MCM files in the new format. So the easiest way to test is with either
> a local file based repository, or with a Personal Squeaksource that
> has MonticelloConfigurations update from the inbox.
> 
> When browsing an MCConfiguration, click the "Versions" button to see
> comments, timestamps, and version history. I'm attaching a screen shot
> of an explorer on the versions to give a feel for the organization.
> 
> Comments and criticism welcome,
> 
> Dave
> 
> 
> On Wed, Apr 15, 2020 at 08:27:10PM -0400, David T. Lewis wrote:
> > I should mention that I made a couple of changes to the MCConfigurationBrowser
> > configuration browsers. These are:
> > 
> > 1) There is a new button labeled "Versions" that opens an explorer on
> > the version history of an MCConfiguration. Each entry in the history
> > list can be browsed by sending #browse to it in the explorer.
> > 
> > 2) When an MCConfigurationBrowser is opened on an MCConfiguration, it
> > always opens on a new #copyForEdit version of the configuration, with
> > the prior version added to its history.
> > 
> > Those are the only changes that I made to the UI, but they seem to be
> > sufficient for any use case that I can think of at the moment.
> > 
> > Dave
> > 
> > 
> > On Wed, Apr 15, 2020 at 07:55:08PM -0400, David T. Lewis wrote:
> > > On second thought, I am going to just copy the whole thing into the
> > > inbox. If this goes to trunk, we can consolidate the versions into one
> > > update and move all of this to treated, but for now it may be easier to
> > > review the code if you can see my update history.
> > > 
> > > All changes are in package MonticelloConfigurations, with new unit tests
> > > in the Tests package. The updates that I will put into the inbox are:
> > > 
> > >   MonticelloConfigurations-dtl.160
> > >   MonticelloConfigurations-dtl.161
> > >   MonticelloConfigurations-dtl.162
> > >   MonticelloConfigurations-dtl.163
> > >   MonticelloConfigurations-dtl.164
> > >   MonticelloConfigurations-dtl.165
> > >   Tests-dtl.430
> > >   Tests-dtl.431
> > >   Tests-dtl.432
> > > 
> > > Dave
> > > 
> > > 
> > > On Wed, Apr 15, 2020 at 06:06:29PM -0400, David T. Lewis wrote:
> > > > Hi Chris,
> > > > 
> > > > I'll tidy it up and put something in the inbox tomorrow. The backward
> > > > compatibility amounts to tricking the existing MCM parser into ignoring
> > > > additional entries in the array of configuration entries. I think that
> > > > this can be further extended as needed, and I also added a version
> > > > field that could be updated for future extensions.
> > > > 
> > > > Dave
> > > > 
> > > > 
> > > > On Tue, Apr 14, 2020 at 09:37:53PM -0500, Chris Muller wrote:
> > > > > Sounds great!  Thanks!
> > > > > 
> > > > > Well done with the backward compatibility -- I'm interested in learning
> > > > > more about how you accomplished that.  I'm hopeful it's by a way that
> > > > > leaves open further potential upgrades in the future, too.
> > > > > 
> > > > >  - Chris
> > > > > 
> > > > > On Tue, Apr 14, 2020 at 6:37 PM David T. Lewis <lewis at mail.msen.com> wrote:
> > > > > 
> > > > > > An MC update stream, such as the Squeak trunk update stream, relies
> > > > > > on a sequence of update maps stored in a repository. The update maps
> > > > > > (MCM files) do not retain information about their authors or the time
> > > > > > and reason for committing the maps, and they do not retain change
> > > > > > information if an existing update map is modified, as occasionally
> > > > > > may be required to correct a problem in the update stream.
> > > > > >
> > > > > > I have found a way to extend the MCM configurations such that they
> > > > > > can be stored in a format that saves the additional version information,
> > > > > > and that is still readable by any earlier Squeak image. Updated images
> > > > > > can read and understand the version information, and will store new MCM
> > > > > > updates with comments, author initials, time stamps, and version history.
> > > > > >
> > > > > > I have a working version of this in my own image. It seems to work quite
> > > > > > well, although I think I need to spend some more time using it before
> > > > > > suggesting it for general use. If there is in interest, I can put a copy
> > > > > > in the inbox.
> > > > > >
> > > > > > Dave
> > > > > >
> > > > > >
> > > > > >
> > > > 
> > > > > 
> > > > 
> > > > 
> > > 
> > 


> 



More information about the Squeak-dev mailing list