Hello! @finestructure and I have a PR open on the Swift.org website repository that we would love your feedback on.
As part of running the Swift Package Index, we see the work that the Swift community puts into building a great package ecosystem and want to highlight that work by bringing more package information to the Swift website.
This PR starts to do that by adding a new, top-level Packages page containing lists of packages along with links to the Swift Package Index, where people can find more information. The lists will be generated using a combination of metadata from the Swift Package Index and the curation of community package suggestions and will be updated regularly, allowing plenty of different packages to appear on Swift.org.
Preview/Demo
You can see a live preview of the proposed new page here.
What are the package lists under “Package Ecosystem”?
There are currently six package lists. One is based on community activity (more on that below), one highlights packages that use the new macros feature of Swift 5.9, and four are based on keyword categories from GitHub keywords.
The package “cards” in the lists contain a summary description of the package, along with some metadata and author information. We went through a few designs before arriving here, and there’s a balance between providing enough information to show what the package is about without making the page so long that people only ever see the first category!
Community Showcase
After discussion with both Apple and the Swift Website Workgroup (SWWG), we all feel that it’s important to highlight a wide variety of packages currently being developed by and discussed within the Swift community, and the first list on this page seeks to do that.
This showcase will feature packages sourced from community podcasts, newsletters, blogs, and other community publications. Initially, the SWWG will take responsibility for gathering nominations from those community sources and curating them into the Community Showcase list. The SWWG will pass responsibility for curating this list to the Ecosystem Steering Group once it is operational.
Nominations of packages for this list will be via a public thread on the Swift forums. We will encourage the authors/hosts of community publications/podcasts to subscribe to that thread so that they receive email reminders to submit the packages they recently linked to or discussed. The SWWG will ping that thread asking for nominations one week before each page update.
We are proposing only one guideline (in addition to the Code of Conduct) for inclusion in the showcase, and that’s that each package should come from a conversation about other people’s packages rather than those written by the podcast’s host or blog post/newsletter’s author.
We also considered direct community member submission of packages and some kind of community voting process to determine selections. We may still do that once this process is up and running, but it’s not in scope for now.
Finally, it’s important to note that the showcase is exactly as its name suggests. A broad showcase of packages, and it is not intended to be a “best of the best” or anything like that. It’s an opportunity to find a variety of packages, including new ones.
Other package lists
All other package lists are currently sourced from keyword listings or search results on the Swift Package Index.
One question I’m sure will come up is how the category/keyword list packages are chosen. The order and selection of packages comes from our “package score”, which also powers our search ordering on the Swift Package Index. The current algorithm is available in the source code.
How will the page get updated?
Swift.org is a statically generated site, and this PR doesn’t change that. The package lists are powered by a packages.yml
data file that we will update via pull request on a regular schedule.
Your feedback
We’d love feedback on the proposal generally but also on a couple of specific points:
- What categories and searches should we highlight on the page? We want the top-level lists to cycle over time (especially searches like the “macro target” search, as Swift 5.9 gains adoption). We have an initial set, as you can see in the hosted demo. Are these useful? What others would be good additions?
- The Community Showcase currently only has packages mentioned on two podcasts, Swift Package Indexing and the Empower Apps podcast. Please subscribe to this thread if you’d like a notification when we start the package nomination process, and please mention below or share this post with any people who run community podcasts/publications.
Thanks for reading!
Dave & Sven