<div dir="ltr"><div dir="ltr">Hey all,<div>  In trying to fulfill a role as "PostGIS ambassador" to the PgSQL community, I took the opportunity to canvas developers at the EU conference last week on topics we raised during our code sprint in Boston last month. </div><div>  Dmitri Fontaine, the primary author of the extension framework, was very attentive to our growing need for some kind of inter-extension dependency mechanism and potentially a versioning mechanism. </div><div>  He proposed a "feature based" solution, which was almost added a few development cycles ago. (Scroll to the top of the chain to see his description of the idea.)</div><div><br></div><div><a href="https://www.postgresql.org/message-id/flat/CA%2BTgmobe5awu4syu%3DUJJ6skRRuTpcfSGJhg7E1PemWkmGE_qOw%40mail.gmail.com#9e9066a22f8cf2a53edd92fb6c71f71c">https://www.postgresql.org/message-id/flat/CA%2BTgmobe5awu4syu%3DUJJ6skRRuTpcfSGJhg7E1PemWkmGE_qOw%40mail.gmail.com#9e9066a22f8cf2a53edd92fb6c71f71c</a><br></div><div><br></div><div>This would allow a more granular way of extensions to describe the capabilities they offer, and for extensions to be reorganized over time. For example, right now "postgis" provides "geometry", "geography" and "raster". After 3.0, "postgis" will provide "geometry" and "geography", and "postgis_raster" will provide "raster" and require "geometry". So there is a dependency relationship between "postgis_raster" and "postgis" and the granularity of the features allows them to be moved around between extensions: a program that required "raster" would still work even after the extension re-organization, because the "raster" feature would still be there, just in a different extension.</div><div><br></div><div>The only trouble with the feature mechanism I see is that it requires omniscient developers who know exactly the right granularity to describe features with.</div><div><br></div><div>Have a look at the old patch discussion and provide your feedback and/or detailed discussion of what you think a feature/dependency/version solution that would work for us might entail.</div><div><br></div><div>Thanks!<br>P</div></div></div>