介紹 shardbox.org
我很樂意宣布 shardbox.org 的發布,這是一個用於發現 Shard 的資料庫。
需要澄清的是:Shardbox 不是 Shard 的註冊表。它不會作為 Shard 相依性解析的一部分,而相依性解析是完全分散的。它只是收集有關公開可用的 Shard 的資訊,並作為 Shard 生態系統的目錄。它是開發人員用來協助尋找他們可能想要使用的現有 Shard 的工具。如果您熟悉 Ruby,請將它視為更像是 The Ruby Toolbox 而不是 Rubygems。
已經有提供類似功能的服務,例如 crystalshards.org 或 shards.info。那麼為什麼我們需要另一個?現有的服務是 GitHub API 周圍相對簡單的包裝函式,且不維護自己的資料庫。雖然相對容易實作,但這種方法無法完全支援 Shard 的功能,並提供有關 Shard 和生態系統內部關係的深入資訊。
最重要的是,專注於 GitHub 會排除任何託管在其他地方的 Shard。Shardbox 不依賴任何託管提供者,只要 Shard 儲存庫是公開可用的,就可以使用任何 Shard 儲存庫。它仍然可以使用託管提供者提供的補充資訊(如果有的話)。
Shardbox 會收集有關 Shard 及其關係的資訊。這使得可以輕鬆發現反向相依性和相依性圖表(shards.info 有基本實作,但它僅限於 GitHub 搜尋 API 的功能),即使是較舊的版本也是如此。
當儲存庫從 GitHub 中移除時,它不會從 Shardbox 資料庫中消失。即使對於不再可存取的 Shard,資訊也會保留。這可以幫助復原否則會遺失的資訊,並且當儲存庫在不同的位置可用時,可以繼續使用。任何 Shard 都可以有關聯的鏡像儲存庫。
Shardbox 提供許多其他功能,例如分類、資料分析、發佈歷史記錄、存取 Shard 內容和特定領域的搜尋功能。
在 2019 年的大部分時間裡,我一直斷斷續續地從事這個副專案。它最終進入了我認為運作良好並且為每個使用和尋找 Shard 的人提供有用資訊的狀態。我預期它會毫無重大中斷地執行,但尚未經過實戰測試。可能會出現初期問題。
如果您發現任何問題,請隨時在 問題追蹤器中開啟工單。也歡迎提供修復錯誤和功能增強的貢獻。我已經有一些關於接下來應該做什麼的好想法,而且我也對您的建議感到好奇。如果您發現資料庫中缺少 Shard,您可以將其新增至 github.com/shardbox/catalog 中的目錄。如需更多詳細資訊,請參閱 shardbox.org/contribute。