gitbucket の検索結果:

Scalaのテストケース内でDockerコンテナを使う

GitBucketではもともとデータベースを使ったテストに組み込みMySQLやPostgreSQLの機能を提供するライブラリを使っていたのですが、これらのライブラリのメンテナンスが怪しくなかなか新しいバージョンに対応したテストを行うことができないという問題があり、Dockerを使えないかなと思っていたところ、以下のようなライブラリを教えてもらいました。 github.com プログラム中からDockerコンテナを制御するためのライブラリで、Scala版の他にもJava版やGo…

2018年の振り返り

…はできませんでした。GitBucketもついに月一のリリースペースを崩してしまいました。 takezoe.hatenablog.com takezoe.hatenablog.com とはいえ、台湾で開催されたJCConf 2018や、Scala関西サミット2018で登壇の機会をいただいたり、PredictionIOのAPIサーバをSprayからAkka HTTPに移行したりと、それなりに活動はできたのではないかと思います。 takezoe.hatenablog.com git…

GitBucket 4.30.0をリリースしました

…ースのGitサーバ、GitBucket 4.30.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.30.0 ChangeLogの自動生成 リリースの作成時にGitのコミットログから直前のタグとの間の更新履歴を自動生成できるようになりました。"Insert ChangeLog"というボタンをクリックするとリリースの説明文にコミットの一覧が挿入されます。直前のタグは手動で選択することも可能です。 We…

Scala関西Summit 2018に参加しました

…参加してきました。 GitBucket sponsors Scala Kansai Summit 2018! #scala_ks #gitbucket pic.twitter.com/0Kk3gIeeHT— Naoki Takezoe (@takezoen) 2018年11月10日 上記のツイートの通り、今年も昨年に引き続きGitBucketでスポンサーさせていただくとともに、ありがたいことにスピーカーとして「長期的にメンテナンスの必要なScala製アプリケーションにおいて気…

sbtサーバとRustで書かれたsbtクライアント

…t ... sbt:gitbucket> 別のターミナルから以下のようにしてコマンドを送信します。 $ sbt client clean ... [info] entering *experimental* thin client - BEEP WHIRR > compile サーバ側ではこんな感じのログが表示されます。 [info] new client connected: network-1 [success] Total time: 0 s, completed Oc…

プロジェクト管理に便利なGitBucketプラグイン

GitBucketはプラグイン機構を持っており、様々な機能をプラグインで拡張することができます。最近プロジェクト管理に便利なプラグインを作成されている方がいらしたので簡単に紹介させていただきたいと思います。 カンバンプラグイン イシューやプルリクエストをカンバン形式で表示できるプラグインです。レーンは特別なプレフィックスを付けたラベルで管理されており、GitBucketの既存の機能をうまく活用していただいていますね。 github.com ガントチャートプラグイン こちらはカ…

GitBucket 4.29.0をリリースしました

…ースのGitサーバ、GitBucket 4.29.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.29.0 オフィシャルDockerイメージが利用可能に DockerHub上でオフィシャルのDockerイメージが利用可能になりました(と言っても今まで個人のリポジトリに置いてあったものをOrganizationに移しただけですが)。 以下のようにして簡単に起動できます。 $ docker run -…

GitBucket 4.28.0をリリースしました

…ースのGitサーバ、GitBucket 4.28.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.28.0 プラグインインストール時にプロキシを利用可能に プラグインリポジトリからのインストール設定を"System settings"に移動し、HTTPプロキシの設定を行えるようにしました。 今回のバージョンでは以下のような大きなバグをいくつか修正しています。 プルリクエスト作成時の画面でプルリクエ…

SlickでStackOverflowErrorが発生する場合の対処法

GitBucketに以前からGitBucketのバッシュレポートでStackOverflowErrorが発生するというバグレポートが上がっていたのですが、最近直接の知り合いからも言われたので重い腰を上げて修正にトライしてみることにしました。 github.com 原因は以下のようなコードで、検索条件をORで繋げている部分が、数が増えるとスタックを食いつぶしてしまうというものでした。 val seq = Range(1, 500) Accounts .filter { t =>…

GitBucket 4.27.0をリリースしました

…ースのGitサーバ、GitBucket 4.27.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.27.0 ブラウザ上でタグを作成可能に リポジトリビューア上でタグを作成できるようになりました。 EditorConfigのサポート 様々なテキストエディタやIDEでコーディングスタイルを統一するためのEditorConfigの設定の一部をGitBucketのコードビューアとエディタでサポートしました…

GitBucket 4.26.0をリリースしました

…ースのGitサーバ、GitBucket 4.26.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.26.0 セントラルレジストリからのプラグインインストール 先日運用を開始したプラグインレジストリからインターネット経由でプラグインをインストールできるようになりました。 プラグインレジストリについては以下のエントリを参照していただければと思います。 takezoe.hatenablog.com ダッ…

GitBucketのプラグインレジストリの運用を始めました

GitBucketはプラグイン機構を持っているのですが、Jenkinsのようにインターネット経由でインストールできるようにしたいという考えはGitBucketを作り始めた頃からありました。また、実際にプラグイン機構を導入してみると、本体の修正にあわせてプラグインの修正が必要な場合の検出が難しかったり、ソースコードの修正は不要でもバイナリ互換性の問題で再コンパイルが必要な場合があり、プラグインのメンテナンスコストの点で問題を感じていました。 そこで、インターネット経由でプラグイ…

GitBucket 4.25.0をリリースしました

…ースのGitサーバ、GitBucket 4.25.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.25.0 セキュリティの改善 以前のバージョンのGitBucketにはKacper SzurekさんによるGitBucket 4.23.1 Unauthenticated Remote Code Executionという記事で解説されているようにいくつかのセキュリティ上の問題がありました。 リモートコ…

GitBucket 4.24.0をリリースしました

…ースのGitサーバ、GitBucket 4.24.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.24.0 プルリクエストのレビューコメントにDiffを表示 プルリクエストのConversationタブではレビューコメントに該当部分のDiffも表示されるようになりました(この機能はバージョンアップ後に登録されたコメントのみ有効になります)。また、古いコミットに対するコメントは折り畳み表示されます。…

GitBucket 4.23.0をリリースしました

…ースのGitサーバ、GitBucket 4.23.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.23.0 URL末尾のスラッシュを許容するように URLの末尾にスラッシュがついていてもスラッシュがついていない場合と同じように振る舞うようになりました。これによってJenkinsなどの外部システムとの連携が改善されます。 GitBucketは内部的には末尾がスラッシュで終わるリクエストをスラッシュを…

GitBucket 4.22.0をリリースしました

…ースのGitサーバ、GitBucket 4.22.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.22.0 プルリクエストのマージ方法の設定 リポジトリ毎にデフォルトのマージ方法と、選択可能なマージ方法を設定できるようになりました。 イシューでのアクションの記録を強化 イシュー、プルリクエストで以下の操作も履歴として記録されるようになりました。 ラベルの追加 ラベルの削除 優先度の変更 マイルスト…

GitBucketに見る長期的なメンテナンスの必要なScalaアプリケーションにおいてScalaのバージョンアップのために留意しておくべきこと

…はなぜ大変なのか? GitBucketはもうかれこれ5年近く開発を継続しており、Scalaのメジャーバージョンアップも何度か経験してきました。ScalaのバージョンアップはJavaと比べるとかなり苦労することが多いのですが、それはScalaのバージョンアップに伴うアプリケーションコードの修正よりも、むしろ以下の2点による部分が大きいのではないかと思います。 フレームワークやライブラリの仕様がアグレッシブに変わる Scalaのメジャーバージョン間でバイナリ互換性が保証されていな…

GitBucket 4.21.0をリリースしました

…ithub.com/gitbucket/gitbucket/releases/tag/4.21.2 Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.21.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.21.0 リリースページ タグの一覧画面がリリース機能で置き換えられました。それぞれのタグにリリースノートを記述したり、リリースファイルを添付することができるようになりま…

GitBucketで使っているSlick用のちょっとした便利機能

GitBucketではずっとSlickを使っているのですが、クエリを簡単に記述するためにちょっとした便利機能を追加しています。 1つめはこんな感じのエクストラクタ。以前吉田さんにTwitterかなにかで教えてもらったもの。 object ~ { def unapply[A, B](t: (A, B)): Option[(A, B)] = Some(t) } Slickだとjoinとかmapするときに以下のようにネストしたタプルを多用するのですが、 PullRequests .…

スケーラブルで冗長性のあるGitサーバをどう作るか?

GitBucketでの長年の課題の1つがGitリポジトリのスケールアウトと冗長化でした。Gitリポジトリを格納するストレージに分散ファイルシステムを使うというのは1つの解決策になりますが、分散ファイルシステムの運用はなかなか大変です。もっと手軽に使い始めて徐々にスケールできる方法はないものかと考えていたのですが、1つ思いついたアイデアを試すために実験的にコードを書き始めてみました。 github.com 基本的なアイデアは普通のGitサーバを複数台用意しておき、リポジトリを分…

2017年の振り返り

…気合いの日帰り参加。GitBucketでスポンサーもさせていただきました。 takezoe.hatenablog.com ScalaIOでは初めてのフランス訪問だったのですが、滞在中に駅が何度も封鎖されていてびびりました。GitBucketのユーザさんが何人かいらしてお話しすることができました。 takezoe.hatenablog.com Scala eXchangeではGitBucketの紹介をさせていただきました。JGitに関して質問してくださった方がいたのですが、うま…

GitBucket 4.20.0をリリースしました

…ースのGitサーバ、GitBucket 4.20.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.20.0 プルリクエストのマージ時にSquashもしくはRebaseが可能に プルリクエストをマージする際に以下の3つのオプションからマージ方法を選択できるようになりました。 Merge commit: マージコミットを作成してマージします(従来通りのマージ) Squash: コミットは1つにまとめら…

Scala eXchange 2017に参加してきました

…ange 2017でGitBucketのLTをさせていただきました。スライドは以下になります(口頭で話した部分を付け足すなどちょっと修正してあります)。今回もいろいろ反省が多く、修行しなくては…という感じでした。 GitBucket: Git Centric Software Development Platform by Scala from takezoe www.slideshare.net 参加したセッションで記憶に残っているものを挙げておきます(1日目のセッションは…

GitBucketプラグインの開発をサポートするsbtプラグインを作りました

…m このプラグインはGitBucketプラグインのsbtプロジェクトに以下の機能を提供します。 GitBucketのコアライブラリとサーブレットAPIを自動的に依存関係に追加します sbt-assemblyプラグインが自動的にで有効になります sbt-twirlプラグインが自動的に有効になります sbt installタスクでローカルのGitBucketにプラグインをインストールできます 使用するにはproject/plugin.sbtに以下の記述を追加します。 addSbt…

GitBucket 4.19.0をリリースしました

…ithub.com/gitbucket/gitbucket/releases/tag/4.14.3 Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.19.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.19.0 Mavenリポジトリプラグインが利用可能に GitBucket上にMavenリポジトリをホストするgitbucket-maven-repository-plug…

Scalatra 2.6.0をリリースしました

…れました。これは元々GitBucketで使用していたものをScalatra本体の1モジュールとして取り込んだものです。PlayのFormのような感じでリクエストパラメータのバリデーションとScalaオブジェクトへのマッピングを行うことができます。 また、今後のメンテナンスコスト削減のために2.5.x以前のバージョンで非推奨になっていた機能を削除するとともに、あまり使われていない機能やメンテナンスが難しい機能などを非推奨にしています。これらの機能は2.7.0で廃止される予定です…

ScalaIO 2017に参加してきました

…dictionIOやGitBucket、Scalatraなどで協力できたらとは思ったものの、さすがに英語力的に厳しいと思ったので今回は手を挙げませんでしたが、将来的にはこういうこともできるといいなと思います。 全体的な感想など ここ1〜2年ほど、Scalaのカンファレンスではどこもかしこもフリーモナドの話ばかりだったような気がするのですが、今回はFreestyleのトークが1つあったくらいでフリーモナドブーム(?)は一段落したのかなという印象でしたw ScalaDays後で大…

GitBucket 4.18.0をリリースしました

…ースのGitサーバ、GitBucket 4.18.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.18.0 レビューコメントへの返信フォーム プルリクエストなど、ソースコードにつけたコメントに対して返信するためのフォームを表示するようにしました。レビューコメントに対してこのフォームから簡単に返信を行うことができます。 ユーザ名のサジェストにフルネームも表示 ユーザ名のサジェスト時に、ユーザ名だけで…

GitBucket 4.17.0をリリースしました

…ースのGitサーバ、GitBucket 4.17.0をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.17.0 gitbucket-ci-pluginが利用可能になりました GitBucketでシンプルなCI機能を提供するgitbucket-ci-pluginが利用可能になりました。 このプラグインはリポジトリのオーナーが設定したビルド用のコマンドを以下のタイミングで実行します。 デフォルトブランチに…

ソフトウェアデザイン2017年10月号でGit特集(の一部)を執筆しました

…Bitbucket、GitBucketについて少々詳しく掘り下げさせていただいているのですが、Software Designさんの表紙にGitBucketの文字を載せていただける日が来るとは感無量です。 Git関連のサービスは日頃ウォッチしているので情報をまとめる良い機会になりましたが、これらのサービスは動きもそれなりに早いのでなかなか難しいところです。実際Bitbucketはつい先日Trelloのタスクボードの統合が発表されましたが、本稿には含めることができませんでした。た…