<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 7, 2017 at 3:15 PM, Félix Fischer <span dir="ltr">&lt;<a href="mailto:felix91gr@gmail.com" target="_blank">felix91gr@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><span class=""><div dir="auto">On Tue, Nov 7, 2017 at 5:24 PM Wallacy &lt;<a href="mailto:wallacyf@gmail.com" target="_blank">wallacyf@gmail.com</a>&gt; wrote:<br></div></span><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><span style="color:rgb(33,33,33)">The Compatibility Suite</span> is a good start, but I agree that something a bit more centralized has its benefits. <br><div><br></div><div>To be perfect, Compatibility Suite and Swift Package Manager need to work &quot;together&quot; to offer something simple like nodejs npm and a friendly (and central) interface to not only find these projects. Something more similar to nuget too.<br></div><div><br></div><div>The only thing I miss using npm and nuget is some kind of &quot;compromise&quot; with maintenance. And also some commitment to (avoid) rework. Several projects remake something that another does also without explaining well the differences between them.<br></div><div><br></div><div>Maybe we don&#39;t need to code any &quot;Non-Standard Libraries&quot;! Only a opt-in project like Compatibility Suite with steroids. Not only to track those projects, but in some level help defining some standards, documentations, versioning etc. This can be done entirely within the community.<br></div><div><br></div><div><div>Not so similar, however the gstreamer keeps a list of &quot;base&quot;, &quot;good&quot;, &quot;ugly&quot; and &quot;bad&quot; plugins for similar reasons.</div><div><br></div><div>We can do something in this line of reasoning:</div><div>- A central repository for projects (like Compatibility Suite)</div><div>- A tool to find and add each project (like SwiftPM)</div><div>- Rules for joining (like Compatibility Suite)</div><div>- A classification for each repository (like gstreamer)</div><div>- A good way to make each project as small and direct as possible (to take advantage of cross-module inlining / specialization)</div><div>- A list of discussion (or a forum?) for people that maintain (or have an interest in maintain) projects in this &quot;official&quot; list.</div></div><div></div></div></blockquote><div dir="auto"><br></div></span><div dir="auto">I like this approach much more. Feels more natural. And a forum (piggybacking on the eventual Discourse perhaps). I’d only change two things and extend one:</div><div dir="auto"><br></div><div dir="auto">- Instead of “central repository”, a “central index”. It makes it more transparent, more distributed, and closer to the current reality.</div><div dir="auto"><br></div><div dir="auto">- Here:</div><span class=""><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br></div><div>I vote for empowering SwiftPM and Compatibility Suite instead a &quot;Non-Standard Libraries&quot;.</div><div><br></div><div></div></div></blockquote><div dir="auto"><br></div></span><div dir="auto"><div dir="auto">I agree with a central index, but as Kelvin says, we shouldn’t be using the Compat Suite directly because of GPL issues.</div><div dir="auto"><br></div><div dir="auto">- I’d extend on the “Rules for Joining” point: they should be as clear and explicit as possible, to avoid drama like the one episode that happened last year on the JS repositories with that string-padding library. That thing broke half of the internet for some hours, and it was all about something unclear in the rules, if I remember the case correctly.</div></div></div></div></blockquote><div><br></div><div>I think Swift is less vulnerable to that than node.js if anything because Swift is compiled ahead of time so someone removing their repo doesn’t instantly break everything else. <br></div></div><br></div></div>