SCM'ed VW

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

Re: SCM'ed VW

Charles Adams

Publish what you support. Period.

I don't buy into the notion of Cincom providing SQLite or some other engine
to the customer as part of a release. You already provide interface classes
for a variety of engines. Let the customer pick the product to use. Just be
able to replicate from your server to ours. To wit, you can merely host a
release dB (postgres for all I care) the same way you host the public
repository, just make it subscription based.

The only thing wrong with the Cincom Public Repository model is its generous
access. Lock it down and regulate access. Inject only supported releases.
And thats it.


----- Original Message -----
From: "Samuel S. Shuster" <[hidden email]>
To: "Steven Kelly" <[hidden email]>
Cc: "Alan Knight" <[hidden email]>; "Charles Adams" <[hidden email]>;
<[hidden email]>
Sent: Wednesday, January 23, 2008 3:11 PM
Subject: Re: SCM'ed VW


> Steven:
>
>> I think doing the export for weekly builds is overkill, because of  the
>> version numbering issue. I imagine most VW users aren't in the  vw-dev
>> program anyway, or at least aren't actively downloading each  week. It
>> would be enough to test the export in the release  candidates in vw-dev,
>> with the warning not to replicate them to  another db. Actually, there
>> seems no point replicating to another db  in any case, for users on
>> Windows: just keep the VW packages linked  only to the local SQLite
>> Cincom db, which can even be used by  multiple users (all access would be
>> read-only). (BTW A nice addition  to Store would be that if a package in
>> the image doesn't have  version info for the currently selected
>> repository, but does for one  other, it would automatically use that
>> repository for compares etc.)
>
>
> Ok, I may be a bit off on this, but as Store Lead, that's my job.
>
> Let's for a second take as a notion that for releases, we produce a
> SQLite DB file, with everything that is JUST in visual.im (leaving  aside
> issues with that for the moment). Of course, that means the  visual.im
> will have Store, A StoreFor(SQLite or ODBC) and a (SQLite or  ODBC)EXDI in
> it OR maybe a single Parcel you can load to bring that in  if you want.
> The details there aren't really important for this  thought experiment.
>
> Ok, you get your brand new 7.7 (for instance) and you load up/or  connect
> to the DB file.
>
> For the next 12-16 months or so, you use this database file, pushing  your
> changes to it and so on.
>
> Now 7.8 comes along with it's own DB file (we'll assume for the moment
> that it is named something different from the one that came with 7.7).
>
> From cursory investigation, SQLite allows you to attach to multiple  DB
> files.
>
> With that as our posit:
>
> It seems to me that at the very least, a mini-merge/replicator is  needed,
> which would take the 7.8 database and merge it into the 7.7  database (or
> visa versa). Details of where to merge it to aren't  really important at
> this stage (probably parent to "your choice" of  some kind).
>
> Is that good enough? Or
>
> Is a full merge/replicator which allows you to cross database target  the
> merge/replication to some other database (DB/2, Oracle, whatever)?
>
> And finally, is JUST visual.im enough?
>
> Should it be everything that is supported and not contributed?
>
>                                 And So It Goes
>                                      Sames
> ______________________________________________________________________
>
> Samuel S. Shuster [|]
> VisualWorks Engineering, Store Project
> Smalltalk Enables Success -- What Are YOU Using?
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

RE: SCM'ed VW

Steven Kelly
In reply to this post by Charles Adams
Message
I just tried StoreForSQLite3 with SQLite 3.5.4 DLL on Windows. 4 minutes to publish BaseVisualWorks from 7.4.1, about 1.5 minutes to reconcile it. Results in a single 19MB file which zips to under 5MB. Adding all the VW parcels that we use takes another 3 minutes and bumps it up to 40MB, 10MB zipped. Reconciling 7.5 (with the same parcels) with that repository takes 4 minutes, opening all the publish dialogs for all 60 changed bundles or packages takes 1 minute (!), using hacky code to answer all of these dialogs automatically takes 3 minutes. There was an error while installing the blessing for the first pundle, but proceeding and accepting to re-open the Store connection worked (so no worse than PostgreSQL over the Atlantic!). The final size of the db was 50MB. All of this was over Remote Desktop Connection (so possibly slowed down by cursor flicker, but I tried to minimize that), running on a P4 3GHz.
 
Reconciling 7.5 again as a check gave errors allocating Pixmaps when updating the DoubleBuffering display in Store's Notices: I guess SQLite3 or its use in VW is leaking handles, or then the large number of notices somehow overwhelmed finalization (or then there's a bug in them). I can't check now, as Windows ran out of resources and killed my remote session, and needs me to go back to the office to reboot it.
 
zipping the db gives the warning that the file is opened by another application, apparently even after disconnecting from Store. Sounds like that should be corrected; shouldn't be hard.
 
BTW, does anyone know who "olaf" is or have his contact info? Overall it looks like his parcels are pretty close to being just what the doctor ordered for a local Store db, and it would be good to check the licensing.
 
Also in the public repository: StoreForSqlite by gjdvgj, Jürgen Gmeiner.
LGPL, looks a couple of years older, for SQLite 2.8.6 rather than 3.3, but has a LOT more code. Whether this is good or bad remains to be seen! The web page has installation instructions, which were useful when trying out StoreForSQLite3.
 
Cheers,
Steve
-----Original Message-----
From: Tim Hutchison [mailto:[hidden email]]
Sent: 23. tammikuuta 2008 18:50
To: VWNC
Subject: Re: SCM'ed VW

Currently in the Cincom Public Repository;
SQLite3EXDI-Preload (sqlite3-vw7.x-2,olaf)
SQLite3EXDI (sqlite3-vw7.x-2,olaf)
StoreForSQLite3 (sqlite3-vw7.x-2,olaf)

Could be that these may need a little more work. 

Alan Knight wrote:
At 03:22 AM 1/23/2008, Steven Kelly wrote:
Hi,
From: Alan Knight [[hidden email]]
Indeed, the reasons are all procedural, logistical, and financial :-)

At 03:52 PM 1/22/2008, Charles Adams wrote:
With all the talk about Store and the best database product to use, its time, once again, to bring up the issue of a published distribution. It is long past time for Cincom to produce versioned code in some sort of Store configuration. There's no technical, legal or even philosophical reason why this can't or shouldn't be done.

 
If I tried to hand my customers files instead of software under configuration management, I'd be out of business. Look... I'm not going to stand here and make the case for SCM. We are all seasoned professionals. Its time for Cincom to acknowledge their responsibilities in this area. '

I'd second the request, something I first asked for in 5i.3 :-). Alan says "procedural, logistical and financial", so let's look at those.
 
"Procedural" - you mean someone at Cincom would have to publish the base, or more likely replicate the release pundle lineup. Currently, every customer wanting to see VW version history in Store, or wanting to know what they've accidentally changed in base VW packages, needs to do that. We've even partly automated the reconcile + publish process, and I'm sure you could do better.
 
"Logistical" - you mean Cincom has to find a way to distribute the published repository. An SQLite file sounds like an obvious solution. A method in the base to script the reconcile + publish would of course require zero effort to distribute.
 
"Financial" - there are no direct costs involved, only time: tell us how long it will take you in hours. We already spend something like that number of hours, but without the certainty that what we arrive at is "official". You even have the offer of using Adventa's (or MetaCase's) publish, if that helps.
 
Making the upgrade easier will also lower the perceived barrier to upgrading to a new VW version. The time and annoyance of having to do the reconcile and publish ourselves are one thing. Another is the worry that in a partially manual and hackily automated process, we may cause ourselves versioning problems. With a correct reconcile + publish, it's easy to check for potential problems by comparing with the previous version, and of course it's a major help in debugging such problems.

I think there's more to it than that. There are, for example, some interesting issues about what exactly we're exporting. So, presumably we'd want to be creating such an export with each weekly build, and with release candidates. I'd certainly hate to have something that we only did once a release and expected to get precisely right that one time. So then what are exporting? Do we use our own internal version numbers or something else? What's the parent version? When we release, I think what customers would ideally like is to have version numbers like "7.6" whose parent versions are like "7.5". So should we do an export that warps the version numbers and the parents to that? And if we do, what do we do in the weekly builds? Are their parents the previously weekly builds, or are they the previous released version? And do release candidates then each provide a set of versions named 7.6, but which are different? Or should we just expose our internal names (These currently tend to look something like 7.6jan08.3 3, reflecting the build they're targeted at, plus an increment. But things that haven't changed don't get re-published, so may have version numbers from different builds, or if they haven't been changed in this release, previous releases. Our internal names also aren't always consistent). Should we change our internal naming convention to be something that's more convenient for customers, and if so, what would it be?

