Openembedded Core Discussions
 help / color / mirror / Atom feed
* [RESEND][PATCH 0/7] Devtool/Recipetool: adding pypi support
@ 2023-12-04 15:59 Julien Stephan
  2023-12-04 15:59 ` [RESEND][PATCH 1/7] bitbake: utils: remove spaces on empty lines Julien Stephan
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Julien Stephan @ 2023-12-04 15:59 UTC (permalink / raw)
  To: openembedded-core; +Cc: Julien Stephan

Hello all,

This series adds basic support for the pypi class in devtool/recipetool.

The idea is to be able to detect that a package is available on pypi and
in that case inherits from pypi class. This helps to produce cleaner
recipes for pypi packages.

To do this, I am adding a new optional callback "process_url" that
plugin can register to implement some logic on matching url.

By implementing this callback in create_buildsys_python we can match on
pypi URLs directly or on release tarballs hosted on "files.pythonhosted.org".

To create a recipe taking advantage of the pypi class we can use one of the
following new syntax:

* recipetool create https://pypi.org/project/<package>
* recipetool create https://pypi.org/project/<package>/<version>
* recipetool create https://pypi.org/project/<package> --version <version>

or the old syntax:

* recipetool create https://files.pythonhosted.org/packages/<...>

If the URL points to a github URL or a release tarball not coming from
"files.pythonhosted.org", the created recipe is the same as before.
One can also use the newly added "--no-pypi" switch to NOT inherit 
from pypi class on matching URL, to keep legacy behaviour.

This series also contains some bug fixes I found during my testing.

Pushed my dev branch here: https://git.yoctoproject.org/poky-contrib/log/?h=jstephan/devtool-add-pypi-support 

Cheers
Julien

Julien Stephan (7):
  bitbake: utils: remove spaces on empty lines
  recipetool: create_buildsys_python.py: initialize metadata
  recipetool: create: add trailing newlines
  recipetool: create: add new optional process_url callback for plugins
  recipetool: create_buildsys_python: add pypi support
  oeqa/selftest/recipetool: remove spaces on empty lines
  oeqa/selftest/recipetool/devtool: add test for pypi class

 bitbake/lib/bb/utils.py                       |  16 +--
 meta/lib/oeqa/selftest/cases/devtool.py       |   4 +-
 meta/lib/oeqa/selftest/cases/recipetool.py    | 114 +++++++++++++-----
 scripts/lib/devtool/standard.py               |   3 +
 scripts/lib/recipetool/create.py              |  63 ++++++----
 .../lib/recipetool/create_buildsys_python.py  |  73 +++++++++++
 6 files changed, 208 insertions(+), 65 deletions(-)

-- 
2.42.0



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-12-09  1:15 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-04 15:59 [RESEND][PATCH 0/7] Devtool/Recipetool: adding pypi support Julien Stephan
2023-12-04 15:59 ` [RESEND][PATCH 1/7] bitbake: utils: remove spaces on empty lines Julien Stephan
2023-12-05  7:50   ` [OE-core] " Alexandre Belloni
2023-12-05 14:57     ` Julien Stephan
2023-12-05 15:45       ` Alexandre Belloni
2023-12-05 16:27         ` Julien Stephan
     [not found]         ` <179DFC50B5886FE5.18076@lists.openembedded.org>
2023-12-06  8:24           ` Julien Stephan
2023-12-04 15:59 ` [RESEND][PATCH 2/7] recipetool: create_buildsys_python.py: initialize metadata Julien Stephan
2023-12-04 15:59 ` [RESEND][PATCH 3/7] recipetool: create: add trailing newlines Julien Stephan
2023-12-04 15:59 ` [RESEND][PATCH 4/7] recipetool: create: add new optional process_url callback for plugins Julien Stephan
2023-12-04 15:59 ` [RESEND][PATCH 5/7] recipetool: create_buildsys_python: add pypi support Julien Stephan
2023-12-09  1:15   ` [OE-core] " Tim Orling
2023-12-04 15:59 ` [RESEND][PATCH 6/7] oeqa/selftest/recipetool: remove spaces on empty lines Julien Stephan
2023-12-04 15:59 ` [RESEND][PATCH 7/7] oeqa/selftest/recipetool/devtool: add test for pypi class Julien Stephan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox