Re: Adopting the black Python code style

2020-10-21 Thread Andrew Overholt
 Hi,

Unfortunately I don't think consensus is possible with code formatting.
Partly for that reason, we (Fx engineering leadership and others) have
concluded that automatic, standardized code formatting is the right thing
to do. We've already done this for a few languages and Python is up next.

Ricky et al are the designated experts here and they recommend the plan
outlined up thread. They ran it by myself, Selena, EKR, and a few others in
management and we asked them to proceed.

If there are major showstoppers or something that wasn't taken into
account, please do let them know now. Otherwise I'd ask us all to try our
best to accept some of these things in the name of efficiency since we
won't all agree on everything :) Thankfully we can likely automatically
revert or re-format if we find issues -- once we get automatic formatting
working.

Thank you,

Andrew

On Tue, Oct 20, 2020 at 4:26 PM Jeff Gilbert  wrote:

> Well we generally don't seek consensus anymore for these sorts of
> things, it seems, but it's reassuring that I'm not alone.
>
> On Tue, Oct 20, 2020 at 1:17 AM James Graham 
> wrote:
> >
> > On 19/10/2020 22:01, Jeff Gilbert wrote:
> > > I'm disappointed by that.
> >
> > FWIW last time I looked at black, I found that the compromises it made
> > to be fully automatic and with minimal configuration meant that it was
> > liable to produce ugly or difficult to read code in some situations.
> >
> > I understand that we've decided that people will get used to reading any
> > code style over time, and therefore eliminating formatting concerns from
> > the code writing process is a net win for productivity. So I'm not
> > taking a position in opposition to this proposal, but it is not
> > something I would have advocated personally.
> > ___
> > dev-platform mailing list
> > dev-platform@lists.mozilla.org
> > https://lists.mozilla.org/listinfo/dev-platform
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-20 Thread Jeff Gilbert
Well we generally don't seek consensus anymore for these sorts of
things, it seems, but it's reassuring that I'm not alone.

On Tue, Oct 20, 2020 at 1:17 AM James Graham  wrote:
>
> On 19/10/2020 22:01, Jeff Gilbert wrote:
> > I'm disappointed by that.
>
> FWIW last time I looked at black, I found that the compromises it made
> to be fully automatic and with minimal configuration meant that it was
> liable to produce ugly or difficult to read code in some situations.
>
> I understand that we've decided that people will get used to reading any
> code style over time, and therefore eliminating formatting concerns from
> the code writing process is a net win for productivity. So I'm not
> taking a position in opposition to this proposal, but it is not
> something I would have advocated personally.
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-20 Thread James Graham

On 19/10/2020 22:01, Jeff Gilbert wrote:

I'm disappointed by that.


FWIW last time I looked at black, I found that the compromises it made 
to be fully automatic and with minimal configuration meant that it was 
liable to produce ugly or difficult to read code in some situations.


I understand that we've decided that people will get used to reading any 
code style over time, and therefore eliminating formatting concerns from 
the code writing process is a net win for productivity. So I'm not 
taking a position in opposition to this proposal, but it is not 
something I would have advocated personally.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-19 Thread Jeff Gilbert
I'm disappointed by that.

