github.com/sacloud/iaas-api-go@v1.12.0/docs/design/overview.md (about) 1 # sacloud/iaas-api-go 2 3 - URL: https://github.com/sacloud/iaas-api-go/pull/2 4 - Parent: https://github.com/sacloud/iaas-service-go/pull/1 5 - Author: @yamamoto-febc 6 7 ## 概要 8 9 [iaas-service-goの基本方針](https://github.com/sacloud/iaas-service-go/pull/1)に従い、sacloud/libsacloud v2からIaaS部分を切り出す。 10 11 ## やること/やらないこと 12 13 ### やること 14 15 - libsacloudからのIaaS部分の切り出し 16 - iaas-api-go v1としてリリース 17 - libsacloudの`sacloud`パッケージ配下の整理 18 - ~typesやostypeといったパッケージ構成の再考/整理~ 19 20 ### やらないこと 21 22 - libsacloud v2の独自DSLを含むlibsacloudの実装の改善 23 基本的にlibsacloud v2をそのまま移植する。ただし、前述の`sacloud`パッケージ配下の整理などのリファクタレベルの修正は行う。 24 従来[libsacloud v3として検討されてきた内容](https://github.com/sacloud/libsacloud/issues/791)はiaas-service-goやiaas-api-go v2で実現する。 25 26 ## 実装 27 28 ### libsacloudとiaas-api-goの並列開発 29 30 当面はlibsacloudの修正を継続する。libsacloudに対して行われた修正は手作業でiaas-api-goに取り込む。 31 iaas-api-goへの移植は[libsacloud v2.32.2](https://github.com/sacloud/libsacloud/tree/v2.32.2)を元にする。 32 33 ### 方針 34 35 `sacloud`パッケージについて、libsacloudのクライアント側での修正が容易に行える程度の改修をしつつ移植する。 36 (容易 == 機械的に置き換えできる、という程度) 37 38 ### 移植対象/対応 39 40 #### リポジトリ運用 41 42 [libsacloud v2.32.2](https://github.com/sacloud/libsacloud/tree/v2.32.2)を基点にソースコード類をコピーして移行する。 43 libsacloudからのforkは行わず新たなリポジトリで開発していく。 44 45 #### libsacloudのパッケージ構成/移行対象 46 47 ```console 48 - examples: otel利用例 49 - helper: 高レベルAPI群(一部をiaas-service-goへ) 50 - internal: 独自DSL 51 - pkg: libsacloudに依存しないユーティリティなど => packages-goへ 52 - sacloud 53 - accessor 54 - fake 55 - naked 56 - ostype 57 - pointer => packages-goへ 58 - profile => api-client-goへ 59 - search 60 - stub 61 - test 62 - testutil => 一部をpackages-goへ 63 - trace 64 - types 65 - sacloud直下 66 ``` 67 68 - `profile`はapi-client-goで実装する 69 - testutilは整理してから切り出し/分割などの対応が必要 70 - ~typesは整理してからsacloud直下へ移動などの対応が必要~ 71 72 #### iaas-api-goのパッケージ構成 73 74 従来はsacloudパッケージ配下だったものをiaas-api-goの配下にする。 75 パッケージ名は`iaas`とする。 76 77 ```console 78 - accessor 79 - defaults => libsacloudのhelper/defaultsの移植 80 - fake 81 - helper 82 - cleanup 83 - plans 84 - power 85 - query 86 - wait 87 - internal => libsacloudの独自DSL実装など 88 - naked 89 - ostype 90 - search 91 - stub 92 - test 93 - testutil 94 - trace 95 - types 96 - sacloud直下 97 ``` 98 99 ## 改訂履歴 100 101 - 2022/3/4: 初版作成 102 - 2022/3/7: libsacloud/v2直下のパッケージについて追記 103 - 2022/3/10: typesの改修を当面延期 104 - 2022/3/29: sacloud-goの分割/リネームを反映