Broken build because of use of #includesSubstring:

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Broken build because of use of #includesSubstring:

Lukas Renggli
Hi Ken,

Looks like your change of #includesSubString: to #includesSubstring:
broke Seaside 3.1:

http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/Seaside.Tests.Canvas/

The same problem appeared in the past on other packages (Pier,
Magritte). Can you revert the change?

Cheers,
Lukas

--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Sven Van Caekenberghe-2
Hi Lukas,

On 11 Jan 2013, at 15:29, Lukas Renggli <[hidden email]> wrote:

> Hi Ken,
>
> Looks like your change of #includesSubString: to #includesSubstring:
> broke Seaside 3.1:
>
> http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/Seaside.Tests.Canvas/
>
> The same problem appeared in the past on other packages (Pier,
> Magritte). Can you revert the change?

This is a catch-22 change for library/framework developers ;-)

 pre Pharo 2.0 there is #includesSubString:
 post Pharo 2.0 there is #includesSubstring:

For a library/framework that targets both platforms such as Seaside (but just as well for all my projects, including Zinc, and probably every project out there) there are two options:

 follow the change
 refuse the change

In the first case, a compatibility package has to define the new selector as an alias pre Pharo 2.0
In the second case, a compatibility package has to define the old selector as an alias post Pharo 2.0 (and override the deprecation warning)

Both are valid choices/strategies, but one has to be chosen for Seaside.
For my projects I chose option 1.

Sven

PS: I guess that #greaseIncludesSub[S|s]tring: would also be an option ;-)

--
Sven Van Caekenberghe
http://stfx.eu
Smalltalk is the Red Pill

_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Julian Fitzell-2
On Fri, Jan 11, 2013 at 2:46 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Hi Lukas,

On 11 Jan 2013, at 15:29, Lukas Renggli <[hidden email]> wrote:

> Hi Ken,
>
> Looks like your change of #includesSubString: to #includesSubstring:
> broke Seaside 3.1:
>
> http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/Seaside.Tests.Canvas/
>
> The same problem appeared in the past on other packages (Pier,
> Magritte). Can you revert the change?

This is a catch-22 change for library/framework developers ;-)

 pre Pharo 2.0 there is #includesSubString:
 post Pharo 2.0 there is #includesSubstring:

For a library/framework that targets both platforms such as Seaside (but just as well for all my projects, including Zinc, and probably every project out there) there are two options:

 follow the change
 refuse the change

In the first case, a compatibility package has to define the new selector as an alias pre Pharo 2.0
In the second case, a compatibility package has to define the old selector as an alias post Pharo 2.0 (and override the deprecation warning)

Both are valid choices/strategies, but one has to be chosen for Seaside.
For my projects I chose option 1.

Sven

PS: I guess that #greaseIncludesSub[S|s]tring: would also be an option ;-)\

No need for a grease-specific selector - just need different versions of grease for Pharo 1 and Pharo 2 if people want both versions of Pharo supported.. Can't recall what other platforms use, but in general I prefer 'Substring' myself.

_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Sven Van Caekenberghe-2
Julian,

On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:

> On Fri, Jan 11, 2013 at 2:46 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Hi Lukas,
>
> On 11 Jan 2013, at 15:29, Lukas Renggli <[hidden email]> wrote:
>
> > Hi Ken,
> >
> > Looks like your change of #includesSubString: to #includesSubstring:
> > broke Seaside 3.1:
> >
> > http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/Seaside.Tests.Canvas/
> >
> > The same problem appeared in the past on other packages (Pier,
> > Magritte). Can you revert the change?
>
> This is a catch-22 change for library/framework developers ;-)
>
>  pre Pharo 2.0 there is #includesSubString:
>  post Pharo 2.0 there is #includesSubstring:
>
> For a library/framework that targets both platforms such as Seaside (but just as well for all my projects, including Zinc, and probably every project out there) there are two options:
>
>  follow the change
>  refuse the change
>
> In the first case, a compatibility package has to define the new selector as an alias pre Pharo 2.0
> In the second case, a compatibility package has to define the old selector as an alias post Pharo 2.0 (and override the deprecation warning)
>
> Both are valid choices/strategies, but one has to be chosen for Seaside.
> For my projects I chose option 1.
>
> Sven
>
> PS: I guess that #greaseIncludesSub[S|s]tring: would also be an option ;-)\
>
> No need for a grease-specific selector - just need different versions of grease for Pharo 1 and Pharo 2 if people want both versions of Pharo supported.. Can't recall what other platforms use, but in general I prefer 'Substring' myself.

There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I guess the possibility to differentiate is there.

My point is however that the Seaside developers have to make a simple choice: keep the older #includesSubString: in the code base or switch to the newer (more logical) #includesSubstring:

Either choice is OK, just pick one so that we can get this trivial issue out of the way.

Sven


_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Julian Fitzell-2
On Sat, Jan 12, 2013 at 10:42 PM, Sven Van Caekenberghe <[hidden email]> wrote:
Julian,

On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:
> No need for a grease-specific selector - just need different versions of grease for Pharo 1 and Pharo 2 if people want both versions of Pharo supported.. Can't recall what other platforms use, but in general I prefer 'Substring' myself.

There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I guess the possibility to differentiate is there.

My point is however that the Seaside developers have to make a simple choice: keep the older #includesSubString: in the code base or switch to the newer (more logical) #includesSubstring:

Either choice is OK, just pick one so that we can get this trivial issue out of the way.

As I said, my personal preference is #includesSubstring: as "SubString" has always bothered me, but it depends what other platforms do. There's not much point using the version that only one platform uses and forcing all the others to implement a Grease extension...

Julian

_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Lukas Renggli
I don't care much what version we use either. However we should keep
in mind that this is not about Pharo only, but also about all other
Seaside platforms.

Unfortunately ANSI does not describe a method for substring matching.
However ANSI describes #subStrings:, which would go along the current
#includesSubString: consistency wise.

Lukas



On 13 January 2013 22:11, Julian Fitzell <[hidden email]> wrote:

> On Sat, Jan 12, 2013 at 10:42 PM, Sven Van Caekenberghe <[hidden email]>
> wrote:
>>
>> Julian,
>>
>> On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:
>> > No need for a grease-specific selector - just need different versions of
>> > grease for Pharo 1 and Pharo 2 if people want both versions of Pharo
>> > supported.. Can't recall what other platforms use, but in general I prefer
>> > 'Substring' myself.
>>
>> There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I
>> guess the possibility to differentiate is there.
>>
>> My point is however that the Seaside developers have to make a simple
>> choice: keep the older #includesSubString: in the code base or switch to the
>> newer (more logical) #includesSubstring:
>>
>> Either choice is OK, just pick one so that we can get this trivial issue
>> out of the way.
>
>
> As I said, my personal preference is #includesSubstring: as "SubString" has
> always bothered me, but it depends what other platforms do. There's not much
> point using the version that only one platform uses and forcing all the
> others to implement a Grease extension...
>
> Julian
>
> _______________________________________________
> seaside-dev mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>



--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Broken build because of use of #includesSubstring:

Louis LaBrunda
On Sun, 13 Jan 2013 22:19:04 +0100, you wrote:

>I don't care much what version we use either. However we should keep
>in mind that this is not about Pharo only, but also about all other
>Seaside platforms.
>
>Unfortunately ANSI does not describe a method for substring matching.
>However ANSI describes #subStrings:, which would go along the current
>#includesSubString: consistency wise.
>Lukas

In VA Smalltalk #subStrings: is for parsing strings not testing for the
presence of one strings in another.

Lou
-----------------------------------------------------------
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon
mailto:[hidden email] http://www.Keystone-Software.com
_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

John O'Keefe
In reply to this post by Lukas Renggli
For Grease, and therefore for Seaside, we agreed on the spelling includesSubString:.
 
John O'Keefe [|], CTO/Principal Smalltalk Architect, Instantiations Inc.
Skype: john_okeefe2     Mobile:  +1 919 417-3181 (Business hours USA Eastern Time zone (GMT -5))
[hidden email]
http://www.instantiations.com
VA Smalltalk...Onward and Upward!


On Sun, Jan 13, 2013 at 4:19 PM, Lukas Renggli <[hidden email]> wrote:
I don't care much what version we use either. However we should keep
in mind that this is not about Pharo only, but also about all other
Seaside platforms.

Unfortunately ANSI does not describe a method for substring matching.
However ANSI describes #subStrings:, which would go along the current
#includesSubString: consistency wise.

Lukas



On 13 January 2013 22:11, Julian Fitzell <[hidden email]> wrote:
> On Sat, Jan 12, 2013 at 10:42 PM, Sven Van Caekenberghe <[hidden email]>
> wrote:
>>
>> Julian,
>>
>> On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:
>> > No need for a grease-specific selector - just need different versions of
>> > grease for Pharo 1 and Pharo 2 if people want both versions of Pharo
>> > supported.. Can't recall what other platforms use, but in general I prefer
>> > 'Substring' myself.
>>
>> There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I
>> guess the possibility to differentiate is there.
>>
>> My point is however that the Seaside developers have to make a simple
>> choice: keep the older #includesSubString: in the code base or switch to the
>> newer (more logical) #includesSubstring:
>>
>> Either choice is OK, just pick one so that we can get this trivial issue
>> out of the way.
>
>
> As I said, my personal preference is #includesSubstring: as "SubString" has
> always bothered me, but it depends what other platforms do. There's not much
> point using the version that only one platform uses and forcing all the
> others to implement a Grease extension...
>
> Julian
>
> _______________________________________________
> seaside-dev mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>



--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev


_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Sven Van Caekenberghe-2
In reply to this post by Julian Fitzell-2

On 13 Jan 2013, at 22:11, Julian Fitzell <[hidden email]> wrote:

> On Sat, Jan 12, 2013 at 10:42 PM, Sven Van Caekenberghe <[hidden email]> wrote:
> Julian,
>
> On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:
> > No need for a grease-specific selector - just need different versions of grease for Pharo 1 and Pharo 2 if people want both versions of Pharo supported.. Can't recall what other platforms use, but in general I prefer 'Substring' myself.
>
> There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I guess the possibility to differentiate is there.
>
> My point is however that the Seaside developers have to make a simple choice: keep the older #includesSubString: in the code base or switch to the newer (more logical) #includesSubstring:
>
> Either choice is OK, just pick one so that we can get this trivial issue out of the way.
>
> As I said, my personal preference is #includesSubstring: as "SubString" has always bothered me, but it depends what other platforms do. There's not much point using the version that only one platform uses and forcing all the others to implement a Grease extension...

There are only about 5 senders of #includesSubString: in my Pharo 2.0 Seaside image.

Just say so, and I will add an alias to Grease-Pharo-20-Core and get rid of this.

Sven_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

Julian Fitzell-2
In reply to this post by John O'Keefe
You mean when I was visiting you guys? I thought this might have come up before, but I can't find a Grease test for #includesSubString: or #includesSubstring:

I'd guess that what we actually decided was that we'd avoid the issue because code that wanted to be compatible could simply use #indexOfSubCollection:startingAt:, which is defined in the ANSI standard. But I see some usage of #includesSubString: has appeared in Seaside, which has likely prompted other platforms to implement it.

Given that and given that ANSI has #subStrings:, it does seem more sensible to the camelCase version to Grease. However, I have one other thought: do we really need a string-specific method for this? Might it be preferable to test for, say, #includesSubCollection: on SequenceableCollection? (ok, I don't like the name, but it's consistent with the other ANSI methods...)

Julian

On Mon, Jan 14, 2013 at 4:45 PM, John O'Keefe <[hidden email]> wrote:
For Grease, and therefore for Seaside, we agreed on the spelling includesSubString:.
 
John O'Keefe [|], CTO/Principal Smalltalk Architect, Instantiations Inc.
Skype: john_okeefe2     Mobile:  <a href="tel:%2B1%20919%20417-3181" value="+19194173181" target="_blank">+1 919 417-3181 (Business hours USA Eastern Time zone (GMT -5))
[hidden email]
http://www.instantiations.com
VA Smalltalk...Onward and Upward!


On Sun, Jan 13, 2013 at 4:19 PM, Lukas Renggli <[hidden email]> wrote:
I don't care much what version we use either. However we should keep
in mind that this is not about Pharo only, but also about all other
Seaside platforms.

Unfortunately ANSI does not describe a method for substring matching.
However ANSI describes #subStrings:, which would go along the current
#includesSubString: consistency wise.

Lukas



On 13 January 2013 22:11, Julian Fitzell <[hidden email]> wrote:
> On Sat, Jan 12, 2013 at 10:42 PM, Sven Van Caekenberghe <[hidden email]>
> wrote:
>>
>> Julian,
>>
>> On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:
>> > No need for a grease-specific selector - just need different versions of
>> > grease for Pharo 1 and Pharo 2 if people want both versions of Pharo
>> > supported.. Can't recall what other platforms use, but in general I prefer
>> > 'Substring' myself.
>>
>> There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I
>> guess the possibility to differentiate is there.
>>
>> My point is however that the Seaside developers have to make a simple
>> choice: keep the older #includesSubString: in the code base or switch to the
>> newer (more logical) #includesSubstring:
>>
>> Either choice is OK, just pick one so that we can get this trivial issue
>> out of the way.
>
>
> As I said, my personal preference is #includesSubstring: as "SubString" has
> always bothered me, but it depends what other platforms do. There's not much
> point using the version that only one platform uses and forcing all the
> others to implement a Grease extension...
>
> Julian
>
> _______________________________________________
> seaside-dev mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>



--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev


_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev



_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
Reply | Threaded
Open this post in threaded view
|

Re: Broken build because of use of #includesSubstring:

John O'Keefe
Julian -

For some reason we were not very consistent in our decisions :-(

When we were defining the Grease API, we decided to add #beginsWithSubCollection: and #endsWithSubCollection, but we didn't add #includesSubCollection:. I certainly don't have a problem adding it now.

We chose the camel case spelling of #includesSubString: to match Pharo's implementation (now changed in V2.0). VA Smalltalk and VW (don't know about other Seaside providers) have #includesSubString: in their Grease layer.

Just to further confuse the discussion, Seaside also uses #includeSubstring:caseSensitive: (notice no camel case spelling).

John O'Keefe [|], CTO/Principal Smalltalk Architect, Instantiations Inc.
Skype: john_okeefe2     Mobile:  +1 919 417-3181 (Business hours USA Eastern Time zone (GMT -5))
[hidden email]
http://www.instantiations.com
VA Smalltalk...Onward and Upward!


On Tue, Jan 15, 2013 at 5:21 PM, Julian Fitzell <[hidden email]> wrote:
You mean when I was visiting you guys? I thought this might have come up before, but I can't find a Grease test for #includesSubString: or #includesSubstring:

I'd guess that what we actually decided was that we'd avoid the issue because code that wanted to be compatible could simply use #indexOfSubCollection:startingAt:, which is defined in the ANSI standard. But I see some usage of #includesSubString: has appeared in Seaside, which has likely prompted other platforms to implement it.

Given that and given that ANSI has #subStrings:, it does seem more sensible to the camelCase version to Grease. However, I have one other thought: do we really need a string-specific method for this? Might it be preferable to test for, say, #includesSubCollection: on SequenceableCollection? (ok, I don't like the name, but it's consistent with the other ANSI methods...)

Julian


On Mon, Jan 14, 2013 at 4:45 PM, John O'Keefe <[hidden email]> wrote:
For Grease, and therefore for Seaside, we agreed on the spelling includesSubString:.
 
John O'Keefe [|], CTO/Principal Smalltalk Architect, Instantiations Inc.
Skype: john_okeefe2     Mobile:  <a href="tel:%2B1%20919%20417-3181" value="+19194173181" target="_blank">+1 919 417-3181 (Business hours USA Eastern Time zone (GMT -5))
[hidden email]
http://www.instantiations.com
VA Smalltalk...Onward and Upward!


On Sun, Jan 13, 2013 at 4:19 PM, Lukas Renggli <[hidden email]> wrote:
I don't care much what version we use either. However we should keep
in mind that this is not about Pharo only, but also about all other
Seaside platforms.

Unfortunately ANSI does not describe a method for substring matching.
However ANSI describes #subStrings:, which would go along the current
#includesSubString: consistency wise.

Lukas



On 13 January 2013 22:11, Julian Fitzell <[hidden email]> wrote:
> On Sat, Jan 12, 2013 at 10:42 PM, Sven Van Caekenberghe <[hidden email]>
> wrote:
>>
>> Julian,
>>
>> On 12 Jan 2013, at 16:29, Julian Fitzell <[hidden email]> wrote:
>> > No need for a grease-specific selector - just need different versions of
>> > grease for Pharo 1 and Pharo 2 if people want both versions of Pharo
>> > supported.. Can't recall what other platforms use, but in general I prefer
>> > 'Substring' myself.
>>
>> There are Grease-Pharo-[10|11|20]-Core packages in SqS/Seaside31 so I
>> guess the possibility to differentiate is there.
>>
>> My point is however that the Seaside developers have to make a simple
>> choice: keep the older #includesSubString: in the code base or switch to the
>> newer (more logical) #includesSubstring:
>>
>> Either choice is OK, just pick one so that we can get this trivial issue
>> out of the way.
>
>
> As I said, my personal preference is #includesSubstring: as "SubString" has
> always bothered me, but it depends what other platforms do. There's not much
> point using the version that only one platform uses and forcing all the
> others to implement a Grease extension...
>
> Julian
>
> _______________________________________________
> seaside-dev mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>



--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev


_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev




_______________________________________________
seaside-dev mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev