EMEC関数の追加



また、私のエディタについてもう少し学ぶ間、繰り返しを自動化すること
月にコンテンツ経験チームのリードエンジニアとしてForemに参加しました.私は9年間オープンソースソフトウェアに貢献してきましたこんにちはSamvera.org ; 私はあなたを逃します、しかし、私は私が良い場所にいると約束します.
つのオープンソースコミュニティから別の、私は別のワークフローをもたらした.私は、冗長なコミットメッセージを書くのを好みます.私は私のプル要求のためのテキストとしてそれを使用するのが好きです.利点は、コミットメッセージがコードベースで旅行することです.使えますgit annotate コードのチャンクの周りの状況を理解するために.
しかし、600以上の投稿者を持つオープンソースコミュニティでは、プル要求戦略としてコミットメッセージが不十分です.私たちはgit hooks コミットメッセージテンプレートを提供するには、プルリクエストの周りの会話には十分ではありません.
Form社はpull request template プル要求のレビューと受け入れに入るすべての考慮事項を通じて貢献者を導く.
テンプレートは、新しい貢献者を助けるために良い前置きのコメントを提供します.次に、貢献者が記入する明確なセクションと手順を示します.
  • プルリクエストの種類
  • 説明
  • 関連タスク
  • QAの指示、スクリーンショット、および録音
  • アクセシビリティ懸念
  • 追加/更新テスト
  • どのように、この変化は伝えられますか?( FORMコアチームのみのセクション)
  • 完了するすべてのポスト展開タスク
  • あなたがこの貢献についてどのように感じるかを表すGIF
  • Foremへの新しい貢献者として、私はこのガイダンスが好きです.そして、他のプルリクエストを見直し始めたので、さらに構造を評価しました.

    現在のプルリクエストワークフロー
    私がコードに取り組んでいるとき、私は冗長なコミットメッセージを書き続けます.それから、準備ができたら、ブランチを押して、ボタンを押してブランチのプルリクエストを作成します.
    デフォルトでは、githubは最後のコミットメッセージをプルリクエストテンプレートのテキストに前置きします.私はブラウザをそのテキスト領域に集中しeditWithEmacs.spoon そのテキストをコピーし、それを私のマシン上の新しいEmacsバッファに貼り付ける.
    Emacsバッファでは、プルリクエストテキストを編集します.
    終わったら、Ctrl + Cと入力します.C-c C-c emacsのバッファからテキストをコピーし、ブラウザのテキスト領域に戻します.Magit and Org Mode コマンドの確認のために、キーの組み合わせを使用します.
    そして、私のプル要求を提出します.

    自動ワークフロー
    Emacsでこれらのプルリクエストを編集したら、チェックボックスを埋め始める前に定期的に行っていたクリーンアップ作業を見始めました.そして、今私のテキストエディタにいたので、そのクリーンアップを行うスクリプトを書くことを選びました.
    Elispコードを読むことなしに、
  • コメントを削除する
  • これは、説明として最後のコミットメッセージを追加します
  • それは、2つのセクションのコメントを片付けます
  • 以下はlispコードで、次のようにします.
    (defun jnf/forem-tidy-pull-request ()
      "Perform some quick tidying of the Forem PR template."
      (interactive)
      ;; Start from the beginning.
      (beginning-of-buffer)
    
      ;; The text before the first HTML/Markdown
      ;; comments is the commit message. Cut that
      ;; text...
      (search-forward "<!--")
      (kill-region 1 (- (point) 4))
    
      ;; ...and paste it inside the description
      ;; section.
      (replace-string
       "## Description\n\n"
       (concat "## Description\n\n"
               (format "%s" (car kill-ring))))
    
      ;; We've moved point (e.g., the cursor) so let's
      ;; jump back to the beginning of the buffer.
      (beginning-of-buffer)
    
      ;; Remove HTML/Markdown comments
      (replace-regexp
       "\\(\n\\)*<!--\\(.\\|\n\\)*-->\\(\n\\)*"
       "")
    
      ;; Clean out the comments for QA instructions;
      ;; I'll write them, but the notes are
      ;; unnecessary.
      (replace-regexp
       "QA Instructions, Screenshots, Recordings\\([^#]\\)*"
       "QA Instructions, Screenshots, Recordings\n\n")
    
      ;; Clean out accessibility concerns; I'll write
      ;; them, but the notes are unnecessary.
      (replace-regexp
       "UI accessibility concerns?\\([^#]\\)*"
       "UI accessibility concerns?\n\n"))
    
    
    その後、キーボードのバインディングが簡単になります.
    ブラウザからEmacsへコピーするときeditWithEmacs.spoon をトグルするhammerspoon-edit-minor-mode を返します.See the code for those details . 次のコードでは、新しいキーバインドCtrl + C、Tをキーボードマッピングに追加します.
    (define-key
      hammerspoon-edit-minor-map
      (kbd "C-c t")
      #'jnf/forem-tidy-pull-request)
    
    
    良い種類.内容をEmacsバッファにロードし、Ctrl + CとTと入力し、私はプルリクエストを完了するためにもう少し近づいています.

    何が残るか
    私はスクリプトを書いたbuild a pull request message コミットメッセージから.私の前の雇い主で、彼らは使用を続けて、支店名を使うことを選ぶのを選びましたmaster したがって、コードはデフォルトになります.
    私は、その概念上のスクリプトを私のワークフローによりよく理解したいです.
    そして、私が挑戦を感じているならば、私はコミットメッセージからどんなGTUUBリンクもつかむでしょう、そして、関連したタスクと文書にそれらを加えるでしょう.

    結論
    Foremに参加してから、32プルリクエストを出しました.そして、私はこのタスクをもっと始めたように、私は疑問を始めた
    私はEmacsでいくつかのプルリクエストメッセージを書いたので、その質問をしてみましょう.そして、少しの時間で、私は、上記のスクリプトを書く少しの時間を過ごすのを選びました.私は、スクリプトに費やされた時間のために「メイクアップ」に書く必要がある方法を多くのプル要求を知らない.
    しかし、それはより少ない懸念です.私は、私が使用する様々なシステムの相互理解を快適に理解することに関心を持っています.
    プルリクエストを作成し始めると、すぐにクリーンアップタスクを実行できます.言い換えれば、私はフォーカスの領域に近い滞在できるように、“気晴らし”を離れて自動化.