Hi,

When I initially start writing this wishlist bug report, I was expecting
existence of one upstream source tree. The more I checked situation around
incus-ui, I concur with your thought and see more challenges for packaging.

Although I have no idea for typescript nor node, I realize that, though the
building lxd-ui was trivial task on my local Debian machine, it is a non-trivial
task for Debian packaging unless I dare to package many node packages.

I found 2 references for existing packaging efforts (ARCH and SPEC for some RPM)
 * https://gist.github.com/vaxvhbe/ce679df15fc521c8aca1ff9ddf537201 SPEC
 * https://github.com/KosmX/incus-ui-canonical-arch/blob/master/PKGBUILD ARCH
 
So I tried on my local machine to build unmodified source as a starter:

 $ sudo apt install yarnpkg npm
 $ git clone https://github.com/canonical/lxd-ui.git
 $ cd lxd-ui
 $ yarn install
 $ yarn build

Then I easily had a static web page with javascript to serve at
  build/ui/

I realize zabby's patches to make Incus UI were applied to the upstream LXD-UI
source, so it wasn't as brute force changes as I was afraid of.  But, as I
checked in the build tree under node-modules/, there are too many packages
(~600) involved.  This means there is a heavy burden of creating an official deb
package since all these packages need to be packaged in advance for Debian to
satisfy the Debian build requirement.  Then, on the top of it, there is an issue
of maintaining patches as you mentioned.

If I will file a RFP, I should do it as a fresh one to get the best exposure
(instead of retitle ITP or this bug report.)

Let me record few references I found.

Debian
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1067041 this wishlist bug
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1036926 closed ITP lxd-ui

Upstream message around web-ui
* https://stgraber.org/2023/11/25/adding-a-web-ui-to-the-incus-demo-service/
* https://discuss.linuxcontainers.org/t/web-ui-for-incus/18198/2
* https://discuss.linuxcontainers.org/t/incus-web-ui-spacing/18928
* https://discuss.linuxcontainers.org/t/lxconsole-as-web-ui/19212
*
https://discuss.linuxcontainers.org/t/stateful-uis-and-questions-about-lxd-ui-history/18302

Incus upstream doesn't wish to spend his time on this web page generation and
maintenance and provided proof-of-concept example by rebranding lxd-ui

Incus UI is a single-page application written in TypeScript and React and only
replicates what you can do with the incus CLI program (i.e. works through the
REST API).

Other UI -- all needs external dependencies
* https://github.com/PenningLabs/lxconsole (PYTHON)
* https://github.com/AdaptiveScale/lxdui (PYTHON)
* https://github.com/turtle0x1/LxdMosaic (JS with SQL)
* https://github.com/lxdware/lxd-dashboard (PHP)

Quoting Incus upstream:
Those more complex web interfaces will typically come with their own set of
instructions on how to properly deploy them, what OS they support to run their
daemon and database, how to setup the database for high-availability when in a
cluster environment, how to perform backups of that data, …

--- none of these seem to be good replacements of Incus UI(rebranded lxd-ui).

Regards,

Osamu

On Sun, 2024-03-17 at 22:40 +0000, Mathias Gibbens wrote:
> > Hi Osamu,
> > 
> >   Prior to the LXD/Incus hard fork, I did have an ITP to look at
> > packaging lxd-ui (#1036926). I think the "proper" way to package Incus
> > UI would be to have it as a new package (incus-ui), which incus
> > packaging could then Recommend or Suggest.
> > 
> >   I would also be more comfortable with Incus UI it was a proper fork
> > of Canonical's repository that carried the seven patches from
> > zabbly/incus. As a packager, we shouldn't be taking one upstream and
> > totally transforming it into something else via patches since that's
> > just too much work to carry in our packaging. :)
> > 
> >   My suggestion would be to rework this bug into a RFP and/or merge
> > with the prior ITP. I don't have any plans to work on this, but someone
> > else might.
> > 
> > Mathias

Reply via email to