There's also the issue of support. If we're putting something like this into supported status, then that implies also putting into supported status and maintaining various other things. Assuming SQLLite worked out, it means a SQLLite EXDI layer, Store for SQLLite, some form of Store Replication (at least to get it from that repository into the customers, and probably to get it into that one in the first place), and the specific bits of that required for SQLLite, if any. That's not a trivial amount of stuff. If SQLLite is not supported on one of our supported platforms (how's their SGI support? MacOS9?) then that's also an issue. It's possible we could ignore that on the assumption that everyone's got a machine around somewhere that can talk to both SQLLite and their store database, but that's an interesting decision. Or we could say that we're distributing this, but not in a supported way - again, an interesting product management type of decision.

Aside: I'm assuming we'd want to replicate because I think we'd want to do this for the full set of things we're distributing (or at least the full set of supported things), not just for the things that are in the standard base image, so reconciling and publishing with regular Store, which requires things to be loaded into the image, seems less good. There are also alternative ways of distributing it. One would be as ExportDatabase files. But that needs some work, might have some scaling issues for large databases, and relies on John Brant's Replicator for its underlying support. Another would be, rather than distributing a file, to give customers access to a Store database online with the information in it and let them replicate it however they want. That would still require replication, but might address some of the issues of version naming. We don't put the versions into that database until we have a shipped release, and we rename them to correspond to the release at that point. It could also just be a Postgresql database, removing the issue of supporting another one (although SQLLite might be useful in its own right as a portable starter database for Store). And we could easily make past versions available - handling the parentage if we only ship one release's versions in the distribution is an interesting question.

So, I think this is a good idea, I think it would be valuable to customers (and a good number of customers seem to strongly agree) and I've spent time thinking about how to implement it previously. But it's also not trivial, and I don't even have a good idea of how many hours it would take to do it. I don't think that access to someone else's publish of the base is all that helpful. We do have our own. The issues are mostly around exactly what and how to distribute, and how this compares to all the other things that customers think we ought to be doing.

One of the responders asked how people could help. The most obvious way, of course, is by giving us money. It makes it ever so much easier to find time and money when people give us the latter. The more the better :-) However, barring that, useful suggestions about how people would want to receive such a distribution and what they would want it to look like are probably the most valuable. And writing code is good - e.g., if someone wanted to write "rename and reparent while replicating" functionality. But that's assuming that we knew exactly what we wanted to do.



--
Alan Knight [|], Cincom Smalltalk Development
Reply | Threaded
Open this post in threaded view
|

RE: SCM'ed VW

Steven Kelly
In reply to this post by Charles Adams
Re: SCM'ed VW
Sames: I agree. That's why I'd already come down on the side of Option 1: just supply a script to reconcile and publish all packages to a repository. I have such a script, but can't get the latest version of it because my Remote Desktop Connection died. Below is something that probably works. We have used this as part of our build for years, along with code to load parcels for Store support etc. first.
 
If you start this script with a connection to a Store repository open, it should reconcile all packages with the latest VW-like version number found there (5i.2 - 7.5), and publish the non-matching packages as the current VW version number. Obviously, you should only test this in a scratch repository, only have Cincom packages loaded, and any previous versions in that repository should use the same version numbering scheme.
 
HTH,
Steve
 
"reconcile and publish VW packages from Cincom to Store with current VW version number"
"reconcile all packages with Store"
vwVersion := ((SystemUtils version readStream upToAll: ' of ') tokensBasedOn: Character space) detect: [:vStr | vStr allSatisfy: [:ch | '1234567890.i' includes: ch]].
foundVersion := false.
vwVersions := #('7.5' '7.4.1' '7.4' '7.3.1' '7.3' '7.2.1' '7.2' '7.1' '7.0' '5i.4' '5i.3' '5i.2') select: [:vs | foundVersion := foundVersion or: [vs = vwVersion]].
Undeclared purgeUnusedBindings.
toPublishDict := Dictionary new.
(Store.Registry allPundlesSorted select: [:pm | (Store.Registry enclosingComponentsFor: pm) isEmpty]) do:
  [:pundleModel | | dbVersion |
  dbVersion := (pundleModel class databaseClass allVersionsWithName: pundleModel name) detect: [:package | vwVersions includes: package version] ifNone: [].
  (dbVersion isNil or:
  [dbVersion getImagePundle reconcileWithDbVersion: dbVersion.
  pundleModel hasBeenModified])
    ifTrue: [toPublishDict at: pundleModel put: pundleModel changeSet]].
 
