From: Martin Jansa <martin.jansa@gmail.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Yocto style guide change proposal
Date: Fri, 20 Jul 2012 11:32:08 +0200 [thread overview]
Message-ID: <20120720093208.GD3534@jama.jama.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 2385 bytes --]
in "PLEASE READ: Major change landing shortly (python whitespace)"
RP said:
It's become clear we have a horrible mixture of whitespace (tabs and
space) in python functions.
That was resolved in following patches for bitbake, oe-core and other
layers.
Now we have horrible mixture of whitespaces (tabs and space) only in
recipe files, because yocto style guide recommends tabs in shell
functions. So if recipe has e.g. do_install_append as well as
populate_packages_prepend (not so uncommon combination as tabs fixing
patches show), then according to yocto style guide it should look like
this:
do_install_append() {
foo
}
python populate_packages_prepend () {
libdir = bb.data.expand('${libdir}', d)
do_split_packages(d, libdir, '^lib(.*)\.so\.*', 'lib%s', 'ORC %s library', extra_depends='', allow_links=True)
}
especially with default tab width 8 spaces it's ugly and because it
is inconsistent, many devs used spaces in shell functions too. Now when
someone accidentaly use tab also in python function it will show warning
or fail to parse. Some devs are using mix of tabs and spaces even on the
same line (e.g. to indent SRC_URI multiline entries).
Maybe this inconsistence in recipe files is because yocto style guide is
harder to find then openembedded style guide..
First google hit for "openembedded style guide":
http://www.openembedded.org/wiki/Styleguide
says about tabs only this:
- Use spaces for indentation as developers tends to use different amount
of spaces per one tab.
So only in yocto wiki there are 2 more bullets after that
https://wiki.yoctoproject.org/wiki/Recipe_%26_Patch_Style_Guide
- Use spaces for indentation as developers tends to use different amount
of spaces per one tab.
- Shell functions should use tabs
- Python functions should use spaces (4 spaces per indent).
And yocto style guide is not in first 5 pages of result when searching
for "openembedded style guide".
If we change the style guild to use 4 spaces per indent also for shell
functions then we can easily update bitbake/contrib/vim to highlight
tabs, so that every tab would be easily spotted in recipe/bbclass.
FWIW: I've prepared patch for whole meta-smartphone to unify that and
I've sent RFC for few bbclasses in meta-oe too.
Cheers,
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next reply other threads:[~2012-07-20 9:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-20 9:32 Martin Jansa [this message]
2012-07-20 13:56 ` Yocto style guide change proposal Richard Purdie
2012-07-20 13:57 ` Chris Larson
2012-07-20 14:12 ` Richard Purdie
2012-07-20 14:15 ` Chris Larson
2012-07-20 14:31 ` Paul Eggleton
2012-07-20 15:07 ` Martin Jansa
2012-07-20 15:17 ` Martin Jansa
2012-07-20 15:46 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120720093208.GD3534@jama.jama.net \
--to=martin.jansa@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox