在GitHub上分析Django的requirement files
Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。
Django是最流行的Python web框架,到現在已經有12年的歷史。從小型到超大型,從重內容網站到純API後端,Django可以勝任幾乎所有不同類型的項目。
在pyup.io 我們相當關注requirement files和依賴關係。幸運的是,BigQuery提供了GitHubs數據,這樣我們可以運行一個查詢,這個查詢讓我們有許可權通過公共repos.*來訪問所有requirement files。
讓我們來看看Django的使用情況。
*完整的數據集可以在 pyupio/github-requirements獲得。它包含了所有的原始requirement files,和一個預處理索引。
Django 開發者固定(freeze)他們的requirements
固定或凍結的requirements (Django==1.8.12) 使構造可預測和可確定。由於Django主要用於搭建終端產品,新的主要發行版可能包含突破性的API改動,因此,應該明確告知pip具體要安裝哪個版本的包。這就是大部分Django開發者的看法:64%固定了他們的requirements。
第二大選項是佔24%的有範圍的requirements(Django>=1.8,<1.9) 。這樣可以防止新的主要發行版本出現問題,但仍有一些問題。構建不再是確定性的,並且無法通過單獨查看requirement files來判斷伺服器上當前正在運行的版本。
版本不確定的requirements不受歡迎,只佔11%。
Django 1.8是最流行的主要發布版本
Django 1.8 是舊的LTS發行版並且是最廣泛使用的,佔24%。對於較舊的項目來說,不失為一個好的選擇,它仍然會收到安全更新,直到2018年4月。
令人擔憂的是第二,第三和第四名的版本1.9(14%),1.7(13%)和1.6(13%)。所有這些發行版都不再接收安全更新,1.7年和1.6已經結束生命周期超過2年。
只有2%的Django項目跑在安全的發行版上
在所有項目中,超過60%的用戶使用含有一個或多個已知安全漏洞的Django發行版。只有2%使用安全的Django發行版。
在剩下的超過30%的項目中,完全不清楚需要安裝什麼才能運行。這是因為Django發行版(的需求文件)是不固定的或是範圍的。
Django核心開發人員可以非常好地處理安全問題。所有這些都分配了CVE,並通過多個渠道公布了安全補丁。如果您在您其中一個項目中使用Django,請務必定期更新。如果您不想使用最新功能,請留在其中一個LTS發行版中,並留意更新。
在pyup.io,我們有多種工具可以幫助您。當您使用的依賴關係中含有已知安全漏洞的時候, Safety命令行工具會警告您。如果您使用GitHub,請查看Safety CI或配置pyup-bot以接收安全更新。
零點發行版很流行
所有Django發行版中排名前10的包含三個零點發行版:第一是1.8,第四是1.7,第十是1.9。第二受歡迎的發行版是Django 1.6.5,緊隨其後的是第三名1.8.4。
最新的LTS發行版1.8.18,排第49位。最新穩定發行版1.11.2,排第107。最新的上代穩定版,1.10.7,排第51,最後是最新的前代穩定版,1.9.13,排第83。
結論
總而言之,查看像Django一樣成熟的框架的原始數字是非常有趣的。安全圖表有點令人震驚,但並沒有計算項目活動情況。把項目按照特定年齡和活動來分段查看,結果肯定會看起來非常有趣。可能沒有這麼多的活動項目仍然使用Django 1.4。
還有一些有趣的問題留待後續發布。
英文原文:https://pyup.io/posts/analyzing-django-requirement-files-on-github/
譯者:ChengQuan17
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※在Linux上高效開發的7個建議
※開源社區現狀如何?
※618,學習Django九折,為了成為一個好爸爸。
※Instagram創始人女友自學Django,製作應用為男友準備情人節驚喜
※Instagram: 用Django服務30億用戶
TAG:Python程序員 |
※Swift for TensorFlow 已在 GitHub 上開源,Tensor 成為 Swift 語言裡面的一等公民
※用 GHTorrent 和 Libraries.io 查詢 10 年的 GitHub 數據
※Github 上最火的 Google 圖像下載工具使用說明:google-images-download
※用R語言的Blogdown+Hugo+Netlify+Github建博客
※微軟前員工將Windows Media Center發布到GitHub
※GitHub 熱門項目:Python Fire
※Github 上的 Jupyter Notebook 數量的估算與預測
※GitHub趨勢:Vue.js大有超過TensorFlow之勢!
※快速搭建你的 github pages 個人博客——基於 Create-React-App 的單頁面應用實踐
※詳解Github的.gitignore忽略文件+.gitignore不生效解決+生產配置
※GitHub趨勢榜第一:TensorFlow+PyTorch深度學習資源大匯總
※github pages + hexo 構建自己的網站
※Github上最受歡迎的Python框架Flask入門
※中文repo「霸榜」GitHub Trending,國外開發者不開心了
※GitHub 網站移除 Jquery
※如何轉移 Github的Star?
※iBoot代碼泄漏到GitHub可能有助於iPhone的破壞者
※TensorFlow官方力推、GitHub爆款項目:用Attention模型自動生成圖像字幕
※NET Core從Github到 Nuget 持續集成、部署
※Shanku Niyogi加入GitHub擔任產品高級副總裁