"toPublishDict now contains a list of all changed or new pundles which are not enclosed by another pundle"
"Open publish dialogs for all changed or new pundles"
toPublishDict keys do: [:pun | pun storeInDB].
"For each publish dialog, fill in the version info and publish"
((Store.PublishPundleDialog allInstances, Store.PublishPackageDialog allInstances) select: [:pd | pd builder window isOpen]) do: [:pd |
  pd blessingLevel value: (Store.Policies blessingPolicy releasedBlessing).
  pd blessingComment value: 'Auto-reconciled'.
  pd allBlessings.
  pd versionString value: vwVersion.
  pd allVersions.
  pd accept].
 

 

From: Samuel S. Shuster [mailto:[hidden email]]
Sent: Wed 1/23/2008 23:11
To: Steven Kelly
Cc: Alan Knight; Charles Adams; [hidden email]
Subject: Re: SCM'ed VW

Steven:


> I think doing the export for weekly builds is overkill, because of 
> the version numbering issue. I imagine most VW users aren't in the 
> vw-dev program anyway, or at least aren't actively downloading each 
> week. It would be enough to test the export in the release 
> candidates in vw-dev, with the warning not to replicate them to 
> another db. Actually, there seems no point replicating to another db 
> in any case, for users on Windows: just keep the VW packages linked 
> only to the local SQLite Cincom db, which can even be used by 
> multiple users (all access would be read-only). (BTW A nice addition 
> to Store would be that if a package in the image doesn't have 
> version info for the currently selected repository, but does for one 
> other, it would automatically use that repository for compares etc.)


Ok, I may be a bit off on this, but as Store Lead, that's my job.

Let's for a second take as a notion that for releases, we produce a 
SQLite DB file, with everything that is JUST in visual.im (leaving 
aside issues with that for the moment). Of course, that means the 
visual.im will have Store, A StoreFor(SQLite or ODBC) and a (SQLite or 
ODBC)EXDI in it OR maybe a single Parcel you can load to bring that in 
if you want. The details there aren't really important for this 
thought experiment.

Ok, you get your brand new 7.7 (for instance) and you load up/or 
connect to the DB file.

For the next 12-16 months or so, you use this database file, pushing 
your changes to it and so on.

Now 7.8 comes along with it's own DB file (we'll assume for the moment 
that it is named something different from the one that came with 7.7).

 From cursory investigation, SQLite allows you to attach to multiple 
DB files.

With that as our posit:

It seems to me that at the very least, a mini-merge/replicator is 
needed, which would take the 7.8 database and merge it into the 7.7 
database (or visa versa). Details of where to merge it to aren't 
really important at this stage (probably parent to "your choice" of 
some kind).

Is that good enough? Or

Is a full merge/replicator which allows you to cross database target 
the merge/replication to some other database (DB/2, Oracle, whatever)?

And finally, is JUST visual.im enough?

Should it be everything that is supported and not contributed?

                                 And So It Goes
                                      Sames
______________________________________________________________________

Samuel S. Shuster [|]
VisualWorks Engineering, Store Project
Smalltalk Enables Success -- What Are YOU Using?




Reply | Threaded
Open this post in threaded view
|

Re: SCM'ed VW

Reinout Heeck-2
In reply to this post by Steven Kelly

> BTW, does anyone know who "olaf" is or have his contact info?
That would be my colleague here at Soops.
  mailto:[hidden email]

The code is MIT-licensed, Olaf will shortly republish the packages with
a license included.


R
-

Reply | Threaded
Open this post in threaded view
|

Using SQLite as VisualWorks' Store

Vladimir Pogorelenko
In order to continue VisualWorks SCM questions and SQLite as solution...

Two questions:

1. Did anybody sucessfully manage to use SqliteForStore on Mac OS X  
Leopard?

