GitHub 可以在 repository 上加 tag 了

功能叫做 topics

GitHub 會透過機器學習的方式對公開的 repository 給建議:

Additionally, GitHub uses machine learning to analyze public repository content and generate suggested topics that repository admins can accept or reject. Private repository content is not analyzed and does not receive topic suggestions.

Unix 程式碼演進的記錄

GitHub 上的「dspinellis/unix-history-repo」專案放進了 Unix 程式碼從 1970 年演進到 2016 年的記錄:

The history and evolution of the Unix operating system is made available as a revision management repository, covering the period from its inception in 1970 as a 2.5 thousand line kernel and 26 commands, to 2016 as a widely-used 27 million line system.

主要的目的是讓研究人員可以直接分析,減少重複的工作:

The project aims to put in the repository as much metadata as possible, allowing the automated analysis of Unix history.

後面的分支主要是以 FreeBSD 為主:(在列表的部份也可以看到)

It has been created by synthesizing with custom software 24 snapshots of systems developed at Bell Labs, the University of California at Berkeley, and the 386BSD team, two legacy repositories, and the modern repository of the open source FreeBSD system.

整個 repository 頗壯觀的 XD

GitHub 又多了許多功能...

GitHub 上個禮拜推出了不少功能出來:「A whole new GitHub Universe: announcing new tools, forums, and features」。

功能多了不少,但比較亮眼的主要是 Project 的功能,界面上有點像 Trello

操作上也可以看到,一個 repository 可以開很多 project,然後在裡面移來移去:

With Projects, you can manage work directly from your GitHub repositories. Create cards from Pull Requests, Issues or Notes and organize them into custom columns, whether it’s "In-progress", "Done", "Never going to happen" or any other framework your team uses. Drag and drop the cards inside a column to prioritize them or move them from one column to another as your work progresses.

唔... 這樣好用不少 :o

清出一個乾淨的 Git Repository

自動化機制中,要確保可以拿到最新的 Git Repository 最保險的方法是 rm -rf 掉再重新 clone 一份,但對於稍微大一點的 repository 速度就太慢了,所以得想辦法保留 repository 加快速度。

目標是想要處理 submodule 的變更,並且仍然可以處理 force push 時的災難,避免需要人工介入... 這在建各種自動化機制時常常會用到,像是用 Fortify SCA 白箱掃描,或是 CI & CD 機制上。

BRANCH=master
git fetch --force
git reset --hard origin/"${BRANCH}"
git submodule sync --recursive
git submodule update --init --force
git clean --force --force -d -x
git checkout "${BRANCH}" --force

用了很多 --force 主要是要處理 force push 後的收拾 :o

其實如果想要處理的更好的話,可以在發生錯誤時改走 mv (保留屍體) + 重新 clone 的機制,並且發警報出來讓管理者事後研究,這樣發生問題當下還是可以先提供服務。

不過這個想法還只在腦袋裡還沒寫... XD

Google 將 Raspberry Pi 3 加到 AOSP 裡

GoogleAOSP 裡加入對 Raspberry Pi 3 的支援:「Google to bring official Android support to the Raspberry Pi 3」,repository 可以在「device/pifoundation/rpi3/」這邊看到,目前是空的,不過這讓大家就有很多想像了:

For now, the Pi 3 device tree is empty with only the comment "initial empty repository" accompanying it. The repository should soon start to fill with code, though.

感覺對 Raspberry Pi 注入了不少活力... (以及估值 XDDD)

GitHub 提供新的 contribution (小綠點) 計算方式

以往 GitHub 在個人頁面上的 contribution 只會計算 public repository,現在則可以設定將 private repository 也統計進去:「More contributions on your profile」。

private repository 的部份只會顯示數量,不會公開任何細節,像是我用 incognito mode (無痕模式) 可以看到在沒有登入時的資訊:

但如果是登入後就會有詳細資料:

GitHub 大幅調漲企業方案

GitHub 推出以 user 數量計費的方案:「Introducing unlimited private repositories」。舊的方案可以參考在「web.archive.org」這邊記錄下來的內容。

這個方案下的個人帳號會大幅受益:原先最低消費的 USD$7/month 是 5 private repositories,現在變成 unlimited private repositories。

而企業方案將會大幅調漲,雖然現有的 Plan 還是存在,但有種開始殺雞的味道了。

以前 USD$200/month 可以買到 125 個 repository,現在只能給 22 個人用。同時因為 GitHub 對 deploy key 的限制,跨 repository 時無法重複使用同一把 key,就需要用到真正的 user account,這點就變成額外的成本了。

看了一下內部的數字,不是多一倍兩倍的費用,而是多一個數量級...

Python 的 Repository 將搬到 GitHub 上

Python 宣佈將會搬到 GitHub 上:「[core-workflow] We will be moving to GitHub」,而目前應該是在 Mercurial 架的「Python.org Mercurial repositories index」上。

看討論有很多反對意見啊...