> 
> I do not get it. You want an identifier. Why is a brittle and
> obfuscated number better than the name of the class, which is already
> a proper identifier? If you do not want to rely directly on a class
> reference, you can store it as a symbol.

sure this is not the problem numbers solve. We want to have no impact because 
of class name change.

> If you keep the numbering,
> you will immediately get into numbering issues as soon as people will
> start writing their own rules.

Normally not because number should be unique and should never change. But I see 
your point
After we have a version number when we change a rule
        for example rule 1 version 1 is different from rule 1 version 2

How you scenario behave in presence of class renaming?
Our is stable but indeed people can add number that clashes with existing ones. 
Now we should have a rule stating that rule should have unique id.


>>> - In the rule methods, you are storing strings. This means that when 
>>> someone renames a rule, the code in there will not be updated. Why not 
>>> store this information as normal code and use symbols that can be queried?
>> 
>> I do not get it? It is normal code no?
>> You mean symbols instead of strings.
> 
> I mean you are currently storing the following in a rule exception:
> rule24V1FalsePositive
> ^ #(#('(RGMethodDefinition className: ''RGClassDefinitionTest''
> selector: #testReadFrom isMetaSide: false)'
> #'2012-04-02T11:31:59.933+02:00') )
> 
> This an array of strings, not code. I was wondering why it would not
> be possible to be code directly.

because we do not want to store information that force us to have ring loaded.

Cheers,
> Doru
> 
> 
>> We will the issues.
>> 
>> 
>>> 
>>> Cheers,
>>> Doru
>>> 
>>> 
>>> 
>>> On 6 Apr 2012, at 09:51, Simon Allier wrote:
>>> 
>>>> Hi pharoers
>>>> 
>>>> Since a couple of months the Pharo team has been working on improving the 
>>>> support for rules checking and in particular the handling of false 
>>>> positives (there is nothing more boring that to get all the time the same 
>>>> warnings that we know are not adequate).
>>>> We added a manifest mechanism to manage the false/true positive of 
>>>> SmallLint, the rule checker of Pharo. A manifest is a class that contains 
>>>> meta data. In the future we may add package license and package 
>>>> documentation. This data is stored in  methods on the meta side of the 
>>>> class. So, manifest can be versioned in Monticello and not lost. There is 
>>>> one manifest per package.
>>>> 
>>>> It possible to use SmallLint with Manifest using the Critics Browser 
>>>> (menuWorld > Tool > CriticBrowser). With the Critics browser you can 
>>>> inspect violations of rules and mark them as false positive or true 
>>>> positive (ToDo) and see previous warnings flagged as false positives or 
>>>> toDo.
>>>> In addition all the logic of the browser has been developed so that the 
>>>> manifest can be saved within the package without adding dependencies.
>>>> We will continue to improve the Browser. In addition we will run SmallLint 
>>>> rules to all the Pharo packages and the rules checking will be part of the 
>>>> package validation. We want the community to use rule checking for real so 
>>>> that we all improve.
>>>> 
>>>> Simon and Stef
>>>> 
>>>> Gofer
>>>>   new
>>>>   url: 'http://www.squeaksource.com/PharoTaskForces';
>>>>   package: 'ConfigurationOfManifest';
>>>> load.
>>>> ((Smalltalk at: #ConfigurationOfManifest) project version: #stable) load
>>> 
>>> --
>>> www.tudorgirba.com
>>> 
>>> "Not knowing how to do something is not an argument for how it cannot be 
>>> done."
>>> 
>>> 
>> 
>> 
> 
> 
> 
> -- 
> www.tudorgirba.com
> 
> "Every thing has its own flow"
> 


Reply via email to