Porting to Python 3
Python 3 已經釋出近八年,原本一片慘紅的 Python 3 Readiness 和 PYTHON 3 WALL OF SUPERPOWERS 都已經接近全綠,真的可以看見社群逐漸朝向 Python 3 的努力。事實上,也開始有些專案漸漸要中止 Python 2 的支援了。
然而其實還是有不少常用的 packages 並不支援 Python 3,像是最近常會用到的 s3cmd 就是一例。到了他們的 Issues 頁面瞧瞧,發現其實很早以前就有想支援 Python 3 的聲音,只是一直沒有人力去做。
其實,雖然要完全支援的話工程有點浩大,但一小步一小步做起來就在可以處理的範圍之內。有些情況甚至用 2to3 就能有很大幫助了。於是忍不住就順手發了一個 pull request,結果很順利就被 merge 了。感覺是很低成本的讓自己感覺對世界有貢獻的方法之一。
找出可以幫忙的 repositories
於是想到,其實說不定 GitHub 上也還存在許多可以發 pull requests 的 repositories,於是就想寫個類似 Python 3 Readiness 的頁面,專門列出有在 GitHub 上但是卻不支援 Python 3 的專案,讓有強迫症的路人可以簡單找出可以去哪貢獻。
就這樣,py3tracker 誕生了。
主要的作法是先用 PyPI API 找出最多人下載的 projects,然後再透過 caniusepython3 檢查哪些不支援 Python 3,最後再偵測該 project 在 GitHub 上是否有公開原始碼。順便抓星星數用來排序。
本來想用 GitHub API 但是一下子就超過一天查詢限制,所以只好強抓網頁了。
最後的網頁樣板則是用 materializecss 快速做成。
希望對有強迫症的路人有所幫助。