brew upgrade --cleanup で気軽にアップデートした swagger-codegen のバージョンを下げる

ただの備忘録です。

`brew upgrade --cleanup` を時々実行しているのだけれど、
ある時突然それまで動いていた swagger-codegen が失敗するようになった。
(しばらく気づかなかったがこの原因は [[Typescript-fetch] Is version 3 going to include the generator `Typescript-fetch`](https://github.com/swagger-api/swagger-codegen/issues/8834)。)

エラー内容はこちら。

```
Exception in thread "main" java.lang.RuntimeException: Can't load config class with name typescript-fetch Available: aspnetcore
csharp
csharp-dotnet2
dynamic-html
html
html2
java
jaxrs-cxf-client
jaxrs-cxf
inflector
jaxrs-cxf-cdi
jaxrs-spec
jaxrs-jersey
jaxrs-di
jaxrs-resteasy-eap
jaxrs-resteasy
spring
openapi
openapi-yaml
kotlin-client
kotlin-server
php
scala
scala-akka-http-server
swift3
swift4
typescript-angular

	at io.swagger.codegen.v3.CodegenConfigLoader.forName(CodegenConfigLoader.java:31)
	at io.swagger.codegen.v3.cli.SwaggerCodegen.main(SwaggerCodegen.java:96)
Caused by: java.lang.ClassNotFoundException: typescript-fetch
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at io.swagger.codegen.v3.CodegenConfigLoader.forName(CodegenConfigLoader.java:29)
	... 1 more
```

以前は動いていたので、brew によるアップデートを疑い、現在のバージョン確認。

```
> swagger-codegen version
3.0.3
```

なるほど。
とりあえず動いていたバージョンを入れていたはずなので、そこまで戻す事を試みる。

```
> brew info swagger-codegen
swagger-codegen: stable 3.0.3 (bottled), HEAD
Generate clients, server stubs, and docs from an OpenAPI spec
https://swagger.io/swagger-codegen/
/usr/local/Cellar/swagger-codegen/3.0.3 (6 files, 18.8MB) *
  Poured from bottle on 2018-12-18 at 12:42:05
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/swagger-codegen.rb
==> Dependencies
Build: maven ✔
==> Requirements
Required: java = 1.8 ✔
==> Options
--HEAD
	Install HEAD version
==> Analytics
install: 3,356 (30 days), 6,685 (90 days), 27,574 (365 days)
install_on_request: 3,128 (30 days), 6,377 (90 days), 25,778 (365 days)
build_error: 0 (30 days)
```

…ここで以前のバージョンも表示されて切り替えられる事を期待していたが、そういえば `--cleanup` していたんだった。
仕方がないのでコミットログから一つ前のバージョンまで戻す。

```
> cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core

> git log --oneline Formula/swagger-codegen.rb
6517e3cdbe swagger-codegen: update 3.0.3 bottle.
2fbaf34a32 swagger-codegen 3.0.3
67949e690a swagger-codegen: update 3.0.2 bottle.
4b85c01b11 swagger-codegen 3.0.2
779f153944 swagger-codegen: fix dependency order
93321a2021 swagger-codegen: update 2.3.1 bottle.
```

`tig Formula/swagger-codegen.rb` で確認しようとしたら読み込みに時間がかかりすぎたので `git log` で。

上記 issue に気づいておらず、とりあえず一つバージョンを戻してみる。

```
> git checkout 67949e690a Formula/swagger-codegen.rb

> brew uninstall swagger-codegen
Uninstalling /usr/local/Cellar/swagger-codegen/3.0.3... (6 files, 18.8MB)

> brew install swagger-codegen
==> Downloading https://homebrew.bintray.com/bottles/swagger-codegen-3.0.2.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring swagger-codegen-3.0.2.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/swagger-codegen/3.0.2: 6 files, 18.5MB

> swagger-codegen version
3.0.2
```

…しかし同じエラーが出る。
この辺で [swagger-api/swagger-codegen](https://github.com/swagger-api/swagger-codegen) リポジトリの issue を `typescript-fetch` とかで検索し、上記 issue に気づく。

```
> git checkout 93321a2021 Formula/swagger-codegen.rb

> brew uninstall swagger-codegen
Uninstalling /usr/local/Cellar/swagger-codegen/3.0.2... (6 files, 18.5MB)

> brew install swagger-codegen
==> Downloading https://homebrew.bintray.com/bottles/swagger-codegen-2.3.1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring swagger-codegen-2.3.1.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/swagger-codegen/2.3.1: 6 files, 13.7MB

> swagger-codegen version
2.3.1
```

ここまで戻して成功を確認。
以上。