Skyline-apiserver is a pure Python code project, following the Python wheel packaging standard, using pip for installation, and the dependency management of the project using poetry[1]

Skyline-console uses npm for dependency management, development and testing. During the packaging and distribution process, webpack will be used to process the source code and dependent library code first, and output the packaged static resource files. These static resource files will be stored in an empty Python module[2]. The file directory is for example:

- skyline_console
    - __init__.py
    - __main__.py
    - static
       - index.html
       - some_a.css
       - some_b.js
    ...

Pack this empty module in Python wheel, and additionally include these static resources as "data_files"[3][4][5], so that it can be distributed like a normal Python package without having to deal with JS dependencies. When deploying with Nginx, when you need to fill in the static resource path, use "python -m skyline_console" to find it. 

There is a packed skyline packag[6] on "tarballs.opendev.org" for you to preview.

[1] https://python-poetry.org/
[2] https://opendev.org/skyline/skyline-console/src/branch/master/Makefile#L73-L77
[3] https://packaging.python.org/guides/distributing-packages-using-setuptools/#data-files
[4] https://setuptools.pypa.io/en/latest/deprecated/distutils/setupscript.html#distutils-additional-files
[5] https://opendev.org/skyline/skyline-console/src/branch/master/pyproject.toml#L6
[6] https://tarballs.opendev.org/skyline/skyline-apiserver/



2021年10月16日 01:23,Thomas Goirand <zigo@debian.org> 写道:

On 10/15/21 6:07 PM, Ghanshyam Mann wrote:
New project 'Skyline' proposal
------------------------------------
* You might be aware of this new dashboard proposal in the previous month's
discussion.
* A new project 'Skyline: an OpenStack dashboard optimized by UI and UE' is
now proposed in governance to be an official OpenStack project[4].
* Skyline team is planning to meet in PTG on Tue, Wed and Thu at 5UTC, please
ask your queries or have feedback/discussion with the team next week.

Skyline looks nice. However, looking nice isn't enough. Before it
becomes an OpenStack official component, maybe it should first try to
reach our standard. I'm namely thinking about having a proper setuptool
integration (using PBR?) for example, and starting tagging releases.

I'm very much interested in packaging this for Debian/Ubuntu, if it's
not a JS dependency hell. Though the current Makefile thingy doesn't
look appealing.

I've seen the console has at least 40 JS direct dependency. How many
indirect dependency is this? Has anyone looked into it?

Is the team ready to help making it package-able in a distro policy
compliant way?

Your thoughts?

Cheers,

Thomas Goirand (zigo)