[squeak-dev] Community Supported Packages

Chris Muller asqueaker at gmail.com
Tue Dec 16 04:10:50 UTC 2014


Hi Chris,

> But then it made me think I’d have to find out who the Seaside maintainers
> are to ask them to put in a new script. But Seaside should be what we were
> calling a few years ago a Community Supported Package. Is it a CSM in
> SqueakMap?

Yes.  Here is the current list of Community Supported packages on SqueakMap.

 http://map.squeak.org/category/0ae2a689-f7bb-4ea5-9c32-84d0aa48a9e3 .

Seaside is there, and its "3.1.1" version is designated for 4.5.  It
should still be working; if not, we should definitely fix it.

> How does that work?

When I did the work for this, I needed to have a clear understanding
of the requirement first so I forced myself to write it out as simply
as I could:

     "The ability to resurrect projects that are owned by members who
have long-since departed the community while protecting the original
archival legacy of the original author. Currently-active members
should be able to post new-and-improved releases that work for the
latest version of the Squeak image." [1]

The easiest way to implement it was to use the admin interface to add
a new SMCategory called "Community Supported" along with a testing
method for it; #isCommunitySupported to SMCategorizableObject.

Conveniently, Package and PackageRelease were already
CategorizableObject's, so I only needed to update
#canUpdateRelease:using: to include the first two lines of logic
below:

     canUpdateRelease: aSMPackageRelease using: aHVHtmlBuilder
          "Only allow aSMPackageRelease to be updated if it is owned
by the currentAccount, or if it isCommunitySupported and if the user
is only trying to save a NEW release (vs. replacing existing).  Or,
allow for SqueakMap administrators."
          ^ ((aHVHtmlBuilder submitted: 'Save as new release')
          and: [ aSMPackageRelease isCommunitySupported ])
          or: [ self currentAccount = aSMPackageRelease package owner
          or: [ self currentAccount isAdmin ] ]

So, if it has the Community Supported category and is a NEW Release
being added, it's allowed. Otherwise, only the owner or admin could
update the legacy versions.

So the Seaside package on SqueakMap is already rocking as a CSP right
now.  But the entries are only current up to 3.1.1, we should add the
latest (3.1.3?).

 - Chris

[1] -- Enshrined as requirement 9 at http://wiki.squeak.org/squeak/6183.

> It seems to me that creating a Seaside page and slapping a Metacello
> installation script on it is a short sighted solution. Perhaps the notion of
> a CSM could be explored at this juncture.
>
> Chris
>
> [1]
>
> (Installer ss project: 'MetacelloRepository') install:
> 'ConfigurationOfSeaside3'.
> ((ConfigurationOfSeaside3 project) version: #stable) load.
>
>
>
>
>


More information about the Squeak-dev mailing list