Hi,

Would introducing branches in Zinc to deal with the different versions of Pharo 
not be an option?

Cheers,
Doru


> On Jan 3, 2020, at 2:48 PM, Alistair Grant <[email protected]> wrote:
> 
> Hi Sven,
> 
> On Fri, 3 Jan 2020 at 12:36, Sven Van Caekenberghe <[email protected]> wrote:
>> 
>> Alistair,
>> 
>> Thanks for the write up, it is useful.
>> 
>> However, the general situation with the relationship between Zinc HTTP 
>> Components and Pharo 8 (or its most recent version in development) is often 
>> difficult.
>> 
>> For me, as author and maintainer of Zinc HTTP Components is had been very 
>> hard to follow the changes in the latest Pharo and to keep syncing/merging 
>> them back.
>> 
>> Especially since some changes are not backwards compatible with Pharo 7 (the 
>> latest stable) and the previous ones (let's say 6 and 5). For me and most 
>> users that is unacceptable: HTTP is way too important to not maintain it 
>> properly. The problems with source code file access were an example of that, 
>> luckily Pablo reacted super fast.
>> 
>> Another point of friction for me are the many cosmetic changes that were 
>> applied, often using automatic means. They do not contribute much 
>> (functionally), but cause lots of trouble (to merge, check, validate).
>> 
>> Normally, years ago, Zinc was synced into Pharo trunk regularly (like every 
>> 6 months or so). However, this has not happened for a long time. Why ? 
>> Because I have too much work syncing/merging everything back first.
>> 
>> So I have to put time in this, but it won't happen soon - too much other 
>> work.
>> 
>> Some more comments inline.
>> 
>>> On 3 Jan 2020, at 11:34, Alistair Grant <[email protected]> wrote:
>>> 
>>> Hi Sven,
>>> 
>>> Following on from a discussion I started in Discord development...
>>> 
>>> Loading Zinc SSO in Pharo 8 currently causes problems because the Zinc
>>> packages in core Pharo 8 are out of sync with your repository
>>> (specifically 
>>> https://github.com/pharo-project/pharo/commit/45b7de2b6c901112be04230faba485a2f69ebb1e
>>> caused problems for me).
>> 
>> Hmm, I guess I missed that one, but I would of course see it when trying to 
>> merge back.
>> 
>>> I was able to resolve the issue by modifying
>>> BaselineOfZincHTTPComponents>>baseline: to remove all references to
>>> the packages that are now part of core Pharo 8:
>>> 
>>> BaselineOfZincHTTPComponents>>baseline: spec
>>>   <baseline>
>>>   spec for: #common do: [
>>>       spec baseline: 'NeoJSON' with: [ spec repository:
>>> 'github://svenvc/NeoJSON:v17/repository' ].
>>>       spec baseline: 'XMLParser' with: [ spec repository:
>>> 'github://feenkcom/XMLParser:v0.6.1/src' ].
>>>       spec baseline: 'XMLWriter' with: [ spec repository:
>>> 'github://feenkcom/XMLWriter:v0.6.0/src' ].
>>>       "spec project: 'XML Support' with: [ spec className:
>>> 'ConfigurationOfXMLSupport'; repository:
>>> 'http://www.squeaksource.com/MetacelloRepository' ]."
>>>       spec
>>>           package: 'Zinc-AWS';
>>>           package: 'Zinc-REST' with: [ spec requires: #('NeoJSON') ];
>>>           package: 'Zinc-WebSocket-Core';
>>>           package: 'Zinc-WebSocket-Tests' with: [ spec requires:
>>> 'Zinc-WebSocket-Core' ];
>>>           package: 'Zinc-SSO-OAuth1-Core' with: [ spec requires:
>>> #('NeoJSON') ];
>>>           package: 'Zinc-SSO-OAuth2-Core' with: [ spec requires:
>>> #('NeoJSON') ];
>>>           package: 'Zinc-SSO-OpenID-Core';
>>>           package: 'Zinc-SSO-Demo' with: [ spec requires:
>>> #('Zinc-SSO-OAuth1-Core' 'Zinc-SSO-OAuth2-Core'
>>> 'Zinc-SSO-OpenID-Core') ];
>>>           package: 'Zinc-SSO-OAuth1-Tests' with: [ spec requires:
>>> #('Zinc-SSO-OAuth1-Core') ];
>>>           package: 'Zinc-SSO-OpenID-Tests' with: [ spec requires:
>>> #('Zinc-SSO-OpenID-Core') ];
>>>           package: 'Zinc-WebDAV';
>>>           package: 'Zinc-WWS-Server';
>>>           package: 'Zinc-WWS-Client'.
>>>       spec
>>>           group: 'AWS' with: #('Zinc-AWS');
>>>           group: 'WebDAV' with: #('Zinc-WebDAV');
>>>           group: 'WebSocket' with: #('Zinc-WebSocket-Core'
>>> 'Zinc-WebSocket-Tests');
>>>           group: 'SSO-OAuth1' with: #('Zinc-SSO-OAuth1-Core'
>>> 'Zinc-SSO-OAuth1-Tests');
>>>           group: 'SSO-OAuth2' with: #('Zinc-SSO-OAuth2-Core');
>>>           group: 'SSO-OpenID' with: #('Zinc-SSO-OpenID-Core'
>>> 'Zinc-SSO-OpenID-Tests');
>>>           group: 'SSO-Demo' with: #('Zinc-SSO-OAuth1-Core'
>>> 'Zinc-SSO-OAuth2-Core' 'Zinc-SSO-OpenID-Core');
>>>           group: 'SSO' with: #('SSO-OAuth1' 'SSO-OAuth2'
>>> 'SSO-OpenID' 'SSO-Demo' 'Zinc-SSO-Demo');
>>>           group: 'WWS' with: #('Zinc-WWS-Server' 'Zinc-WWS-Client');
>>>           group: 'REST' with: #('Zinc-REST') ]
>>> 
>>> 
>>> This isn't directly usable by you since it replaces 'XML Support' with
>>> XMLParser and XMLWriter and it would break Pharo 7.
>> 
>> I don't think using feenk repos is a solution
> 
> That's why I wrote that it isn't directly usable - it references
> feenk, which will obviously have to be removed, and it is Pharo 8
> specific, more on that below.
> 
>> , especially since Torsten did official ports of the XML stuff. I would then 
>> certainly not use a old metacello configuration in squeak source, but would 
>> go to all GitHub/Tonel.
>> 
>>> But if we modified it to put in checks for Pharo 7 vs Pharo 8 it would
>>> somewhat future proof the code against changes made in core Pharo 8.
>> 
>> Like I said, I really want to support two versions back (so today 7 and 6).
> 
> I think what I'm proposing would support this.  To expand a bit more,
> the idea is to have:
> 
> baseline: spec
>    <baseline>
> 
>    SystemVersion current major <= 7
>        ifTrue: [ self baseline7: spec ]
>        ifFalse: [ self baseline: spec ]
> 
> 
> baseline7: would be the existing baseline.  The new baseline: would be
> changed to remove all the references to the packages in core Pharo 8
> (similar to the example above, but without the feenk references).
> 
> 
>> I would like that Pharo code developers that make changes to Zinc/Zodiac 
>> packages at the very least acknowledge and be careful of the fact that Zinc 
>> exists outside of one particular Pharo image and has to support some older 
>> versions.
> 
> This obviously isn't a panacea, but it will at least reduce the impact
> of some changes made in the pharo-project repository.
> 
> I'm happy to submit a PR if you agree,
> 
> Cheers,
> Alistair

--
feenk.com

"Every successful trip needs a suitable vehicle."








Reply via email to