2. How to link sqlite database with Store connection parameters? What  
should I specify in Environment field. I'am not found any docs for it.  
Do I need to create sqlite database and attach it?

Please could anybody show any examples?

Reply | Threaded
Open this post in threaded view
|

RE: Using SQLite as VisualWorks' Store

Steven Kelly
> From: Vladimir Pogorelenko [mailto:[hidden email]]
> Sent: 24. tammikuuta 2008 16:12
>
> 1. Did anybody sucessfully manage to use SqliteForStore on Mac OS X  
> Leopard?

We're having enough trouble with VW on Leopard :-). What do people find
is the best VM in terms of 7.4d/7.5/7.6 dev and Aqua/X11?
 
> 2. How to link sqlite database with Store connection
> parameters? What  
> should I specify in Environment field. I'am not found any
> docs for it.  
> Do I need to create sqlite database and attach it?

See instructions here: http://www.ch-werner.de/sqliteodbc/
When running the VW method to install the tables, you are asked for the
name of the db, and VW then creates that db as a file of that name.

Steve

Reply | Threaded
Open this post in threaded view
|

Re: Using SQLite as VisualWorks' Store

Tim Hutchison
In reply to this post by Vladimir Pogorelenko
I don't have a Mac (yet), so have no experience with SQLite on that platform.

In the environment field you put the path to the database file.
C:/store/mystore.db, or /home/myHome/store/mystore.db
Provide an ID, any ID.  That ID will be associated with the published packages/bundles.
No password is necessary.  If prompted just press the OK button. 

Vladimir Pogorelenko wrote:
In order to continue VisualWorks SCM questions and SQLite as solution...

Two questions:

1. Did anybody sucessfully manage to use SqliteForStore on Mac OS X Leopard?

2. How to link sqlite database with Store connection parameters? What should I specify in Environment field. I'am not found any docs for it. Do I need to create sqlite database and attach it?

Please could anybody show any examples?




--
Tim Hutchison  [hidden email]
ControlWORKS
Adventa Control Technologies, Inc.
3001 East Plano Parkway, #100
Plano, TX 75074-7422
Voice: (972) 543-1651
Fax: (972) 633-9317
www.AdventaCT.com

Reply | Threaded
Open this post in threaded view
|

Leopard was: Using SQLite as VisualWorks' Store

Mike Hales
In reply to this post by Steven Kelly
I'm still using 7.5/X11, but the sad reality is I rarely code on my  
mac, I just use my old linux desktop machine.

The question I have for Cincom is, will any of Andre's or Antony's mac  
vm work get integrated into the base?  And if not, will VW users  
willing to use those modified vm's be able to under Cincom's license?  
(Assuming that those guys are willing to publish their work).

Mike


On Jan 24, 2008, at 7:51 AM, Steven Kelly wrote:

> We're having enough trouble with VW on Leopard :-). What do people  
> find
> is the best VM in terms of 7.4d/7.5/7.6 dev and Aqua/X11?

Reply | Threaded
Open this post in threaded view
|

Re: Leopard was: Using SQLite as VisualWorks' Store

Antony Blakey-2

On 25/01/2008, at 3:37 AM, Mike Hales wrote:

> The question I have for Cincom is, will any of Andre's or Antony's  
> mac vm work get integrated into the base?

My fixes have been incorporated, but it's really Andre's that are  
significant.

>  And if not, will VW users willing to use those modified vm's be  
> able to under Cincom's license?  (Assuming that those guys are  
> willing to publish their work).

I presume you mean fixes and not e.g. my WebKit integration involving  
gc mods. One problem publishing a public VM containing mods that  
Cincom don't wish to/have time to incorporate is that I can't publish  
the source, so the VM would be unsupported. I'd be cautious about  
doing that because not only is there a sense of moral responsibility  
that goes along with publication, there is also the possibility of  
significantly bad karma if I was unable to respond or decided to  
abandon the project.

Having said that, it would nice if I could share source with other  
source licensees, but you can imagine the procedural issues with that  
e.g. trying to stay in sync with vw-dev membership (which is  
equivalent to source access). At first blush, the only realistic  
solution would be for Cincom to host e.g. my Bazaar repository of VM  
sources, independently (or not) for each contributor, because that  
only involves ftp/http access which Cincom could control access to.  
They already do that for files referenced in my blog, but it's not  
access controlled. This would be as close to community development as  
you could get for a proprietary source base.

And having said that :), I don't know if there's a big enough demand  
for it.

Antony Blakey
-------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

Nothing is really work unless you would rather be doing something else.
   -- J. M. Barre


Reply | Threaded
Open this post in threaded view
|

Re: SCM'ed VW

Niall Ross
In reply to this post by Steven Kelly
Dear Steve, Alan et al.,
    one thing not yet discussed is the parent-child structure.  My 0.02p.

1) As it happens, I don't find publishing the base much of a problem.  
Scripts like Steve's help and having a Store database that is just for
releases, from which you then replicate to others, can also be
convenient, but if it is done as a background activity it takes little
actual effort.  As a marketting issue, a script (or other solution) does
avoid complaints from new customers, people arriving from Envy, etc.

(When I publish the base, I find most time is spent deciding issues of
renaming / resubpundling and whether to revert non-change changes:  when
a package was last changed in 7.2, say, I dislike populating my image
with spurious 7.3, 7.4 and 7.5 versions whose only difference is a
parcelVersion property with value '7.3', '7.4' and '7.5'.  Like Steve, I
feel that if a thing has not changed from one release to the next then
its parcel and package number should not change either.  I commented on
the first issue in response to James:
http://www.cincomsmalltalk.com/blog/blogView?showComments=true&title=Migrating+to+a+new+version&entry=3378398007#3378398007..  
In both cases, doing anything is unnecessary work from the point of view
of someone who is happy to publish the image as supplied and accept the
result.)

2) If Cincom provides a release database from which people can replicate
then most customers will want one that looks like it was created via
e.g. Steve's script:  only changed released versions directly parented
by prior released versions.  (By all means test the procedure by using
it on internal versions but only VW-DEV people will want those - and
even they will usually want to have only releases in the database they
use to help port their apps from one release to another.)  If such a
database appears in a month or so then Cincom's 7.6 will have parent
Cincom's 7.5, which should be equal to each customer's 7.5 but will not
be identified with it when they replicate, and likewise for all earlier
versions.

So if future releases come with a Registry>>publishBase or whatever,
customers stay with equal non-identical base versions just as now.  If,
instead, a Cincom release database is made visible and users are
encouraged to replicate releases (an option in the install dialog?),
then all customers will have identical (i.e. will be identified by
replication) release versions in their databases in future - and a
disconnect between those and their own current and older base-publishe
versions.  One could say, "Live with it;  does it matter?".  
Alternatively, a script to equalise the timestamps of source-equal
release pundles is possible.  Customers who publish the base reasonably
soon after receiving a release should notice little effect on their
databases.

3) Providing a replicable base release by publishing it to an SQLLite DB
included with the distribution raises the question of what parents
should be included.  For all those who use other databases it is also
more work than a script.

To sum up:

 - A base-publishing script lets customers use the same process as now,
but more easily.  It looks like an acceptable immediate and cheap solution.

 - A Cincom database of release versions should exist just to test the
script if for no other reason.  If it were made visible (i.e. beyond
VW-DEV) then the issue of identity in Store (identity in replication and
identify in renaming / resubpundling) should be thought about before
making replication from it a replacement for customer's publishing the base.

HTH
          Yours faithfully
             Niall Ross


Steven Kelly wrote:

> I just tried StoreForSQLite3 with SQLite 3.5.4 DLL on Windows. 4
> minutes to publish BaseVisualWorks from 7.4.1, about 1.5 minutes to
> reconcile it. Results in a single 19MB file which zips to under 5MB.
> Adding all the VW parcels that we use takes another 3 minutes and
> bumps it up to 40MB, 10MB zipped. Reconciling 7.5 (with the same
> parcels) with that repository takes 4 minutes, opening all the publish
> dialogs for all 60 changed bundles or packages takes 1 minute (!),
> using hacky code to answer all of these dialogs automatically takes 3
> minutes. There was an error while installing the blessing for the
> first pundle, but proceeding and accepting to re-open the Store
> connection worked (so no worse than PostgreSQL over the
> Atlantic!). The final size of the db was 50MB. All of this was over
> Remote Desktop Connection (so possibly slowed down by cursor flicker,
> but I tried to minimize that), running on a P4 3GHz.
>  
> Reconciling 7.5 again as a check gave errors allocating Pixmaps when
> updating the DoubleBuffering display in Store's Notices: I guess
> SQLite3 or its use in VW is leaking handles, or then the large number
> of notices somehow overwhelmed finalization (or then there's a bug in
> them). I can't check now, as Windows ran out of resources and killed
> my remote session, and needs me to go back to the office to reboot it.
>  
> zipping the db gives the warning that the file is opened by another
> application, apparently even after disconnecting from Store. Sounds
> like that should be corrected; shouldn't be hard.
>  
> BTW, does anyone know who "olaf" is or have his contact info? Overall
> it looks like his parcels are pretty close to being just what the
> doctor ordered for a local Store db, and it would be good to check the
> licensing.
>  
> Also in the public repository: StoreForSqlite by gjdvgj, Jürgen Gmeiner.
> http://www.gjdv.at/software/store_for_sqlite
> LGPL, looks a couple of years older, for SQLite 2.8.6 rather than 3.3,
> but has a LOT more code. Whether this is good or bad remains to be
> seen! The web page has installation instructions, which were useful
> when trying out StoreForSQLite3.
>  
> Cheers,
> Steve
>
>     -----Original Message-----
>     *From:* Tim Hutchison [mailto:[hidden email]]
>     *Sent:* 23. tammikuuta 2008 18:50
>     *To:* VWNC
>     *Subject:* Re: SCM'ed VW
>
>     Currently in the Cincom Public Repository;
>     SQLite3EXDI-Preload (sqlite3-vw7.x-2,olaf)
>     SQLite3EXDI (sqlite3-vw7.x-2,olaf)
>     StoreForSQLite3 (sqlite3-vw7.x-2,olaf)
>
>     Could be that these may need a little more work.
>
>     Alan Knight wrote:
>
>         At 03:22 AM 1/23/2008, Steven Kelly wrote:
>
>>         Hi,
>>
>>             From: Alan Knight [ mailto:[hidden email]]
>>             Indeed, the reasons are all procedural, logistical, and
>>             financial :-)
>>
>>             At 03:52 PM 1/22/2008, Charles Adams wrote:
>>
>>>                 With all the talk about Store and the best database
>>>                 product to use, its time, once again, to bring up
>>>                 the issue of a published distribution. It is long
>>>                 past time for Cincom to produce versioned code in
>>>                 some sort of Store configuration. There's no
>>>                 technical, legal or even philosophical reason why
>>>                 this can't or shouldn't be done.
>>>
>>>                  
>>>                 If I tried to hand my customers files instead of
>>>                 software under configuration management, I'd be out
>>>                 of business. Look... I'm not going to stand here and
>>>                 make the case for SCM. We are all seasoned
>>>                 professionals. Its time for Cincom to acknowledge
>>>                 their responsibilities in this area. '
>>
>>
>>         I'd second the request, something I first asked for in 5i.3
>>         :-). Alan says "procedural, logistical and financial", so
>>         let's look at those.
>>          
>>         "Procedural" - you mean someone at Cincom would have to
>>         publish the base, or more likely replicate the release pundle
>>         lineup. Currently, every customer wanting to see VW version
>>         history in Store, or wanting to know what they've
>>         accidentally changed in base VW packages, needs to do that.
>>         We've even partly automated the reconcile + publish process,
>>         and I'm sure you could do better.
>>          
>>         "Logistical" - you mean Cincom has to find a way to
>>         distribute the published repository. An SQLite file sounds
>>         like an obvious solution. A method in the base to script the
>>         reconcile + publish would of course require zero effort to
>>         distribute.
>>          
>>         "Financial" - there are no direct costs involved, only time:
>>         tell us how long it will take you in hours. We already spend
>>         something like that number of hours, but without the
>>         certainty that what we arrive at is "official". You even have
>>         the offer of using Adventa's (or MetaCase's) publish, if that
>>         helps.
>>          
>>         Making the upgrade easier will also lower the perceived
>>         barrier to upgrading to a new VW version. The time and
>>         annoyance of having to do the reconcile and publish ourselves
>>         are one thing. Another is the worry that in a partially
>>         manual and hackily automated process, we may cause ourselves
>>         versioning problems. With a correct reconcile + publish, it's
>>         easy to check for potential problems by comparing with the
>>         previous version, and of course it's a major help in
>>         debugging such problems.
>
>
>         I think there's more to it than that. There are, for example,
>         some interesting issues about what exactly we're exporting.
>         So, presumably we'd want to be creating such an export with
>         each weekly build, and with release candidates. I'd certainly
>         hate to have something that we only did once a release and
>         expected to get precisely right that one time. So then what
>         are exporting? Do we use our own internal version numbers or
>         something else? What's the parent version? When we release, I
>         think what customers would ideally like is to have version
>         numbers like "7.6" whose parent versions are like "7.5". So
>         should we do an export that warps the version numbers and the
>         parents to that? And if we do, what do we do in the weekly
>         builds? Are their parents the previously weekly builds, or are
>         they the previous released version? And do release candidates
>         then each provide a set of versions named 7.6, but which are
>         different? Or should we just expose our internal names (These
>         currently tend to look something like 7.6jan08.3 3, reflecting
>         the build they're targeted at, plus an increment. But things
>         that haven't changed don't get re-published, so may have
>         version numbers from different builds, or if they haven't been
>         changed in this release, previous releases. Our internal names
>         also aren't always consistent). Should we change our internal
>         naming convention to be something that's more convenient for
>         customers, and if so, what would it be?
>
>         There's also the issue of support. If we're putting something
>         like this into supported status, then that implies also
>         putting into supported status and maintaining various other
>         things. Assuming SQLLite worked out, it means a SQLLite EXDI
>         layer, Store for SQLLite, some form of Store Replication (at
>         least to get it from that repository into the customers, and
>         probably to get it into that one in the first place), and the
>         specific bits of that required for SQLLite, if any. That's not
>         a trivial amount of stuff. If SQLLite is not supported on one
>         of our supported platforms (how's their SGI support? MacOS9?)
>         then that's also an issue. It's possible we could ignore that
>         on the assumption that everyone's got a machine around
>         somewhere that can talk to both SQLLite and their store
>         database, but that's an interesting decision. Or we could say
>         that we're distributing this, but not in a supported way -
>         again, an interesting product management type of decision.
>
>         Aside: I'm assuming we'd want to replicate because I think
>         we'd want to do this for the full set of things we're
>         distributing (or at least the full set of supported things),
>         not just for the things that are in the standard base image,
>         so reconciling and publishing with regular Store, which
>         requires things to be loaded into the image, seems less good.
>         There are also alternative ways of distributing it. One would
>         be as ExportDatabase files. But that needs some work, might
>         have some scaling issues for large databases, and relies on
>         John Brant's Replicator for its underlying support. Another
>         would be, rather than distributing a file, to give customers
>         access to a Store database online with the information in it
>         and let them replicate it however they want. That would still
>         require replication, but might address some of the issues of
>         version naming. We don't put the versions into that database
>         until we have a shipped release, and we rename them to
>         correspond to the release at that point. It could also just be
>         a Postgresql database, removing the issue of supporting
>         another one (although SQLLite might be useful in its own right
>         as a portable starter database for Store). And we could easily
>         make past versions available - handling the parentage if we
>         only ship one release's versions in the distribution is an
>         interesting question.
>
>         So, I think this is a good idea, I think it would be valuable
>         to customers (and a good number of customers seem to strongly
>         agree) and I've spent time thinking about how to implement it
>         previously. But it's also not trivial, and I don't even have a
>         good idea of how many hours it would take to do it. I don't
>         think that access to someone else's publish of the base is all
>         that helpful. We do have our own. The issues are mostly around
>         exactly what and how to distribute, and how this compares to
>         all the other things that customers think we ought to be doing.
>
>         One of the responders asked how people could help. The most
>         obvious way, of course, is by giving us money. It makes it
>         ever so much easier to find time and money when people give us
>         the latter. The more the better :-) However, barring that,
>         useful suggestions about how people would want to receive such
>         a distribution and what they would want it to look like are
>         probably the most valuable. And writing code is good - e.g.,
>         if someone wanted to write "rename and reparent while
>         replicating" functionality. But that's assuming that we knew
>         exactly what we wanted to do.
>
>
>
>         --
>         Alan Knight [|], Cincom Smalltalk Development
>         [hidden email]
>         [hidden email]
>         http://www.cincom.com/smalltalk
>



12