## [[Nim]]のバージョンアップ
[[Scoop]]でインストールしなおす。
`slackego.nimble`のDepnedenciesを変更。
```diff
# Dependencies
- requires "nim >= 0.18.0"
+ requires "nim >= 1.0.0"
```
## ビルド
```console
$ nimble build
Verifying dependencies for
[email protected]
Info: Dependency on docopt@>= 0.6.5 already satisfied
Verifying dependencies for
[email protected]
Info: Dependency on regex@>= 0.7.4 already satisfied
Verifying dependencies for
[email protected]
Info: Dependency on unicodedb@>= 0.7.2 already satisfied
Verifying dependencies for
[email protected]
Info: Dependency on dotenv@>= 1.1.0 already satisfied
Verifying dependencies for
[email protected]
Building slackego/slackego.exe using c backend
C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\src\slackego.nim(9, 27) Warning: using '.' instead of '/' in import paths is deprecated [Deprecated]
C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\src\slackegopkg\clients\slack.nim(2, 8) Warning: import os.nim instead; ospaths is deprecated [Deprecated]
C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\src\slackegopkg\util.nim(1, 8) Warning: imported and not used: 'os' [UnusedImport]
C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\src\slackegopkg\clients\slack.nim(14, 3) Error: undeclared identifier: 'initDotEnv'
candidates (edit distance, scope distance); see '--spellSuggest':
(4, 1): 'dotenv' [module declared in C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\src\slackegopkg\clients\slack.nim(10, 8)]
Tip: 10 messages have been suppressed, use --verbose to show them.
Error: Build failed for package: slackego
... Execution failed with exit code 1
... Command: C:\Users\tadashi-aikawa\scoop\shims\nim.exe c --colors:on --noNimblePath -d:NimblePkgVersion=0.1.2 --path:C:\Users\tadashi-aikawa\.nimble\pkgs\docopt-0.6.8 --path:C:\Users\tadashi-aikawa\.nimble\pkgs\regex-0.19.0 --path:C:\Users\tadashi-aikawa\.nimble\pkgs\unicodedb-0.10.0 --path:C:\Users\tadashi-aikawa\.nimble\pkgs\dotenv-2.0.1 --hints:off -o:C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\slackego.exe C:\Users\tadashi-aikawa\git\github.com\tadashi-aikawa\slackego\src\slackego.nim
```
そう甘くはない。
## 警告の修正
> \src\slackego.nim(9, 27) Warning: using '.' instead of '/' in import paths is deprecated [Deprecated]
`import`パスの`.`は`/`に変更する。
> \clients\slack.nim(2, 8) Warning: import os.nim instead; ospaths is deprecated [Deprecated]
> \src\slackegopkg\util.nim(1, 8) Warning: imported and not used: 'os' [UnusedImport]
`ospaths`は非推奨なので、`os.nim`を使えとのこと。ただ、そもそも`os`を使っていないから`os`ごとimportを消してしまえばよさそう。
ただ、`import os`を削除すると`fileExists`が使えなくなるので残しておく。
```nim
if fileExists(".env"):
initDotEnv().load()
```
現バージョンの[[Nim]]だと非推奨なのかもしれないが。。
## ビルドエラーの修正
> slackego\src\slackegopkg\clients\slack.nim(14, 3) Error: undeclared identifier: 'initDotEnv'
```nimble
requires "dotenv >= 1.1.0"
```
[[dotenv.nim]]の使い方が変わったのかもしれない。v2が最新ぽいので最新化。
```console
nimble install dotenv
Downloading https://github.com/euantorano/dotenv.nim using git
Verifying dependencies for
[email protected]
Installing
[email protected]
Prompt:
[email protected] already exists. Overwrite? [y/N]
Answer: y
Success: dotenv installed successfully.
```
`slackego.nimble`のバージョンも変更しておく。
```diff
- requires "dotenv >= 1.1.0"
+ requires "dotenv >= 2.0.1"
```
```diff
if fileExists(".env"):
- initDotEnv().load()
+ load()
```
## 実行エラーの修正
> Error: unhandled exception: No SSL/TLS CA certificates found. [IOError]
[[cacert.pem]]をexeと同じディレクトリに配置すればOK。
- [SSL/TLS certifictae issues with Nim 1\.4\.4? \- Nim forum](https://forum.nim-lang.org/t/7551)
> Error: not_allowed_token_type
[[Botトークン (Slack)|Botトークン]]には対応してなさそう..
## リリース用のCI追加