<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<style>
    font{
        line-height: 1.6;
    }
    ul,ol{
        padding-left: 20px;
        list-style-position: inside;
    }
</style>
<div style="font-family:微软雅黑,Verdana,"Microsoft Yahei",SimSun,sans-serif;font-size:14px; line-height:1.6;">
    <div></div><div>
    <div><br></div><div><span style="font-size: 14px;">Hi,</span></div><div><br></div><div><span style="font-size: 14px;">Well, it's Skyline Team's first time to attend the PTG : )</span></div><div><span style="font-size: 14px;">Thank you for your attention and discussion of Skyline. And welcome more friends to join us!</span></div><div><br></div><div><span style="font-size: 14px;">You can see all the notes in a read-only etherpad here:</span></div><div><span style="font-size: 14px;">- skyline etherpad: </span><a href="https://etherpad.opendev.org/p/r.b44d07e6504a4b38514b2717f01aca62" _src="https://etherpad.opendev.org/p/r.b44d07e6504a4b38514b2717f01aca62" style="font-size: 14px; text-decoration: underline;"><span style="font-size: 14px;">https://etherpad.opendev.org/p/r.b44d07e6504a4b38514b2717f01aca62</span></a> </div><div><span style="font-size: 14px;">- tc etherpad: </span><span style="font-size: 14px; text-decoration: underline;"><a href="https://etherpad.opendev.org/p/r.a07136b01df95515f32c4cb779faa45c#L395" _src="https://etherpad.opendev.org/p/r.a07136b01df95515f32c4cb779faa45c#L395" style="font-size: 14px; text-decoration: underline;">https://etherpad.opendev.org/p/r.a07136b01df95515f32c4cb779faa45c#L395</a></span></div><div><br></div><div>## reorganize to one Python package per Git repository</div><div>Now skyline-apiserver has divided the source code into six sections:</div><div>  - skyline-apiserver: core source code of skyline apiserver</div><div>  - skyline-config: config library with yaml to parse config file</div><div>  - skyline-console: git submodule of skyline-console</div><div>  - skyline-log: log library with loguru</div><div>  - skyline-nginx: generate the nginx.conf file with openstack environment</div><div>  - skyline-policy-manager: generate policy yaml file</div><div>Generally, we just focus on skyline-apiserver.</div><div><br></div><div>## stop using Git's submodule feature</div><div>Is there any reason why we should stop using git's submodule?</div><div><br></div><div>## use Python package configuration and tooling consistent with existing OpenStack projects</div><div>Now skyline-apiserver use yaml to parse config and poetry to manage dependency.</div><div><br></div><div>## call Python entrypoints directly from tox instead of using tox as a wrapper around make</div><div>Scripts[0] get converted to console_scripts entry points, plugins[1] would allow for arbitrary entry points.<br></div><div><a href="https://python-poetry.org/docs/pyproject/#scripts" _src="https://python-poetry.org/docs/pyproject/#scripts" style="line-height: 22.4px;">https://python-poetry.org/docs/pyproject/#scripts</a><br></div><div><a href="https://python-poetry.org/docs/pyproject/#plugins" _src="https://python-poetry.org/docs/pyproject/#plugins" style="line-height: 22.4px;">https://python-poetry.org/docs/pyproject/#plugins</a><br></div><div><br></div><div>## constrain Python dependencies and test dependencies in tox configuration (pip -c)</div><div>Yet, there is no constraints like pip -c in poetry. Find some discussion about this in poetry. But all are closed, not merged.</div><div><a href="https://github.com/python-poetry/poetry/pull/4005" _src="https://github.com/python-poetry/poetry/pull/4005">https://github.com/python-poetry/poetry/pull/4005</a> </div><div><a href="https://github.com/python-poetry/poetry-core/pull/172" _src="https://github.com/python-poetry/poetry-core/pull/172">https://github.com/python-poetry/poetry-core/pull/172</a></div><div><br></div><div>## track Python dependencies and test dependencies in requirements files</div><div>Now we track python depentdencies and test dependencies in poetry's tool.poetry.dependencies and tool.poetry.dev-dependencies</div><div><br></div><div>## get Python package versions from Git tags rather than hard-coded in configuration files</div><div>Sure, but hard-coded package version is not serious problem.</div><div><br></div><div>## rely more on Oslo libraries (currently only oslo.policy is used)</div><div>Reuse wherever possible. oslo.policy is used to generate the policy yaml for skyline to use.</div><div><br></div><div>## Horizon has plugin support so that projects like Manila can add dashboard support.</div><div>Skyline's architecture and technology stacks are different from horizon. So we will continue to explore</div><div>how to gracefully add non-core module functionality via plug-ins. At the same time, we will also improve</div><div>core component functions.</div><div><br></div><div><br></div><div>Best Regards</div><div><br></div><div>Boxiang Zhu</div><div><br></div><div><br></div><div id="ntes-pcmac-signature" style="font-family:'微软雅黑'">
 </div>
</div><!--😀-->
</div>
</body>
</html>