<div dir="ltr"><div>TL;DR: "Releasing xstatic packages" <a href="https://review.openstack.org/#/c/253296/">https://review.openstack.org/#/c/253296/</a></div><div><br></div><div>xstatic <<a href="http://xstatic.rtfd.org/">http://xstatic.rtfd.org/</a>> is an existing standard for packaging up static resources for web development (HTML, Javascript and CSS) as Python modules. Horizon makes use of two dozen xstatic packages.</div><div><div><br></div><div>We need a better-organised method of releasing those packages. Currently those packages are maintained and released in an ad-hoc manner by individuals who come and go in the community, with differing release processes, requiring maintenance handovers, sometimes with people who go quiet. This does not scale to the dozens of xstatic packages Horizon wishes to consume.<br></div><div><br></div><div>We therefore wish to use OpenStack's existing release pipeline, handing over upload to PyPI to that system, while also allowing review of updates to the packages.<br></div><div><br></div></div><div>A problem arises in doing so: xstatic packages version themselves using the three-digit version of the static package they bundle (eg. JQuery-1.2.3) with an added build number (eg. xstatic-jquery-1.2.3.4) to allow re-building if the packaging goes wrong. Currently we cannot release these packages through the OpenStack release pipeline because pbr (a requirement of that pipeline) does not allow 4 digit version strings. A proposal to extend pbr to allow 4 digit versions was abandoned today: <a href="https://review.openstack.org/#/c/205623/">https://review.openstack.org/#/c/205623/</a> (in short, we are only using the version git tag extraction facility of pbr, and even then not all of that, and pbr would become more complex with the special-casing required to ... special-case xstatic packaging).<br></div><div><br></div><div>We will look to use setuptools_scm instead of pbr. Some support work will be required to make the proposal above happen. This is outlined in "Releasing xstatic packages" <a href="https://review.openstack.org/#/c/253296/">https://review.openstack.org/#/c/253296/</a></div><div><br></div><div>Also, a patch has been submitted to a sample xstatic package implementing the proposed new workflow: <a href="https://review.openstack.org/#/c/252752/">https://review.openstack.org/#/c/252752/</a></div><div><br></div></div>