git からオープンソースのライブラリを見つけてgit clone (あるいはfork) する。
そのライブラリが役に立つと感じたら、ちょっとした貢献がしやすくなった。
以下、Pythonの例で述べる。
PEP8で推奨されている書き方にそろえていくこと
pylint の出力が減るようにスクリプトのフォーマットを改善する。
Spyder統合環境の場合:
[Source][Run static code analysis]を実行し
[Static code analysis]のtabに表示された"Convention"の指摘項目を減らしておく。
"=", "<" の前後の半角スペースの数をそろえておくといったことも、
そのソースコードのメンテナンスをしやすくすることにつながっていく。
Python2.7 固有の部分が多すぎてpython 3では動かないスクリプトを改善する。
# Python 2/3 compatibility
from __future__ import print_function
print 文を
print() 関数の呼び出しに置き換える。
- 整数どうしの割り算の扱いをPython3の流儀にそろえる。(python 2.7でPython 3風に書きたい)
以下のコードをスクリプトの冒頭部分に書き加えます。
from __future__ import division
>>> 1/2
0
となることを期待して書いてあるコード(切り捨てが期待されているコード)は、
Python3では1/2 を 1//2 に書き換えます。
このようにしてPython3への移行がしやすくなるようにコードを直していきましょう。
Python3前提で書かれているスクリプトをpython2.7でも利用できるように改善する。
ここでも、次のようなささいな変更
(Python3に移行したいとは思っているが、あまり広範囲の部分でPython2.7が使われ過ぎているので、簡単にはPython3に移行できないことがあるのです。)
# Python 2/3 compatibility
from __future__ import print_function
fork したgit でcommit と push
そのような変更を加えたものが動作することを確認したあとで、fork したgithub上でcommit し、 push する。
pull requestを作る。
オリジナルの作者の方が読める言語だけで書く。
pull requestが採用されるのを待つ
そのような改善が、git 以降の時代はとてもやりやすくなっている。
関心をもったスクリプトが、使い勝手がよくなってさらに普及するように、手助けすることができる時代になっている。
付記:
from __future__ import absolute_import
from __future__ import division
についても記述すべき。
>>> 1/2
0
となることを期待して書いてあるコードは、
Python3では
>>> 1/2
0.5
という値が返ってくるので、書き換えが必須になっています。
Python2.7, Python3に共通の書き方は'//' 演算子を使う書き方です。
>>> 1 // 2
0