On 05/06/2014 01:13 PM, Joe Gordon wrote:



On Mon, May 5, 2014 at 10:56 AM, Ben Nemec <openst...@nemebean.com
<mailto:openst...@nemebean.com>> wrote:

    On 05/05/2014 10:02 AM, ChangBo Guo wrote:

        Hi Stackers,

        I find some common code style would be avoided while I'm
        reviewing code
        ,so think these check would
        be nice to move into local hacking. The local hacking can ease
        reviewer
        burden.

        The idea from keystone blueprint [1].
        Hacking is a great start at automating checks for common style
        issues.
        There are still lots of things that it is not checking for that it
        probably should. The local hacking ease reviewer burden . This
        is the
        list of from [1][2] that would be nice to move into an automated
        check:

        - use import style 'from openstack.common.* import' not use 'import
        openstack.common.*'


    This is the only one that I think belongs in Oslo.  The others are
    all generally applicable, but the other projects aren't going to
    want to enforce the import style since it's only to make Oslo syncs
    work right.


I agree this belongs in oslo-incubator only as well. But I am still
confused as to why this is needed. It sounds like this is a workaround
for a bug in the sync script.

I feel like there was a reason we couldn't make both import styles work properly, but my memory is fuzzy. Maybe ChangBo can comment.



        - assertIsNone should be used when using None with assertEqual
        - _() should not be used in debug log statements
        -do not use 'assertTrue(isinstance(a, b)) sentence'
        -do not use 'assertEqual(type(A), B) sentence'


    The _() one in particular I think we'll want as we make the logging
    changes.  Some additional checks to make sure the the correct _
    function is used with the correct logging function would be good too
    (for example, LOG.warning(_LE('foo')) should fail pep8).

    But again, that belongs in hacking proper, not an Oslo module.



Yup, this belongs in hacking although this gets a little tricky to do
right, as we don't want false positives
http://git.openstack.org/cgit/openstack-dev/hacking/tree/README.rst#n42

We have to make sure that '_' is what we think it is and that 'LOG' is
the logger, just checking for 'LOG'  isn't very robust.

Patches welcome! http://git.openstack.org/cgit/openstack-dev/hacking


    The assert ones do seem to fit the best practices as I understand
    them, but I suspect there's going to be quite a bit of work to get
    projects compliant.


Although some projects already have the assert ones, I don't see a lot
of value in them.

I would probably give priority to the assertTrue(isinstance...) one because I believe assertTrue yields a less useful error message when it fails. The others are mostly style issues I don't feel that strongly about, although I could see some value in them just to avoid having someone come along and leave a "-1, use assertIsNone" comment (I try not to -1 for that alone, but I won't promise that I never have, and I'm pretty sure other people do).




        [1]
        
https://blueprints.launchpad.__net/keystone/+spec/more-code-__style-automation
        
<https://blueprints.launchpad.net/keystone/+spec/more-code-style-automation>
        [2]
        https://github.com/openstack/__nova/blob/master/nova/hacking/__checks.py
        <https://github.com/openstack/nova/blob/master/nova/hacking/checks.py>

        I just registered a blueprint for this in [3] and submit first
        patch in [4].

        [3]
        https://blueprints.launchpad.__net/oslo/+spec/oslo-local-__hacking
        <https://blueprints.launchpad.net/oslo/+spec/oslo-local-hacking>

        [4] https://review.openstack.org/#__/c/87832/
        <https://review.openstack.org/#/c/87832/>
        
<https://github.com/openstack/__nova/blob/master/nova/hacking/__checks.py
        <https://github.com/openstack/nova/blob/master/nova/hacking/checks.py>>


        Should we add local hacking for oslo-incubator ?  If yes, what's the
        other check will be added ?
        Your comment is appreciated :-)

        --
        ChangBo Guo(gcb)


        _________________________________________________
        OpenStack-dev mailing list
        OpenStack-dev@lists.openstack.__org
        <mailto:OpenStack-dev@lists.openstack.org>
        http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
        <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>



    _________________________________________________
    OpenStack-dev mailing list
    OpenStack-dev@lists.openstack.__org
    <mailto:OpenStack-dev@lists.openstack.org>
    http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev 
<http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>




_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to