Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSS公開までの流れ

Naka Sho
February 12, 2024
160

 OSS公開までの流れ

OSS公開までの流れ

Naka Sho

February 12, 2024
Tweet

Transcript

  1. アジェンダ 導入部分 1. なぜ作った? a. なぜOSS公開した? b. 前提となる構成 c. OSS公開の流れ

    2. アカウント作成 a. GnuPGで鍵作成 b. build.gradleの設定 c. 公開 d. まとめ 3.
  2. 自己紹介 所属 PayPayカード株式会社 └プロダクト本部  └プロダクト開発部   └プロダクト開発1グループ    └中尾 正剛 経歴 2011/04

    中小SES(ずっとSIerだと思っていた) 2015/01 株式会社セレス 2020/10 エキサイト株式会社 2023/11 PayPayカード株式会社 -> NOW
  3. MyBatis * FreeMarker xml FreeMarker <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE

    mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.UserDataMapper"> <select id="findById" resultType="com.example.demo.UserData"> SELECT id , name FROM user WHERE id = #{id} and register_date <![CDATA[ < ]]> now() </select> </mapper> SELECT id , name FROM user WHERE id = <@p name="id" /> and register_date < now() <#-- 実行計画 Limit (cost=0.46..43.95 rows=200 width=128) --> 余計な記載がない (names paceはほしいかも。。。) CDATAのエスケープ処理がない コメントがかける
  4. integration-register (入会周り) service-search (検索) repository-search (検索) web (フロントページ) lp (ランディング)

    admin (管理画面) api-search (検索用) api-external (外部公開用API) api-internal (内部用API) batch (バッチページ) service-register (入会周り) service-ai (AI) service (全般) repository-register (入会周り) repository-ai (AI) repository (全般) persistence (DB接続) integration-ai (AI) integration-search (検索) 一つのリポジトリで管理することができ、共通で使いまわる モジュールは使い回せる。 やり過ぎは良くないので気をつけること
  5. SpringBootで 安定した開発 マルチモジュール プロジェクトで 依存関係を厳格に FreeMarkerで シンプルなSQL MyBatisGeneretorと 自作OSSを使って Tableから自動生成

    ここは説明いらないです よね? モジュラーモノリスの構 成が簡単にできる controllerからrepository を呼び出せないなど、依 存関係を厳格にできる リポジトリを大量に作成 せず、使いまわるコード は使いまわすことで品質 向上につながる SQL以外の記述が減る ことによって、レビュ ーする対象のコードが 減る。 コードは書くより読む ことが圧倒的に多い。 レビューしやすいコー ドを書くことが品質向 上につながる Table定義からModelが自 動作成されるので、正確 にDTOが作成される 自動的に作成されるコー ドなのでレビュー対象か ら外せる 手動でクエリを作成しな くても良いIFがMapperに 用意されてる
  6. プロジェクト Community Support - Open Source Project Repository Hosting 課題タイプ

    New Project 要約(Summary) package-with-hyphen-separator 説明(Description) This is a custom plugin for mybatis generator. Package the snake case (_ delimiter) of the table name. Group Id io.github.naka-sho Project URL https://github.com/naka-sho/package-with-hyphen-separator SCM url https://github.com/naka-sho/package-with-hyphen-separator Already Synced to Central No チケット作成 もしかしたらいまチケット作成する手順じゃないかも。。。
  7. apt-get install gpg LANG=C gpg --full-gen-key LANG=C gpg --list-keys LANG=C

    gpg --list-secret-keys --keyid-format short GnuPGで 鍵作成 鍵を作るのにパスワードとかいろいろ設定大変です 赤いところ控えておく
  8. このあたりは省略 gradleの公式 ページで確認 https://docs.gradle.org/current/userguide/publishing_maven.html 400 bad requerst change URLs to

    point to your repos, と書いている通り、URLを設定する必要が ありま URLは以下に設定する def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2" def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots"
  9. このあたりは省略 URL変更して 実行 https://docs.gradle.org/current/userguide/publishing_maven.html Could not PUT 'XXXX'. Received status

    code 401 from server: Unauthorized どうやらアップロードする際に認証エラー が発生するようだ def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2" def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots" アップロードをする際に認証処理が必要