タグ

ブックマーク / efcl.info (10)

  • GitHubのリリースノートを自動化する仕組み

    GitHub のAutomatically generated release notesを使ってリリースノートの内容を PR に基づいて自動生成するフローを作りました。 今までは、コミットメッセージのルールであるConventional Commitsとconventional-github-releaserを使って、コミットからリリースノートを自動生成していました。 他の人の PR でも、squah merge でコミットメッセージを書き換えることで、リリースノートに反映されるようにしていました。 ただ GitHub に仕組みは違うけどほぼ似たことをするAutomatically generated release notesという機能が実装されているので、これをベースに移行しようと思って、そのワークフローを作っていました。 リリースノート自動生成テクニック - mizdra’s bl

    GitHubのリリースノートを自動化する仕組み
  • textlintのコアをTypeScriptで書き直した、textlintの今後について

    textlint 9.0.0をリリースしました。 textlint 9.0.0では@textlint/kernelという内部的に使うコアモジュールをTypeScriptで書き直したバージョンが使われています。 元々textlintはNode.jsで動くように作られたため、fsモジュールなどNode.jsに依存しています。 そのため、ブラウザなどで動かす場合などはビルド時に色々工夫しないと動きません。 文書校正ツール textlintChrome 拡張を作った - もなでぃっく LocalStorageで誰でも安全にMarkdownでスライドやメモ作れるサービス作ったよ この問題をどうにかするためには、textlintというモジュールからロジックやLint処理部分だけをNode.jsなどに依存しない純粋なJavaScriptとして切り出す必要があります。 アドホックに対応するならブラウ

    textlintのコアをTypeScriptで書き直した、textlintの今後について
  • textlintで文章カバレッジレポートを継続的に見ていく

    以前、技術文書をソフトウェア開発する話でtextlintやGitBookを使って文書を開発する方法についてお話しました。 その時に、自然言語のチェックの自動化などはまだ色々考えられることがあるという話をしました。 文書のテストはまだまだ色々できることがある カバレッジを取るとかメトリクスを取るとか – まとめ1 | 技術文書をソフトウェア開発する話 そこで文章のカバレッジというものを考えて実装してみました。 textlintとコードカバレッジの仕組みを使ったものですが、こういうのをなんと呼べばいいのかよくわからなかったので、ここではとりあえず”文章カバレッジ”と読んでいます。 textlintは全ての文に対してLintを実行するので命令網羅と近い感じがします。 命令網羅(statement coverage:SC) コード内のすべての命令が少なくとも1回は実行されるようにテストを設計する。

    textlintで文章カバレッジレポートを継続的に見ていく
  • JavaScriptのライブラリを徐々にTypeScriptに移行する

    Alminというライブラリは元々JavaScript(+Babel)で書かれていましたが、今年の2月にsrc/下のソースコードはTypeScriptに移行しました。 その時のコミットログは次のPRに残っているため、コミットログを1コづつ見ていけばどのように行われていったが分かると思います。 Convert src/ to TypeScript by saneyuki · Pull Request #68 · almin/almin この時取った方法は大まかに次のような手順でした src/ の TypeScript化 Babel -> JS(js -> js)だったものをTypeScript -> Babel -> JSにビルドスクリプトを変更 TypeScriptはtargetをesnextにすることで単純に型を取り除くだけの変換にする ES2015 -> ES5を実際にやるのは既存のBa

    JavaScriptのライブラリを徐々にTypeScriptに移行する
  • 今すぐ電子書籍(技術書)を書き始める方法と文章の自動チェック

    電子書籍開発環境 Markdownで書く電子書籍開発環境というスライドで、GitBookとMarkdown技術書(電子書籍)を書く話を紹介しました。 文章はtextlintで、コードはESLintとテストでチェックして、サンプルコードに対してテストを書けるプロジェクト構造について書かれています。 どのように表記揺れなどやコードの間違いを防ぎながら、書籍を開発していくかについて書いているので詳しくは上記のスライドを見て下さい。(スライドの下へスクロールすると文章版が載ってます) スターターキット 上記の設定をすぐに使えるようにスターターキット的なものを作りました。 azu/gitbook-starter-kit 実際にこのgitbook-starter-kit電子書籍とした時の表示は以下で見ることができます。 GitBook Starter Kit - GitBook インストール 利用

    今すぐ電子書籍(技術書)を書き始める方法と文章の自動チェック
  • textlintで日本語の文章をチェックする

    textlintMarkdownなどテキスト向けのLintツールで、テキスト版ESLintみたいな感じのツールです。 JavaScriptでルールを書けるテキスト/Markdownの校正ツール textlint を作った | Web Scratch 最近azu/JavaScript-Plugin-Architectureという小さな書籍を書いていて、色々簡単に使えるような仕組みを追加しています。 この記事では簡単なtextlintの導入方法について紹介します。 公式サイトには一部ルールを含むオンラインデモが公開されています。 textlint · The pluggable linting tool for text and markdown ドットインストールにてNode.jsのインストール、textlintの利用方法、エディタとの連携などのチュートリアルが公開されています。Node.

    textlintで日本語の文章をチェックする
  • ブラウザでビジュアルテストをするreftest-runnerを作った

    概要 reftest-runnerというブラウザで描画内容やレイアウトといった表示結果をテストするためのライブラリを作りました。 要素技術としてはブラウザ、WebDriver API、レンダリングキャプチャ、画像Diffという感じです。 azu/reftest-runner 時間が無い人向け 以下のスライドに簡単にreftest-runnerやreftestとはなにか、どういうユースケースがあるのかが書いてあります。 reftest-runner-overview.pdf reftestとは reftest(Referrence Test)とは、2つのHTMLの表示結果(スクリーンショット)を比較することで表示結果が意図したものかをテストする方法です。 用意するHTMLとして以下の2種類を1セットとして用意して利用します。 テスト用HTML テストしたい機能を使って実装したHTML リファ

    ブラウザでビジュアルテストをするreftest-runnerを作った
  • テストできないコードをE2Eテストを使ってリファクタリングしよう

    ユニットテストがしにくい状態となってるコードをTestiumを使ったE2Eテストを書いてリファクタリングしてみる話です。 例えば、以下のようなjQueryで書いたコードは外(テストコード)から取り出すポイントがないので、ユニットテストを書くのは難しいと思います。(そもそもViewのコードなので) 特定のバージョンでの変更点を簡単に確認できるよう、 「Aの列のラジオボタンを選ぶと同じ行より一つ下にあるBの列のラジオボタンを自動で選ぶ」 という補助機能 $(document).ready(function () { // seq: シーケンス番号 $.each(["new_version", "old_version"], function () { $("input[name='" + this + "']").each(function (idx, elem) { if (idx == 0

    テストできないコードをE2Eテストを使ってリファクタリングしよう
  • JavaScriptでルールを書けるテキスト/Markdownの校正ツール textlint を作った

    azu/textlint textlint というテキスト(plain textとMarkdown)の校正をするためのコマンドラインツールを書きました。textlintはNode.jsで書かれていて、Node.jsモジュールとしての利用することもできます。 一番の特徴は校正するルールをJavaScriptで書くことで拡張可能な作りになっています。 The pluggable linting tool for text(plain text and markdown). 逆にデフォルトではルールはサンプル扱いのno-todoというTODOが含まれてることを検知するルールしか今のところ入れていません。 Example: creating no-todo rules. デフォルトでルールが用意されていて、それの設定を変更することでLintする場合はRedPenなどがお勧めです。 RedPen:

    JavaScriptでルールを書けるテキスト/Markdownの校正ツール textlint を作った
  • Node.jsで書いてQuickStartを使ってブラウザで実行する話

    QuickStartというのは、名前がややこしいですがSpotify社が出してるツールのことです。 このツールはCommonJSで書いたJavaScriptのモジュールの依存関係を解決してビルドしたり、ローダとして使えるものです。 前者のビルドする機能は簡単にいえばBrowserifyです。 QuickStartもBrowserifyと同じく、nodeのcoreモジュール等をブラウザで使える様になってます。(CoreモジュールはBrowserifyが使ってるものと同じshimが使われてる) もう一つのローダとして使えるのがこのQuickStartの面白い所なんじゃないかなと思います。 この記事では、適当に試して見たQuickStartの使い方について見ていきます。 サンプルプロジェクトは以下に置いてあります。 azu/quickstart-example ビルド ビルドする場合はBrose

    Node.jsで書いてQuickStartを使ってブラウザで実行する話
  • 1