What have you found for these years?

2009-11-28

bones >3

前一陣子 bones 更新到 3.0...

時間先往前拉。我在 source-tools 中弄了 git 的 post-receive 的
script template, 路徑是 t.git/hooks/post-receive.erb
然後在 bones <3 時,不會把這個檔案算在 gem 裡面。因此我 fork 了
bones, 加了個 include 的 config, 希望可以強迫這個檔案加入。
(雖然現在完全改用 github 後,這東西也是可以退休了...)

原本當然是希望改成上述的路徑,不會算到 exclude pattern 中。
不過想了一下,發覺要完全正確判斷根本是不可能的。因為 t.git/hooks/...
確實有可能是真正的 git repository 啊!比方說,submodule + bare
repository 就有可能了。雖然我不知道會不會有這種狀況誕生?

總之送了 pull request 之後,好幾個月過去了...

本來有點失望,不過反正這本來就是奇怪的需求,而且很容易 workaround.
但是後來,大約幾週前吧?開始看到 bones 大量更新,整個架構都改了,
版本就進入 3.0 了。唔,這樣就能想像為什麼不理我的 pull request 了。
畢竟架構都變了,這樣的 patch 就沒有意義了。

幾天又過去了,忽然收到 TwP 的回信,裡面還滿誠懇的,
他說他從來沒想過會有人的檔名裡面有 .git (是的,我也沒想過...)
然後他也針對這點做了修正,請我試試看 3.0 有沒有解決這個問題。

但是他改太多了,我一時三刻沒辦法套上去...
(而且 loquacious 1.4 一開始沒有 rubyforge release...
只有 gemcutter 我猜?雖然現在 rubyforge 也轉到 gemcutter,
意思就是 rubyforge 的 gem hosting, 正式結束了!
這樣也好,gemcutter 也滿方便的,比 github 的 gems 好多了。
同時,rubyforge 的操作真的不是普通的麻煩也是真的。)

剛剛總算一鼓作氣弄清楚狀況了。基本上我是覺得,
多了兩個 dependency 有點討厭... 也因此,
在想是不是應該換一個 solution, 甚至模仿 innate/ramaze
全部自己寫算了?反正我的需求也不多,只是 bones 一小部份而已。

也正好看到 jeweler, 而且還真是有夠多人 watch?
但看了一下,他似乎僅僅提供 gem 相關的 task,
而我至少還需要 rake test 之類的東西。
也希望能有自動作 git tag, 如之前 bones 會做的事情。

然後看到這個
Gem Creation
唔,jeweler 真的遠遠超越其他的。不過看來看去,
感覺他可能也有點 rails style (please don't),
而且 dependency 裡面有 git gem, 不知道要幹嘛...

第二名是 newgem, 對他印象很差,非常差,差到不行 XD
自己看:
> gem dep -r newgem
Gem newgem-1.5.2
activesupport (>= 2.0.2, runtime)
rubigen (>= 1.5.2, runtime)
hoe (>= 2.3.1, runtime)
RedCloth (>= 4.1.1, runtime)
syntax (>= 1.0.0, runtime)
cucumber (>= 0.3.11, development)
hoe (>= 2.3.1, development)
絕對是瘋了才會用這鬼東西,一堆莫名其妙的 dependency.
而且為什麼他自己又用 hoe ??? 還是 runtime dependency...
之前那 picnic 還是 rubycas-server 就有用.... :(
有機會應該把這兩個東西整個全部重寫。(應該沒有機會吧? ...)

第三名就是 bones 囉。但一直用舊版也不是辦法。

第四名 echoe, 這應該也算老牌了吧,不過他可否看成 better hoe?
第五名是 hoe, 我還以為 hoe 會是第一名.. 大概是因為他的統計
是用 github 去排的吧。去查使用者分佈,我想 hoe 應該還是第一吧?
這都要歸功於他一開始的吸血鬼設計 XD
我想 rubygems 會有 development dependency 很可能是因為他。

第六 simple-gem 和第七 inochi 沒聽過。

所以還是回到 bones 了。尤其我喜歡 bones 的一點是,
他的 task 有 namespace. 我討厭 hoe 沒有 namespace.

結論是現在很晚了,又快昏倒了,所以明天再繼續弄。
已經把一小部份的 gem 移到 bones >3 了。
唯一的缺點只有 dependency 多兩個,其他都不錯,
config 變得更簡潔了,rake bones:help 的說明也很清楚。
應該算是值得繼續使用和推薦吧?雖然我還沒試 rake gem:release

另一方面,一大堆小 gem 管理上真的很不方便。
因此集中了一個 gembox, 希望小東西可以丟進去。
反正用 git, 有很簡單的方式可以 merge repository.

還有 dot-rc, 跟我電腦上真正在使用的 config 檔...
source-tools 裡產生給 project 使用的 config 檔,
這些一堆東西也不知道怎麼整合比較好。

如果說真的把整個 home 當成一個 git repository,
這樣 dot-rc 跟真正在使用的就能合併,
但會需要 ignore 掉多少東西啊,不知道這樣對嗎?
還是可以用 .git-not-ignore ..?

==
仔細想想,我跟 ruby 歷史好像也滿熟的 orz
當然很多細節不知道啦,畢竟沒在看 ruby-dev,
連 ruby-talk 也很久沒看了。
而且我用 ruby 根本就沒多久,比起國外很多人都用四年以上了。
但也許是因為 ruby 本身就是個不斷在改變的環境,
只用了這些時間,也記得了很多點點滴滴的變化。

覺得有點意外的是,原本根本就沒有說想這樣投入 ruby.
我原本的心思都在 c++ 上的。結果不知不覺間,
卻走到這條路上了。當然啦,這並沒什麼不好,
甚至是比較好才對。只是覺得很多東西,似乎都不是我的本意就是了。
這樣不免就會想回顧一下,到底是為什麼會漸漸變成這個樣子的。

至少雖然我不滿意 rails, 但很滿意 ruby, 這樣吧。

至於非關程式的事..... 或許只想說別提了吧 XD
what could i say?

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0