QualityImprovements assured by tests

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

QualityImprovements assured by tests

Torsten Bergmann
Hi,

One year later we are close to a final release for Pharo 6 and either with Pharo 6 or upcoming Pharo 7
I would really like to see some checks that ensure a quality image and tests who keep us all more
disciplined in the future.

Because:

  1. We should not have undocumented classes:

        (Object allSubclasses select: [:cls| cls hasComment not ])

     but we have a lot in Pharo 6 now since we introduced new packages in this release iteration

  2. We should not have class instance variables in uppercase but:

     (Object allSubclasses select: [:cls| cls isMeta]) select: [:cls| cls  
       instVarNames anySatisfy: [:n | n first isUppercase]]

     is not empty - although this was already discussed back in 2008 (!), see
     http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2008-November/003366.html

  3. We should not have uncategorized methods but:

     (Object allSubclasses select: [:cls| (cls selectorsInProtocol: Protocol unclassified) notEmpty ])

     we still have them.

  4. I've seen methods with unused temporary variables. Dont know about unused ivars or other.
 
  5. add you own here ...

I know this is often boring to comment or categorize - but we should do our homework as we wanted to
better compared to the past. Also if the base image is not following rules how should we expect others
to provide quality packages on top of it?

IMHO we should raise the bar. Either in Pharo 6 or in early Pharo 7. We can fix these once and for
all AND assure with unit tests that we keep the standard image on this quality level.

Thx
T.




Reply | Threaded
Open this post in threaded view
|

Re : QualityImprovements assured by tests

Pharo Smalltalk Developers mailing list
How about a sprint? I surely am not the most qualified person to comment a class I did not create but we can all remove crap ! 


Le ven., mai 19 2017 à 18:26, Torsten Bergmann
<[hidden email]> a écrit :
Hi,

One year later we are close to a final release for Pharo 6 and either with Pharo 6 or upcoming Pharo 7
I would really like to see some checks that ensure a quality image and tests who keep us all more
disciplined in the future.

Because:

  1. We should not have undocumented classes:

        (Object allSubclasses select: [:cls| cls hasComment not ])

    but we have a lot in Pharo 6 now since we introduced new packages in this release iteration

  2. We should not have class instance variables in uppercase but:

    (Object allSubclasses select: [:cls| cls isMeta]) select: [:cls| cls 
      instVarNames anySatisfy: [:n | n first isUppercase]]

    is not empty - although this was already discussed back in 2008 (!), see

  3. We should not have uncategorized methods but:

    (Object allSubclasses select: [:cls| (cls selectorsInProtocol: Protocol unclassified) notEmpty ])

    we still have them.

  4. I've seen methods with unused temporary variables. Dont know about unused ivars or other.

  5. add you own here ...

I know this is often boring to comment or categorize - but we should do our homework as we wanted to
better compared to the past. Also if the base image is not following rules how should we expect others
to provide quality packages on top of it?

IMHO we should raise the bar. Either in Pharo 6 or in early Pharo 7. We can fix these once and for
all AND assure with unit tests that we keep the standard image on this quality level.

Thx
T.




Reply | Threaded
Open this post in threaded view
|

Re: QualityImprovements assured by tests

Stephane Ducasse-3
In reply to this post by Torsten Bergmann
I agree with you. 
This is why I worked on the auto categoriser. then I improve the categorizer inside the image. 
Now I have a tool to analyse the categories but no time and I did not want to break everything 
but we could push some rules. 

if people would have published slices on such issues I'm quite sure that we would have integrated them, now the question 
is that it takes time and we were focused on other urgent tasks.

Stef


On Sat, May 20, 2017 at 12:25 AM, Torsten Bergmann <[hidden email]> wrote:
Hi,

One year later we are close to a final release for Pharo 6 and either with Pharo 6 or upcoming Pharo 7
I would really like to see some checks that ensure a quality image and tests who keep us all more
disciplined in the future.

Because:

  1. We should not have undocumented classes:

        (Object allSubclasses select: [:cls| cls hasComment not ])

     but we have a lot in Pharo 6 now since we introduced new packages in this release iteration

  2. We should not have class instance variables in uppercase but:

     (Object allSubclasses select: [:cls| cls isMeta]) select: [:cls| cls
       instVarNames anySatisfy: [:n | n first isUppercase]]

     is not empty - although this was already discussed back in 2008 (!), see
     http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2008-November/003366.html

  3. We should not have uncategorized methods but:

     (Object allSubclasses select: [:cls| (cls selectorsInProtocol: Protocol unclassified) notEmpty ])

     we still have them.

  4. I've seen methods with unused temporary variables. Dont know about unused ivars or other.

  5. add you own here ...

I know this is often boring to comment or categorize - but we should do our homework as we wanted to
better compared to the past. Also if the base image is not following rules how should we expect others
to provide quality packages on top of it?

IMHO we should raise the bar. Either in Pharo 6 or in early Pharo 7. We can fix these once and for
all AND assure with unit tests that we keep the standard image on this quality level.

Thx
T.





Reply | Threaded
Open this post in threaded view
|

Re: QualityImprovements assured by tests

Uko2
I think that the most important question is:

did we integrate some code with these issues in pharo 6?

Because definitely everyone is lazy to go and fix issues, but we should not integrate the new ones (especially when we have monkey checking that stuff).

Uko

On 20 May 2017, at 14:13, Stephane Ducasse <[hidden email]> wrote:

I agree with you. 
This is why I worked on the auto categoriser. then I improve the categorizer inside the image. 
Now I have a tool to analyse the categories but no time and I did not want to break everything 
but we could push some rules. 

if people would have published slices on such issues I'm quite sure that we would have integrated them, now the question 
is that it takes time and we were focused on other urgent tasks.

Stef


On Sat, May 20, 2017 at 12:25 AM, Torsten Bergmann <[hidden email]> wrote:
Hi,

One year later we are close to a final release for Pharo 6 and either with Pharo 6 or upcoming Pharo 7
I would really like to see some checks that ensure a quality image and tests who keep us all more
disciplined in the future.

Because:

  1. We should not have undocumented classes:

        (Object allSubclasses select: [:cls| cls hasComment not ])

     but we have a lot in Pharo 6 now since we introduced new packages in this release iteration

  2. We should not have class instance variables in uppercase but:

     (Object allSubclasses select: [:cls| cls isMeta]) select: [:cls| cls
       instVarNames anySatisfy: [:n | n first isUppercase]]

     is not empty - although this was already discussed back in 2008 (!), see
     http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2008-November/003366.html

  3. We should not have uncategorized methods but:

     (Object allSubclasses select: [:cls| (cls selectorsInProtocol: Protocol unclassified) notEmpty ])

     we still have them.

  4. I've seen methods with unused temporary variables. Dont know about unused ivars or other.

  5. add you own here ...

I know this is often boring to comment or categorize - but we should do our homework as we wanted to
better compared to the past. Also if the base image is not following rules how should we expect others
to provide quality packages on top of it?

IMHO we should raise the bar. Either in Pharo 6 or in early Pharo 7. We can fix these once and for
all AND assure with unit tests that we keep the standard image on this quality level.

Thx
T.