hamster icon indicating copy to clipboard operation
hamster copied to clipboard

Investigate and eventually replace waf build system

Open aquaherd opened this issue 2 years ago • 5 comments

Recent discussion around the waf build system yielded a deprecation notion.

Discuss / decide / triage here if:

  • replacement / modernization is required at all
  • compare possible replacement candidates
  • decide and implement, if any

Nice to have: (and also open for discussion)

  • packaging helpers (like .deb, rpm, .tar.gz, flatpak, snap, appimage, ...)
  • simplify e.g. arch packaging with $DESTDIR and the like
  • support for installing dbus service files, icons and desktop files
  • conversion of *.in files before packaging
  • github actionability

aquaherd avatar Nov 19 '23 14:11 aquaherd

See also https://github.com/projecthamster/hamster/issues/399 for previous discussion (yay, found the issue again :-p)

matthijskooijman avatar Nov 19 '23 15:11 matthijskooijman

Well, note that I'm not a Python developer and so, not a credible source :) But, I've been involved in a number of Python packaging for distros recently. Migrating to pyproject.toml style building seems to be a standard, so I think using it is a must. Then, the question will be the build backend. I'm completely clueless here, but I've seen people started using hatch recently. But, if you are fan of meson, it seems that there is also this meson python thing which can be used.

I'm not sure about meson python, but using a more common build backend like hatch/hatchling or others (newer setuptools versions or maybe PDM or...) is probably supported by many distros out of the box.

Using pyproject.toml with a common build backend will most likely mean effortless packaging in popular distros; as you probably don't need to edit the default template much.

hedayat avatar Nov 19 '23 17:11 hedayat

If we can make things work with pyproject.toml and a build backend, that would be awesome! I'm not sure if all of the build backend stuff will work (we might need to install things out of the regular boundaries of a python package, but maybe the build backend API allows for that), but if so, all the better.

matthijskooijman avatar Nov 19 '23 18:11 matthijskooijman

Well, from a brief look, I've got a feeling that it is possible. I hope I'm not wrong :)

hedayat avatar Nov 19 '23 18:11 hedayat

Maintainer of Hatch here! The build backend Hatchling I think would definitely satisfy your constraints as there is plugin functionality allowing for custom build hooks if desired.

ofek avatar Dec 03 '23 23:12 ofek