Squeak as Linux and other threads
Stephen Pair
stephen at pairhome.net
Tue May 20 12:25:37 UTC 2003
goran.krampe at bluefish.se wrote:
>"Andreas Raab" <andreas.raab at gmx.de> wrote:
>
>
>>>>When you 'ultimately' dereference a package you do it by
>>>>UUID. However, there are only very few places where this
>>>>is required. For everything 'inbetween' you should use
>>>>'real objects' (PackageReferences) which allow
>>>>you to think in whatever way is more convenient to you.
>>>>
>>>>
>>>Or to put it an other way (provided I understood you correctly) - we
>>>should use objects as "far" as possible and not rely on textual
>>>descriptions.
>>>
>>>
>>Not quite. My point is that even when we write tools we are 'users'. If the
>>systems makes it hard for us to get to convenient notions (names) then it's
>>going to be a pain (and that's what Lex referred to). If names/ids are
>>properly encapsulated this is much less of a hazzle.
>>
>>
>
>Ok, I am obviously not seeing the light here. It seems to me there are
>two possible scenarios, either you are using a tool that is "package
>aware" and it can then simply let you choose a package/packagerelease
>from a proper list. No UUIDs need to ever be viewed nor entered (and
>that was what I meant).
>
>...OR you don't have a "package aware UI" and then you may need to refer
>to something textually - in that case it is nice if you can use
>different means as long as you are aware of what you ar doing. Just
>using a name will possibly not be reliable in the long run. Using the
>UUID will be. Sometimes it doesn't matter and sometimes it really does -
>like when describing dependencies. When it comes to dependencies I would
>argue strongly for using UUIDs if it ever will be NEEDED to do it
>textually. But still, I am arguing that tools should be available that
>makes this unnecessary.
>
>For example, referring to a package with a UUID-based URL (and
>definitely not by using marvin.bluefish.se:8000 etc) like this is pretty
>persistent:
>
>http://map2.squeakfoundation.org/sm/package/2bbc04df-fc80-476d-9caa-6877
>fa938bc2
>
>While this is not as persistent:
>http://map2.squeakfoundation.org/sm/packagebyname/sharedstreams
>
>...but since we aren't describing dependencies it isn't as vital. Btw, I
>have taken the approach of letting the name of the Package stay in the
>Package object (and not have it in the PackageRelease objects). This
>means that a package can change name but it will - at any given time -
>have exactly one name. And any old name is forgotten.
>
>
>
>>Cheers,
>> - Andreas
>>
>>
>
>regards, Göran
>
>PS. And of course the examples with the URLs had nothing to do with the
>representation of dependencies.
>
I also don't really like using the UUIDs...I much prefer to refer to a
package by its name (it's much the same reason that I don't like using
IP addresses and prefer to use DNS names). When a package is renamed,
you should be able to leave some kind of forwarding info from the old
name to the new name. I actually think that SqueakMap should have an
orthogonal hierarchical naming scheme for packages...each name would get
resolved to some SqueakMap server and package UUID. I did something
like this to handle dependencies in KomPackaging, the registry is at
(this is my distributed hierarchical db ;)):
http://squeaklab.org/PackageRegistry.txt
and package urls looke like "sqpkg://httpserver.kom:6.1" (I can also
refer to SqueakMap packages using
"sqmap://PackageName:1.0")...basically, I want a name based way of
referring to packages and the contents within a package. And, by using
a hierarchical structure to the names, we can eventually distribute the
database that maps those names to actual packages. I would envision
using Urls to do lot's of things with packages...here are some examples:
sqpkg://httpserver.kom/name "A friendlier version of the package name
(i.e. KomHttpServer in this case)"
sqpkg://httpserver.kom/description "A version independent description
of the package"
sqpkg://httpserver.kom:6.1/description "A version specific description
of the package"
sqpkg://httpserver.kom:6.1/configs/default/prerequisites "A list of the
prerequisite package urls for the default config"
...etc...
Anyway, I'm sure if someone thought about it a little more, they could
come up with some improvements on this naming scheme. But the bottom
line is that I'd like my primary way of referencing a package to be name
based *and* hierarchical (the hierarchical part is going to be necessary
if we are going to allow people to eventually host their own package
name domains).
- Stephen
More information about the Squeak-dev
mailing list
|