概要
前回: 告知: GNU socialの開発作業再開 | GNU social JP Web。
前回に言及した通り、今月に入ってからGNU socialの開発作業を再開しました。その最初の重要な作業として、リポジトリ―の自己ホストができたのでお知らせします。
「GNU social JP Fossil」です。肝心のGNU social自体のリポジトリ―は「Unnamed Fossil Project: Home」です。Fossilを使いました。
GNU social JP Fossilについては、「GNU social JP Fossil – GNU social JP Wiki」に作業ログや、開発に必要な最低限の使用方法などを随時記載予定です。
経緯
前回に言及した通り、リポジトリ―の自己ホストを最初の作業にしました。ただ、そもそもGitHubやCodebergもあるのになぜわざわざ自己ホストするのか?という点が普通の人には理解できないかもしれません。
私の中ではこれは必須の重要な作業です。理由は以下2点です。
- GNUプロジェクトは不自由ソフトによるホスティングは禁止されている (GNU Ethical Repository Criteria – GNU Project – Free Software Foundation)。
- 自分とは関係ない制御不能な第三者の影響を受ける。
まず、1点でGNUプロジェクトのGNU socialは不自由ソフトによるホスティングが禁止されています。この点でGitHubは使用不能です。BitBucketとかGitlab.comなども同じです。
それだけだと、GNU socialがホストされていたnotabugやCodebergでもよいのですが、他人が管理するホスティングサービスは、自分で制御不能な点が大問題です。実際、Notabugは不安定でしょっちゅうアクセス不能になります。管理者の政治方針で、いともかんたんにバンされます。その危険性が付いて回ります。実際に、2018年頃にそれまでホストしていたgitlab.ioが閉鎖して、Wikiやコードの情報類がいくつか消失しています。
そういう意味で、自己ホストが重要です。
自己ホストにあたって、既存のホスティングサービスのフリーソフトを時間をかけて、実際にいくつかインストール動作確認して調査しました。
- gitea/gogs/gitlab/GitBucket
- phorge/kallithea
- trac/gitweb/cgit/fossil
人気なのはPleromaでも採用しているGitlabや、Giteaなどです。
ホストする場合、それを死ぬまで一生面倒を見ることを前提とする必要があり、運営コストを私は重視します。そういう意味で、共用サーバーでも動作するものを優先しました。すると、選択肢はほぼなく、trac/gitweb/cgit/fossilくらいしかありませんでした。
tracは有名なBTSでしたが、単体ではBTS機能しかなく、リポジトリ―はcgitなどを併用する必要があり、素直に面倒くさいと思いました。そうなると、選択肢がFossilのみになり、消去法でこれになりました。
FossilはそもそもGitではない、VCSのシステムから異なるソフトウェアです。が、VCSもしながらホスティングも可能です。単独で完結していて、Gitの良くないところに対応できており、けっこういいです。
Gitは2010年頃から急に普及しましたが、はっきりいってわかりにくくて使いにくいです。少しでも複雑なことをしようとすると、できなかったりめちゃくちゃ面倒くさいです。何でこんなに普及しているのかあまり理解できないです。
FossilはSQLiteの著者が開発しているVCSで歴史もGitと同じくらいあります。DBにSQLiteを採用していて、Gitよりもファイルサイズが小さいです。DBファイルを1個配置するだけで動作するという点で実にシンプルです。
ただ、世間ではあまり使われていません。GitにプラスでFossilの使い方の学習も必要です。私自体もFossilは使ったことないのでここから勉強します。学習コストがあったとしても、他に自己ホストの選択肢がないので、GNU socialでは今後ずっとFossilを使うことにします。シンプルだから、GNU social関係のツール、プラグイン、テーマもこのサイトで収集してホストして、ここ見ればGNU social関係のコードは良いようにします。自己ホストできるのが、他に選択肢がなくて、非常に素晴らしいです。
結論
GNU socialの新しいホスティングサイトGNU social JP Fossilでした。
サイトはできたばかりで、最低限の状態です。私自身も使い方をほぼ理解できていないです。今後、使用方法を学習します。ひとまずサイトを設置できたので一旦の報告です。
今後の予定としては以下があります。
- Downloadページの追加
- 他の関連プロジェクトの収集。
Downloadページの用意が非常に重要です。現在のGNU socialはcomposerのパッケージを一部生でリポジトリ―に取り込んでおり、配布形態が汚いのです。
今後、HTTPクライアントやORMなどコアライブラリーを、一般的で人気な外部フリーソフトウェアのパッケージに刷新します。その際に、それらはリリース用tgzにだけ含めるようにして、コード本体はシンプルにします。大量に同梱されている標準プラグインも、別リポジトリ―に分離するなど考えます。
この作業やFossilの学習で1月は終わると思います。リポジトリ―のURLも間にディレクトリーを挟んだりする可能性があるので、サイトトップのfossil.gnusocial.jpだけが固定していると思っておいたほうがいいです。
今後のGNU socialの開発のベースとなる非常に重要なサイトです。私が責任もって管理します。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments