[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
|