On Mon, Oct 19, 2020 at 2:00 PM Ricky Stewart  wrote:
>
> On Monday, October 19, 2020 at 8:53:59 AM UTC-5, Andrew Halberstadt wrote:
> > No, black now has a `--skip-string-normalization` flag, which I would be
> > all for using in our code base. Not sure if that was the plan here or not.
> >
> > -Andrew
> >
> > p.s It took a great deal of convincing from the community to get this flag
> > added, as the maintainers precisely wanted to prevent conversations like
> > this current one from happening :p.
> > On Thu, Oct 15, 2020 at 5:23 PM Mike Hommey  wrote:
> >
> > > Is black still opiniated about string types and insisting to use double
> > > quotes, when we mostly settled on single quotes?
> > >
> > > On Mon, Oct 12, 2020 at 10:00:56AM -0700, Ricky Stewart wrote:
> > > > Hello everyone,
> > > >
> > > > If you don't write Python code in mozilla-central, you can stop reading
> > > now.
> > > >
> > > > On October 19, 2020 we will be officially adopting the black Python
> > > style for all our Python code in mozilla-central.
> > > >
> > > > black (https://black.readthedocs.io/en/stable/) is an opinionated,
> > > fast, and correct auto-formatter for Python. It is an increasingly popular
> > > autoformatter which might be considered the de facto standard for Python
> > > code (like clang-format and jslint are for C++ and JS). It is already used
> > > by several Mozilla projects, including Release Engineering, Lando, and
> > > moz-phab.
> > > >
> > > > black makes it easy for us to reliably format all our Python code in a
> > > consistent way, making the codebase easier to read on the whole and
> > > allowing us to spend more time in code review discussing substantive 
> > > issues
> > > over trivial formatting matters.
> > > >
> > > > This policy change will affect all Python code in-tree, including
> > > sandboxed Python code used by the build system (.configure, .build, and
> > > .mozbuild files).
> > > >
> > > > As part of this policy change, we plan on doing a one-time auto-reformat
> > > on October 19 of all Python code in the entire repository. In addition,
> > > mach lint (
> > > https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
> > > and reviewbot will be updated to print warnings for Python source files
> > > that violate the black style. Just like with C/C++ or Rust, we won’t
> > > backout offending changes but instead will do regular refreshes of the 
> > > tree.
> > > >
> > > > If there are any questions, please let me know!
> > > >
> > > > Ricky
> > > > ___
> > > > dev-platform mailing list
> > > > dev-pl...@lists.mozilla.org
> > > > https://lists.mozilla.org/listinfo/dev-platform
> > > ___
> > > dev-platform mailing list
> > > dev-pl...@lists.mozilla.org
> > > https://lists.mozilla.org/listinfo/dev-platform
> > >
>
> --skip-string-normalization does exist, but the plan is not to use it. While 
> there is a cost associated with reformatting many (but not all) of the 
> strings in our Python code to be consistent with the black style, we don't 
> think that that cost outweighs the benefit of doing so.
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-19 Thread Ricky Stewart
On Monday, October 19, 2020 at 8:53:59 AM UTC-5, Andrew Halberstadt wrote:
> No, black now has a `--skip-string-normalization` flag, which I would be 
> all for using in our code base. Not sure if that was the plan here or not. 
> 
> -Andrew 
> 
> p.s It took a great deal of convincing from the community to get this flag 
> added, as the maintainers precisely wanted to prevent conversations like 
> this current one from happening :p.
> On Thu, Oct 15, 2020 at 5:23 PM Mike Hommey  wrote: 
> 
> > Is black still opiniated about string types and insisting to use double 
> > quotes, when we mostly settled on single quotes? 
> > 
> > On Mon, Oct 12, 2020 at 10:00:56AM -0700, Ricky Stewart wrote:
> > > Hello everyone, 
> > > 
> > > If you don't write Python code in mozilla-central, you can stop reading 
> > now. 
> > > 
> > > On October 19, 2020 we will be officially adopting the black Python 
> > style for all our Python code in mozilla-central. 
> > > 
> > > black (https://black.readthedocs.io/en/stable/) is an opinionated, 
> > fast, and correct auto-formatter for Python. It is an increasingly popular 
> > autoformatter which might be considered the de facto standard for Python 
> > code (like clang-format and jslint are for C++ and JS). It is already used 
> > by several Mozilla projects, including Release Engineering, Lando, and 
> > moz-phab. 
> > > 
> > > black makes it easy for us to reliably format all our Python code in a 
> > consistent way, making the codebase easier to read on the whole and 
> > allowing us to spend more time in code review discussing substantive issues 
> > over trivial formatting matters. 
> > > 
> > > This policy change will affect all Python code in-tree, including 
> > sandboxed Python code used by the build system (.configure, .build, and 
> > .mozbuild files). 
> > > 
> > > As part of this policy change, we plan on doing a one-time auto-reformat 
> > on October 19 of all Python code in the entire repository. In addition, 
> > mach lint ( 
> > https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
> >  
> > and reviewbot will be updated to print warnings for Python source files 
> > that violate the black style. Just like with C/C++ or Rust, we won’t 
> > backout offending changes but instead will do regular refreshes of the 
> > tree. 
> > > 
> > > If there are any questions, please let me know! 
> > > 
> > > Ricky
> > > ___ 
> > > dev-platform mailing list 
> > > dev-pl...@lists.mozilla.org 
> > > https://lists.mozilla.org/listinfo/dev-platform 
> > ___ 
> > dev-platform mailing list 
> > dev-pl...@lists.mozilla.org 
> > https://lists.mozilla.org/listinfo/dev-platform 
> >

--skip-string-normalization does exist, but the plan is not to use it. While 
there is a cost associated with reformatting many (but not all) of the strings 
in our Python code to be consistent with the black style, we don't think that 
that cost outweighs the benefit of doing so.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-19 Thread Andrew Halberstadt
No, black now has a `--skip-string-normalization` flag, which I would be
all for using in our code base. Not sure if that was the plan here or not.

-Andrew

p.s It took a great deal of convincing from the community to get this flag
added, as the maintainers precisely wanted to prevent conversations like
this current one from happening :p.

On Thu, Oct 15, 2020 at 5:23 PM Mike Hommey  wrote:

> Is black still opiniated about string types and insisting to use double
> quotes, when we mostly settled on single quotes?
>
> On Mon, Oct 12, 2020 at 10:00:56AM -0700, Ricky Stewart wrote:
> > Hello everyone,
> >
> > If you don't write Python code in mozilla-central, you can stop reading
> now.
> >
> > On October 19, 2020 we will be officially adopting the black Python
> style for all our Python code in mozilla-central.
> >
> > black (https://black.readthedocs.io/en/stable/) is an opinionated,
> fast, and correct auto-formatter for Python. It is an increasingly popular
> autoformatter which might be considered the de facto standard for Python
> code (like clang-format and jslint are for C++ and JS). It is already used
> by several Mozilla projects, including Release Engineering, Lando, and
> moz-phab.
> >
> > black makes it easy for us to reliably format all our Python code in a
> consistent way, making the codebase easier to read on the whole and
> allowing us to spend more time in code review discussing substantive issues
> over trivial formatting matters.
> >
> > This policy change will affect all Python code in-tree, including
> sandboxed Python code used by the build system (.configure, .build, and
> .mozbuild files).
> >
> > As part of this policy change, we plan on doing a one-time auto-reformat
> on October 19 of all Python code in the entire repository. In addition,
> mach lint (
> https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
> and reviewbot will be updated to print warnings for Python source files
> that violate the black style. Just like with C/C++ or Rust, we won’t
> backout offending changes but instead will do regular refreshes of the tree.
> >
> > If there are any questions, please let me know!
> >
> > Ricky
> > ___
> > dev-platform mailing list
> > dev-platform@lists.mozilla.org
> > https://lists.mozilla.org/listinfo/dev-platform
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-15 Thread Mike Hommey
Is black still opiniated about string types and insisting to use double
quotes, when we mostly settled on single quotes?

On Mon, Oct 12, 2020 at 10:00:56AM -0700, Ricky Stewart wrote:
> Hello everyone,
> 
> If you don't write Python code in mozilla-central, you can stop reading now.
> 
> On October 19, 2020 we will be officially adopting the black Python style for 
> all our Python code in mozilla-central.
> 
> black (https://black.readthedocs.io/en/stable/) is an opinionated, fast, and 
> correct auto-formatter for Python. It is an increasingly popular 
> autoformatter which might be considered the de facto standard for Python code 
> (like clang-format and jslint are for C++ and JS). It is already used by 
> several Mozilla projects, including Release Engineering, Lando, and moz-phab.
> 
> black makes it easy for us to reliably format all our Python code in a 
> consistent way, making the codebase easier to read on the whole and allowing 
> us to spend more time in code review discussing substantive issues over 
> trivial formatting matters.
> 
> This policy change will affect all Python code in-tree, including sandboxed 
> Python code used by the build system (.configure, .build, and .mozbuild 
> files).
> 
> As part of this policy change, we plan on doing a one-time auto-reformat on 
> October 19 of all Python code in the entire repository. In addition, mach 
> lint 
> (https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
>  and reviewbot will be updated to print warnings for Python source files that 
> violate the black style. Just like with C/C++ or Rust, we won’t backout 
> offending changes but instead will do regular refreshes of the tree.
> 
> If there are any questions, please let me know!
> 
> Ricky
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-15 Thread Andrew Halberstadt
 Thanks for driving this Ricky! I'm *very* excited for it.

Just want to call out that you can use:
$ ./mach lint -wo --fix

to reformat all the files you have touched (either in the working directory
or outgoing commits). For more usage docs, see:
https://firefox-source-docs.mozilla.org/code-quality/lint/usage.html

-Andrew

On Mon, Oct 12, 2020 at 1:05 PM Ricky Stewart  wrote:

> Hello everyone,
>
> If you don't write Python code in mozilla-central, you can stop reading
> now.
>
> On October 19, 2020 we will be officially adopting the black Python style
> for all our Python code in mozilla-central.
>
> black (https://black.readthedocs.io/en/stable/) is an opinionated, fast,
> and correct auto-formatter for Python. It is an increasingly popular
> autoformatter which might be considered the de facto standard for Python
> code (like clang-format and jslint are for C++ and JS). It is already used
> by several Mozilla projects, including Release Engineering, Lando, and
> moz-phab.
>
> black makes it easy for us to reliably format all our Python code in a
> consistent way, making the codebase easier to read on the whole and
> allowing us to spend more time in code review discussing substantive issues
> over trivial formatting matters.
>
> This policy change will affect all Python code in-tree, including
> sandboxed Python code used by the build system (.configure, .build, and
> .mozbuild files).
>
> As part of this policy change, we plan on doing a one-time auto-reformat
> on October 19 of all Python code in the entire repository. In addition,
> mach lint (
> https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
> and reviewbot will be updated to print warnings for Python source files
> that violate the black style. Just like with C/C++ or Rust, we won’t
> backout offending changes but instead will do regular refreshes of the tree.
>
> If there are any questions, please let me know!
>
> Ricky
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-14 Thread Ricky Stewart
On Monday, October 12, 2020 at 12:22:22 PM UTC-5, Andrew McCreight wrote:
> On Mon, Oct 12, 2020 at 10:05 AM Ricky Stewart  wrote: 
> 
> > Hello everyone, 
> > 
> > If you don't write Python code in mozilla-central, you can stop reading 
> > now. 
> > 
> > On October 19, 2020 we will be officially adopting the black Python style 
> > for all our Python code in mozilla-central. 
> > 
> > black (https://black.readthedocs.io/en/stable/) is an opinionated, fast, 
> > and correct auto-formatter for Python. It is an increasingly popular 
> > autoformatter which might be considered the de facto standard for Python 
> > code (like clang-format and jslint are for C++ and JS). It is already used 
> > by several Mozilla projects, including Release Engineering, Lando, and 
> > moz-phab. 
> > 
> > black makes it easy for us to reliably format all our Python code in a 
> > consistent way, making the codebase easier to read on the whole and 
> > allowing us to spend more time in code review discussing substantive issues 
> > over trivial formatting matters. 
> > 
> > This policy change will affect all Python code in-tree, including 
> > sandboxed Python code used by the build system (.configure, .build, and 
> > .mozbuild files). 
> > 
> > As part of this policy change, we plan on doing a one-time auto-reformat 
> > on October 19 of all Python code in the entire repository. In addition, 
> > mach lint ( 
> > https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
> >  
> > and reviewbot will be updated to print warnings for Python source files 
> > that violate the black style. Just like with C/C++ or Rust, we won’t 
> > backout offending changes but instead will do regular refreshes of the 
> > tree. 
> > 
> > If there are any questions, please let me know! 
> >
> Is there some way we can see the results of this change before it lands in 
> the tree? I would like to review the results of formatting for Python files 
> I care about to make sure nothing gets too messed up by it. For instance, 
> clang-format did some kind of line wrapping for wide comments that broke a 
> lot of ASCII diagram comments, and I and others had to spend a fair amount 
> of time fixing that. 
> 
> Relatedly, is there some way to disable formatting for specific lines of 
> code, in case there's something that gets mangled by the formatting and 
> there's no easy way to fix it? 
> 
> What does "all Python code in-tree" mean? Does that mean that this is going 
> to be run on all files that end in .py? I assume that this doesn't apply to 
> any third party code we have in the tree (either under the third-party 
> directory, or included in whatever other list I think we have)? 
> 
> Thanks, 
> Andrew 
> 
> 
> > Ricky 
> > ___ 
> > dev-platform mailing list 
> > dev-pl...@lists.mozilla.org 
> > https://lists.mozilla.org/listinfo/dev-platform 
> >
black does not reformat comments: https://github.com/psf/black/issues/181

Third-party code is exempt from being auto-formatted.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Adopting the black Python code style

2020-10-12 Thread Andrew McCreight
On Mon, Oct 12, 2020 at 10:05 AM Ricky Stewart  wrote:

> Hello everyone,
>
> If you don't write Python code in mozilla-central, you can stop reading
> now.
>
> On October 19, 2020 we will be officially adopting the black Python style
> for all our Python code in mozilla-central.
>
> black (https://black.readthedocs.io/en/stable/) is an opinionated, fast,
> and correct auto-formatter for Python. It is an increasingly popular
> autoformatter which might be considered the de facto standard for Python
> code (like clang-format and jslint are for C++ and JS). It is already used
> by several Mozilla projects, including Release Engineering, Lando, and
> moz-phab.
>
> black makes it easy for us to reliably format all our Python code in a
> consistent way, making the codebase easier to read on the whole and
> allowing us to spend more time in code review discussing substantive issues
> over trivial formatting matters.
>
> This policy change will affect all Python code in-tree, including
> sandboxed Python code used by the build system (.configure, .build, and
> .mozbuild files).
>
> As part of this policy change, we plan on doing a one-time auto-reformat
> on October 19 of all Python code in the entire repository. In addition,
> mach lint (
> https://firefox-source-docs.mozilla.org/code-quality/lint/linters/black.html)
> and reviewbot will be updated to print warnings for Python source files
> that violate the black style. Just like with C/C++ or Rust, we won’t
> backout offending changes but instead will do regular refreshes of the tree.
>
> If there are any questions, please let me know!
>

Is there some way we can see the results of this change before it lands in
the tree? I would like to review the results of formatting for Python files
I care about to make sure nothing gets too messed up by it. For instance,
clang-format did some kind of line wrapping for wide comments that broke a
lot of ASCII diagram comments, and I and others had to spend a fair amount
of time fixing that.

Relatedly, is there some way to disable formatting for specific lines of
code, in case there's something that gets mangled by the formatting and
there's no easy way to fix it?

What does "all Python code in-tree" mean? Does that mean that this is going
to be run on all files that end in .py? I assume that this doesn't apply to
any third party code we have in the tree (either under the third-party
directory, or included in whatever other list I think we have)?

Thanks,
Andrew


> Ricky
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform