Re: [Activetcl] Proposed Teacup behaviour change
by Andreas Kupries other posts by this author
Jun 18 2008 10:41AM messages near this date
view in the new Beta List Site
[Activetcl] Proposed Teacup behaviour change
|
Re: [Activetcl] Proposed Teacup behaviour change
A heads up for all users of 'teacup update-self'.
The behaviour I proposed below has been implemented now, having received no
objections at all.
A teacup having the new behaviour will become visible through our TEApot in
the next few days, with a build number of 286074 or higher. The exact number
may vary, but only upward, depending on unrelated checkins made before the
build is triggered.
The current version of teacup in the TEApot is 8.5.2.1.285763, and is
without the proposed change.
--
Andreas Kupries <andreask@[...].com>
Developer @ http://www.ActiveState.com
Tel: +1 778-786-1122
> -----Original Message-----
> From: activetcl-bounces@[...].com
> [mailto:activetcl-bounces@[...].com]On Behalf Of Andreas
> Kupries
> Sent: Wednesday, May 14, 2008 11:10 AM
> To: Activetcl ML
> Subject: [Activetcl] Proposed Teacup behaviour change
>
>
>
> Introduction
> =============
>
> The currently documented behaviour of teacup is that it stores its
> preferences aka settings aka configuration under the directory
> "$HOME/.teapot/config/", and that the default hardwired locations for its
> index cache and default installation repository are subdirectories of
> ""$HOME/.teapot/".
>
> The major effect of this behaviour is that the settings are shared between
> multiple installations of ActiveTcl. A user working with such has to
> explicitly switch the location of the default installation
> directory during
> work, and a major source of problems is forgetting to do so. In different
> words, a consequence of the sharing and source of bad surprises is that a
> 'teacup' application of installation A will manipulate the repository of a
> different installation B if the configuration was switched to point to B.
> See http://bugs.activestate.com/show_bug.cgi?id=76295 for a bug coming out
> this.
>
> The recent change to ActiveTcl which moved the standard repository to
> <installdir>/lib/teapot, i.e. giving multiple installations separate
> repositories, while good in general, actually exacerbated the problem, or
> maybe exposed it more strongly.
>
> Proposal
> ========
>
> Therefore, to continue the trend of separating the information used by
> different installations of ActiveTcl, we *propose* the following
> changes to
> the behaviour of teacup:
>
> (1) The most deeply hardwired default location for the installation
> repository used by teacup is changed from "$HOME/.teapot/repository"
> to
> ${INSTALLDIR}/lib/teapot
>
> assuming that teacup is located at
>
> ${INSTALLDIR}/bin/teacup
>
> I.e. the repository location is changed to be computed
> relative to the
> location of teacup itself.
>
> This makes the default location truly dependent on the
> location of the
> installation and will cause a teacup for installation A to
> manipulate
> only the repository of A, with the only exception explicit
> requests by
> the user, be it through --at, or changing it via 'teacup default'.
>
> (2) The hard-wired location of the teacup configuration is changed from
>
> $HOME/.teapot/config
> to
> $HOME/.teapot/$INSTALLATION_CODE/config
>
> where $INSTALLATION_CODE is a string dependent on the
> chosen INSTALLDIR
> and the platform teacup is run on. It is actually the
> normalized INSTALLDIR
> with colons and slashes mapped to their hex encodings, and
> the platform
> code
> appended.
>
> Example:
> The configuration for a teacup installed at
> /usr/local/bin/teacup
> will be stored under
>
> $HOME/.teapot/%2fusr%2flocal-PLATFORM/config
>
> By keeping the location in a subdirectory of $HOME we avoid possible
> permission problems, i.e. write denied, even when the user
> accesses some
> global installation in admin owned directories.
>
> Adding in the INSTALLDIR dependent component then separates
> out the data
> for
> multiple installations by their path. The platform
> dependent information is
> necessary in case a user sees multiple installations in the
> same path
> through
> NFS mounts, dependent on the host and platform it accesses the
> installations
> from.
>
> (3) In a similar manner the default location of the index cache
> is changed
> from
> $HOME/.teapot/indexcache
> to
> $HOME/.teapot/$INSTALLATION_CODE/indexcache
>
>
> Compatibility and migration
> ===========================
>
> (a) Existing installations of ActiveTcl and teacup continue to operate
> unchanged.
>
> (b) When updating the teacup of an existing installation to a new teacup
> having the changed behaviour the new teacup will copy the existing
> configuration from
> $HOME/.teapot/config
> to
> $HOME/.teapot/$INSTALLATION_CODE/config
> and then start to work independent of it.
>
> I.e. it will notice on its first call that it doesn't have
> $HOME/.teapot/$INSTALLATION_CODE/config, but that there is
> $HOME/.teapot/config, and use that to trigger the migration.
>
> (c) If multiple installations of older ActiveTcl's exist, then
> upgrading all of their teacups and then using them in turn
> will trigger each migration.
>
> There the user has to check after the migration that each
> installation got the correct locations for installation
> repository and index cache from the migrated configuration,
> and adjust them if necessary.
>
> (d) Future releases of ActiveTcl containing teacups with the
> modified behaviour will do the same type of configuration
> migration during the installation, with the installer
> setting the repository location correctly.
>
> Note: With the existing behaviour the repository location
> in the shared configuration will always point to the ActiveTcl
> which was installed last. With the proposed behaviour the
> shared configuration of older ActiveTcl installations is left
> unchanged.
>
>
> Closing
> =======
>
> Does anybody have any thoughts on these proposed behavior changes for
> teacup?
>
>
> --
> Andreas Kupries <andreask@[...].com>
> Developer @ http://www.ActiveState.com
> Tel: +1 778-786-1122
>
>
> _______________________________________________
> ActiveTcl mailing list
> ActiveTcl@[...].com
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
_______________________________________________
ActiveTcl mailing list
ActiveTcl@[...].com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Thread:
Andreas Kupries
Andreas Kupries
Larry W. Virden
Andreas Kupries
|