當前位置:
首頁 > 知識 > 在GitHub上分析Django的requirement files

在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



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

在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擔任產品高級副總裁