Skip to content

Instantly share code, notes, and snippets.

@horike37
Last active October 13, 2018 19:30
Show Gist options
  • Save horike37/c665f8ca7357feb72a5bfbf47e71ad50 to your computer and use it in GitHub Desktop.
Save horike37/c665f8ca7357feb72a5bfbf47e71ad50 to your computer and use it in GitHub Desktop.

Serverless Frameworkコントリビューションガイド

コントリビューションの種類

  • フォーラムでの回答
  • issueを立ててバグ報告
  • slackの場でトラブルシューティング
  • ドキュメントの翻訳
  • GitHub上でスターを付ける
  • プラグインを開発して公開
  • Tipsなどをブログにまとめて公開
  • examplesリポジトリへのユースケース追加

コミュニティの場所

プルリクエスト

issueでhelp wantedgood first issueなどのタグが付いているものはコントリビューションが求められているものです。これらを基準にやりやすそうなものを探すのがおすすめ。

手順

  • 各自のリポジトリへフォーク
  • 開発
  • プルリクエスト

開発における注意点

  • テストを書きましょう。バグであれば再現する手順をコード化。最終CIでチェック
  • lintもチェックしてコーディングルールを崩していないかチェック。最終CIでチェック
  • 機能追加の場合はドキュメントも忘れず書く
  • Node.jsの4系もまだサポートしてますので、4でも動くように記法は注意してください 注)今、CIが一部壊れていてタイムアウトなどが発生するケースがありますが、その際はこちらでCIを再実行します

プルリクエストにおける注意点

取り込む取り込まないの判断基準

基本的に明確にリジェクトする理由が説明できないものは取り込むスタンスです。間違っていても後のバージョンで直せばいい。 ただし、互換性を保つことは100%必須になります。互換性が保たれないプルリクエストは取り込みがされません。

やりやすそうなプルリクエストのリスト

今日のイベントに合わせて、内容的に実装さえすれば取り込まれるものを20個程度ピックアップしておきました。良ければこの中からできそうなものを選んでみてください。

バグ

全般

CLIの引数に'2060451113271393738'を指定すると、minimistの処理を通過後に2060451113271393800にコンバートされている

変数システムの第2引数に固定値を設定すると正しくパースされない 同じと思われるisuue: serverless/serverless#4959, serverless/serverless#4940

Function: hello.testのようにFunction名に.を指定するとエラーになる。これをDotに変換することでエラーが出ないようにしたい

serverless.ymlのカスタムセクション内で${file()}変数が正しく動いていない

serverless.ymlのservice.package.artifactsls deploy -f somefuncを指定したときに正しく動いていない

コマンドのoptionで渡される値の先頭がゼロであれば値が削除されてしまう

dockerと一緒に使用する際に、dockerが見つからないというエラーが発生する

AWS

~/.aws/configに assumed rolesを指定、それを引数を指定して渡したが、正しく解釈されない

Lambdaのローカル実行時のLambdacontextに足りないパラメータがある

機能追加

全般

shell commandをライフサイクルフックに追加する機能

serverless.ymlのcustom configuration機能実装

Azure

AzureファンクションのC#テンプレート及びドキュメントを追加する

AWS

apiKeySourceを指定する機能を追加

API Gatewayの非同期実行をサポートする機能

serverless.ymlのroleセクションにおいて、Fn::Joinの記法をサポートする

AWS CLIがサポートするcredential_processの機能をサポートする

API GatewayのVPC integrationの実装

Goのlocal invoke機能

dotnetのlocal invoke機能

API Gateway Authorizerのauthorization scopesへの対応

VPCの設定をfunctionlevelで実装する機能

IAM Roleをfunction毎に設定可能にする機能

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment