118 Commits

Author SHA1 Message Date
bc14d6e010 chore(deps): update dependency erlang to v28.0.2
All checks were successful
continuous-integration/drone/pr Build is passing
2025-07-17 16:17:41 +00:00
7c8ace3d28 chore(deps): update dependency telemetry_poller to ~> 1.3.0 (#164)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [telemetry_poller](https://hex.pm/packages/telemetry_poller) ([source](https://github.com/beam-telemetry/telemetry_poller)) | prod | minor | `~> 1.2.0` -> `~> 1.3.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #164
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-07-14 15:08:37 +00:00
5fc84baf88 chore(deps): update dependency phoenix_ecto to v4.6.5 (#163)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [phoenix_ecto](https://hex.pm/packages/phoenix_ecto) ([source](https://github.com/phoenixframework/phoenix_ecto)) | prod | patch | `4.6.4` -> `4.6.5` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #163
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-07-02 11:33:58 +00:00
5af35e446f chore(deps): update dependency ecto_sql to v3.13.2 (#162)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ecto_sql](https://hex.pm/packages/ecto_sql) ([source](https://github.com/elixir-ecto/ecto_sql)) | prod | patch | `3.13.1` -> `3.13.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #162
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-06-29 00:34:32 +00:00
69b2b9fe31 feat: upgrade erlang from 27.3.4 to 28.0.1 (#161)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #161
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-06-21 21:59:53 +00:00
10d7f15598 chore(deps): update dependency ecto_sql to v3.13.1 (#160)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ecto_sql](https://hex.pm/packages/ecto_sql) ([source](https://github.com/elixir-ecto/ecto_sql)) | prod | patch | `3.13.0` -> `3.13.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #160
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-06-20 21:31:27 +00:00
77c51b176d chore(deps): update dependency ecto_sql to ~> 3.13.0 (#159)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ecto_sql](https://hex.pm/packages/ecto_sql) ([source](https://github.com/elixir-ecto/ecto_sql)) | prod | minor | `~> 3.12.0` -> `~> 3.13.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #159
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-06-20 14:54:09 +00:00
5941f7fe6c chore(deps): update dependency plug_cowboy to v2.7.4 (#158)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [plug_cowboy](https://hex.pm/packages/plug_cowboy) ([source](https://github.com/elixir-plug/plug_cowboy)) | prod | patch | `2.7.3` -> `2.7.4` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #158
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-06-19 00:19:41 +00:00
d687c8f467 feat: upgrade runtimes and dependencies (#157)
All checks were successful
continuous-integration/drone/push Build is passing
Upgrade runtimes:

* `lefthook`: from 1.11.13 to 1.11.14

Upgrade transitive dependencies:

* `ecto`: from 3.12.5 to 3.12.6
* `phoenix_live_view`: from 1.0.12 to 1.0.17
* `plug`: from 1.17.0 to 1.18.0

Reviewed-on: #157
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-06-16 23:33:38 +00:00
f111cc1d2d chore(deps): update dependency absinthe to v1.7.10 (#156)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [absinthe](https://hex.pm/packages/absinthe) ([source](https://github.com/absinthe-graphql/absinthe)) | prod | patch | `1.7.9` -> `1.7.10` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #156
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-06-16 23:05:43 +00:00
05a1336477 chore(deps): update dependency mix_audit to v2.1.5 (#155)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [mix_audit](https://hex.pm/packages/mix_audit) ([source](https://github.com/mirego/mix_audit)) | dev | patch | `2.1.4` -> `2.1.5` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #155
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-06-16 16:48:13 +00:00
3797c0592f chore(deps): update absinthe_plug digest to 24ec7aa (#153)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| absinthe_plug | prod | digest | `916d818` -> `24ec7aa` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #153
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-22 18:50:05 +00:00
541d29ae77 feat: upgrade runtimes (#154)
All checks were successful
continuous-integration/drone/push Build is passing
The following changes were made:

* Upgrade `lefthook` from 1.11.2 to 1.11.3
* Sync `elixir` version in `Dockerfile` and `drone.yml` (from 1.18.3 to 1.18.4)
* Upgrade `debian` version in `Dockerfile` and `drone.yml` (from 20250428 to 20250520)
* Upgrade transitive dependencies:
   * `castore` from 1.0.12 to 1.0.14
   * `mime` from 2.0.6 to 2.0.7
   * `phoenix_live_view` from 1.0.11 to 1.0.12
* Add `Dockerfile` to the CI cache key.
  This is needed because the `.tool-versions` runtime versions aren't in sync with the `Dockerfile` and `drone.yml` versions.

Reviewed-on: #154
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-05-22 17:23:37 +00:00
0ee1a5b76c chore(deps): update dependency elixir to v1.18.4 (#152)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.18.3` -> `1.18.4` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #152
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-22 13:32:02 +00:00
68d8b986ac feat(ci/docker): upgrade runtimes (#150)
All checks were successful
continuous-integration/drone/push Build is passing
* `erlang` from `27.3.3` to `27.3.4`
* `postgres` from `17.4` to `17.5`

Reviewed-on: #150
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-05-13 17:51:45 +00:00
0385353b54 chore(deps): update dependency erlang to v27.3.4 (#149)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.3.3` -> `27.3.4` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #149
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-13 17:33:24 +00:00
f978b5bdfb chore(deps): update postgres docker tag to v17.5 (#147)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `17.4-alpine` -> `17.5-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #147
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-13 14:55:04 +00:00
0e9ca8330c chore(deps): update dependency sobelow to ~> 0.14 (#148)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [sobelow](https://hex.pm/packages/sobelow) ([source](https://github.com/sobelow/sobelow)) | dev | minor | `~> 0.13` -> `~> 0.14` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #148
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-13 14:54:33 +00:00
3cb77cdf46 feat: upgrade runtimes and dependencies (#145)
All checks were successful
continuous-integration/drone/push Build is passing
* Upgrade `lefthook` from 1.11.8 to 1.11.12
* Upgrade `debian bookworm` from 20250407 to 20250428
* Upgrade transient dependencies:
  * `phoenix_live_view` from 1.0.10 to 1.0.11

Reviewed-on: #145
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-05-06 22:58:31 +00:00
37e05d2c0a chore(deps): update dependency phoenix_ecto to v4.6.4 (#144)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [phoenix_ecto](https://hex.pm/packages/phoenix_ecto) ([source](https://github.com/phoenixframework/phoenix_ecto)) | prod | patch | `4.6.3` -> `4.6.4` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #144
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-06 18:09:17 +00:00
64143b3537 chore(deps): update absinthe_plug digest to 916d818 (#143)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| absinthe_plug | prod | digest | `5de21da` -> `916d818` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #143
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-05-06 17:41:28 +00:00
3a0bc3621f chore: improve compose for git worktree (#142)
All checks were successful
continuous-integration/drone/push Build is passing
* Avoid multiple project names in `docker compose` by setting a common name.
* Simplify `develop` watch rules:
  * When `mix.lock` is changed, rebuild the image.
  * When any other file is changed, sync and restart the service.
    * Except for directories that are related to deps/build/test/lsp.
* Remove `file` argument from `docker compose` in `Makefile`

Reviewed-on: #142
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-04-30 17:19:18 +00:00
d4299d4d7a chore(deps): update dependency phoenix_live_dashboard to v0.8.7 (#141)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [phoenix_live_dashboard](https://hex.pm/packages/phoenix_live_dashboard) ([source](https://github.com/phoenixframework/phoenix_live_dashboard)) | prod | patch | `0.8.6` -> `0.8.7` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #141
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-30 12:57:37 +00:00
b9bb80fac7 chore(deps): update dependency credo to v1.7.12 (#139)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [credo](https://hex.pm/packages/credo) ([source](https://github.com/rrrene/credo)) | dev | patch | `1.7.11` -> `1.7.12` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #139
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-23 17:59:31 +00:00
613c028a67 chore(docker): upgrade erlang to 27.3.3 (#140)
All checks were successful
continuous-integration/drone/push Build is passing
Upgrade docker image for [`elixir:1.18.3-erlang-27.3.3-debian-bookworm-20250407-slim`][0].

Reviewed-on: #140

[0]: https://hub.docker.com/layers/hexpm/elixir/1.18.3-erlang-27.3.3-debian-bookworm-20250407-slim/images/sha256-88627ea2786f2e9ad7520d0f12bc7a9266ea0d6e7f89f2e0e278404263d470a4
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-04-23 13:48:55 +00:00
4c0aeaed3a chore(deps): update dependency erlang to v27.3.3 (#138)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.3.2` -> `27.3.3` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #138
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-23 13:21:18 +00:00
068bccf7d9 feat(deps): upgrade runtimes and transient dependencies (#137)
All checks were successful
continuous-integration/drone/push Build is passing
1. Upgrade runtimes for `docker` and `ci`:
    1. `erlang` from 27.3 to 27.3.2
    2. `debian` from 20250224 to 20250407
2. Upgrade `lefthook` from 1.11.3 to 1.11.8
3. Upgrade transient dependencies:
    1. `hpax`: from 1.0.2 to 1.0.3
    2. `phoenix_live_view`: from 1.0.5 to 1.0.9
    3. `plug_crypto`: from 2.1.0 to 2.1.1

Reviewed-on: #137
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-04-08 21:56:06 +00:00
801624232a chore(deps): update dependency erlang to v27.3.2 (#136)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.3.1` -> `27.3.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #136
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-08 13:27:25 +00:00
eba513c929 chore(deps): update dependency telemetry_poller to ~> 1.2.0 (#135)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [telemetry_poller](https://hex.pm/packages/telemetry_poller) ([source](https://github.com/beam-telemetry/telemetry_poller)) | prod | minor | `~> 1.1.0` -> `~> 1.2.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #135
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-02 11:27:43 +00:00
f0c78f6dff chore(deps): update dependency erlang to v27.3.1 (#134)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.3` -> `27.3.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #134
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-01 00:59:28 +00:00
a196b77864 chore(deps): update dependency phoenix to v1.7.21 (#133)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [phoenix](https://hex.pm/packages/phoenix) ([source](https://github.com/phoenixframework/phoenix)) | prod | patch | `1.7.20` -> `1.7.21` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #133
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-04-01 00:22:48 +00:00
1ed2d89cd4 chore(deps): update dependency absinthe to v1.7.9 (#132)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [absinthe](https://hex.pm/packages/absinthe) ([source](https://github.com/absinthe-graphql/absinthe)) | prod | patch | `1.7.8` -> `1.7.9` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #132
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-19 15:40:09 +00:00
acf2143177 feat(deps): upgrade runtime and dependencies (#131)
All checks were successful
continuous-integration/drone/push Build is passing
Ensure that the `docker` and `ci` environments use the same runtime versions from `mise`.

Also, update transitive dependencies:

* `mint`: from 1.6.2 to 1.7.1
* `peep`: from 3.4.1 to 3.5.0
* `phoenix_live_view`: from 1.0.2 to 1.0.5

Reviewed-on: #131
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-03-11 00:54:52 +00:00
1d9dd6b3ad chore(deps): update absinthe_plug digest to 5de21da (#125)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| absinthe_plug | prod | digest | `307c8bb` -> `5de21da` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTg4LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #125
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-11 00:28:23 +00:00
9e01c57dc2 chore(deps): update dependency lcov_ex to v0.3.4 (#128)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [lcov_ex](https://hex.pm/packages/lcov_ex) ([source](https://github.com/dariodf/lcov_ex)) | dev | patch | `0.3.3` -> `0.3.4` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #128
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-09 21:52:49 +00:00
50e51715dc chore(deps): update dependency phoenix to v1.7.20 (#129)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [phoenix](https://hex.pm/packages/phoenix) ([source](https://github.com/phoenixframework/phoenix)) | prod | patch | `1.7.18` -> `1.7.20` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODguMyIsInVwZGF0ZWRJblZlciI6IjM5LjE4OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #129
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-09 18:42:47 +00:00
aa94db5590 chore(deps): update dependency dns_cluster to ~> 0.2.0 (#126)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [dns_cluster](https://hex.pm/packages/dns_cluster) ([source](https://github.com/phoenixframework/dns_cluster)) | prod | minor | `~> 0.1.1` -> `~> 0.2.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTg4LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #126
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-07 18:33:32 +00:00
7478829cbd chore(deps): update dependency elixir to v1.18.3 (#127)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.18.2` -> `1.18.3` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTg4LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #127
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-07 01:52:41 +00:00
04c80e314c chore(deps): update postgres docker tag to v17.4 (#124)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `17.3-alpine` -> `17.4-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #124
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-06 22:04:04 +00:00
ab2ade294e chore(deps): update dependency erlang to v27.3 (#123)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | minor | `27.2.2` -> `27.3` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #123
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-03-06 22:03:29 +00:00
8a6c0d73df chore(deps): update postgres docker tag to v17.3 (#122)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `17.2-alpine` -> `17.3-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #122
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-02-14 22:06:25 +00:00
30a913bca5 chore(deps): update dependency erlang to v27.2.2 (#121)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.2.1` -> `27.2.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #121
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-02-14 21:48:33 +00:00
d2b7ac73aa chore(deps): update dependency postgrex to ~> 0.20.0 (#119)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [postgrex](https://hex.pm/packages/postgrex) ([source](https://github.com/elixir-ecto/postgrex)) | prod | minor | `~> 0.19.0` -> `~> 0.20.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #119
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-02-06 17:56:19 +00:00
eadd2f5988 feat(deps): upgrade dependencies (#118)
All checks were successful
continuous-integration/drone/push Build is passing
[Upgrade dependencies][0]:

* `credo`: from 1.7.8 to 1.7.11
* `dialyxir`: from 1.4.4 to 1.4.5
* `gettext`: from 0.26.1 to 0.26.2
* `phoenix`: from 1.7.14 to 1.7.18
* `phoenix_live_dashboard`: from 0.8.4 to 0.8.6
* `postgrex`: from 0.19.2 to 0.19.3

[Upgrade transient dependencies][1]:

* `castore`: from 1.0.9 to 1.0.11
* `decimal`: from 2.1.1 to 2.3.0
* `ecto`: from 3.12.4 to 3.12.5
* `file_system`: from 1.0.1 to 1.1.0
* `hpax`: from 1.0.0 to 1.0.2
* `nimble_parsec`: from 1.4.0 to 1.4.2
* `peep`: from 3.3.0 to 3.4.1
* `phoenix_html`: from 4.1.1 to 4.2.0
* `phoenix_live_view`: from 0.20.17 to 1.0.2
* `websock_adapter`: from 0.5.7 to 0.5.8

Reviewed-on: #118

[0]: https://diff.hex.pm/diffs?diffs[]=credo:1.7.8:1.7.11&diffs[]=dialyxir:1.4.4:1.4.5&diffs[]=gettext:0.26.1:0.26.2&diffs[]=phoenix:1.7.14:1.7.18&diffs[]=phoenix_live_dashboard:0.8.4:0.8.6&diffs[]=postgrex:0.19.2:0.19.3
[1]: https://diff.hex.pm/diffs?diffs[]=castore:1.0.9:1.0.11&diffs[]=decimal:2.1.1:2.3.0&diffs[]=ecto:3.12.4:3.12.5&diffs[]=file_system:1.0.1:1.1.0&diffs[]=hpax:1.0.0:1.0.2&diffs[]=nimble_parsec:1.4.0:1.4.2&diffs[]=peep:3.3.0:3.4.1&diffs[]=phoenix_html:4.1.1:4.2.0&diffs[]=phoenix_live_view:0.20.17:1.0.2&diffs[]=websock_adapter:0.5.7:0.5.8
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-01-26 10:50:44 +00:00
395ee2eca7 chore(deps): update absinthe_plug digest to 307c8bb (#116)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| absinthe_plug | prod | digest | `3a984cc` -> `307c8bb` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #116
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-01-25 15:17:15 +00:00
27ff265d47 chore(deps): update dependency telemetry_metrics to ~> 1.1.0 (#115)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [telemetry_metrics](https://hex.pm/packages/telemetry_metrics) ([source](https://github.com/beam-telemetry/telemetry_metrics)) | prod | minor | `~> 1.0.0` -> `~> 1.1.0` |

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #115
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-01-25 14:38:43 +00:00
bd894e4aac chore(deps): upgrade lefthook from 1.8.2 to 1.10.10 (#117)
All checks were successful
continuous-integration/drone/push Build is passing
Upgrade [lefthook](https://lefthook.dev/) from [1.8.2 to 1.10.10](https://github.com/evilmartians/lefthook/compare/v1.8.2...v1.10.10).

Reviewed-on: #117
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2025-01-25 12:45:40 +00:00
dec73629e9 chore(deps): update dependency erlang to v27.2.1 (#114)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.2` -> `27.2.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #114
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-01-25 12:29:32 +00:00
1967275b7e chore(deps): update dependency elixir to v1.18.2 (#113)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.18.0` -> `1.18.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43NC4xIiwidXBkYXRlZEluVmVyIjoiMzkuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #113
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2025-01-25 12:14:28 +00:00
d916795d1d chore(deps): update dependency elixir to v1.18.0 (#112)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | minor | `1.17.3` -> `1.18.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43NC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #112
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-12-21 21:07:31 +00:00
2521072af1 chore(deps): update dependency erlang to v27.2 (#111)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | minor | `27.1.3` -> `27.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #111
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-12-11 19:34:35 +00:00
c43d1774ec chore(deps): update dependency erlang to v27.1.3 (#110)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.1.2` -> `27.1.3` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #110
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-12-07 10:31:59 +00:00
42a5712d38 chore(deps): update postgres docker tag to v17.2 (#109)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `17.1-alpine` -> `17.2-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #109
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-11-23 17:01:40 +00:00
0ca674f76c chore(deps): update postgres docker tag to v17.1 (#108)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `17.0-alpine` -> `17.1-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #108
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-11-22 18:51:58 +00:00
d0114d9c46 feat: always build image when running tests (#107)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #107
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-11-02 14:19:04 +00:00
fb001fc8b5 chore: update deps (#106)
All checks were successful
continuous-integration/drone/push Build is passing
Update deps:

* `ecto_sql` from 3.12.0 to 3.12.1
* `phoenix_ecto` from 4.6.2 to 4.6.3
* `postgrex` from 0.19.1 to 0.19.2

Update deps of deps:

* `castore` from 1.0.9 to 1.0.9
* `ecto` from 3.12.4 to 3.12.4
* `file_system` from 1.0.0 to 1.0.1
* `peep` from 3.2.0 to 3.3.0

Reviewed-on: #106
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-11-02 14:10:33 +00:00
70582003de feat: check code quality through git hooks (#105)
All checks were successful
continuous-integration/drone/push Build is passing
Add `git hooks` that execute common and repetitive tasks before committing and pushing to make developer life easier.

Reviewed-on: #105
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-11-02 13:29:32 +00:00
ab97a6c14f chore(deps): update dependency prom_ex to ~> 1.11.0 (#104)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [prom_ex](https://hex.pm/packages/prom_ex) | minor | `~> 1.10.0` -> `~> 1.11.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4zOS42IiwidXBkYXRlZEluVmVyIjoiMzguMzkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #104
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-10-30 19:25:50 +00:00
216015fb82 chore(docker/ci): bump erlang to 27.1.2 (#103)
All checks were successful
continuous-integration/drone/push Build is passing
Also, use debian bookworm 20241016.

Reviewed-on: #103
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-10-21 02:13:56 +00:00
26b72afd5a chore(deps): update dependency erlang to v27.1.2 (#102)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.1.1` -> `27.1.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4zOS42IiwidXBkYXRlZEluVmVyIjoiMzguMzkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #102
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-10-21 01:51:44 +00:00
5e029670eb feat: execute test with docker compose (#101)
All checks were successful
continuous-integration/drone/push Build is passing
When we changed the application to be executed as distributed nodes (PR #96), performing tests with `docker-compose` became impossible.

To fix this situation in this PR, two new targets are added to `Makefile`:

* `compose_test`
* `compose_test_shell`

These new targets allow one to execute tests and enter the container shell responsible for running these tests.

Reviewed-on: #101
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-10-07 12:16:07 +00:00
0ae8bf53a2 chore(deps): update dependency gettext to ~> 0.26.0 (#94)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gettext](https://hex.pm/packages/gettext) | minor | `~> 0.25.0` -> `~> 0.26.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4zOS42IiwidXBkYXRlZEluVmVyIjoiMzguMzkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #94
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-10-02 11:51:23 +00:00
235396f041 chore: upgrade deps and match ci services to the ones used locally (#100)
All checks were successful
continuous-integration/drone/push Build is passing
Upgrade deps:

* `credo` from 1.7.7 to 1.7.8
* `dialyxir` from 1.4.3 to 1.4.4
* `plug_cowboy` from 2.7.1 to 2.7.2
* `postgrex` from 0.19.0 to 0.19.1

In `CI` match image versions:

* `postgres` from 16.4 to 17.0
* `erlang` from 27.0.1 to 27.1.1
* `elixir` from 1.17.2 to 1.17.3

Reviewed-on: #100
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-10-02 10:39:16 +00:00
dbb9fed9f8 chore(deps): update dependency erlang to v27.1.1 (#99)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `27.1` -> `27.1.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4zOS42IiwidXBkYXRlZEluVmVyIjoiMzguMzkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #99
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-10-01 20:38:54 +00:00
bb149d1137 chore(deps): update postgres docker tag to v17 (#98)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | major | `16.4-alpine` -> `17.0-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4zOS42IiwidXBkYXRlZEluVmVyIjoiMzguMzkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #98
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-10-01 14:28:44 +00:00
9be7566cbb feat: execute service as distributed erlang (#96)
All checks were successful
continuous-integration/drone/push Build is passing
To create a cluster with distributed nodes, the following changes were made:

* Use [`dns_cluster`][0] to execute distributed nodes
* Add _script_ to execute distributed nodes locally

Also, improve local execution by:

* Use [`mix release`][1] to make easier [deploy `phoenix`][2]
* Use [`compose watch`][3] to synchronize code from the host with the service

Some minor improvements:

* Ignore files and folders in git and docker
* Remove boilerplate comments

[0]: https://github.com/phoenixframework/dns_cluster
[1]: https://hexdocs.pm/mix/Mix.Tasks.Release.html
[2]: https://hexdocs.pm/phoenix/releases.html
[3]: https://docs.docker.com/compose/how-tos/file-watch/

Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #96
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-09-22 18:56:27 +00:00
0a4e262b91 chore(deps): update dependency erlang to v27.1 (#95)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | minor | `27.0.1` -> `27.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4zOS42IiwidXBkYXRlZEluVmVyIjoiMzguMzkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #95
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-09-20 13:07:08 +00:00
bcdabe41c3 chore(deps): update dependency elixir to v1.17.3 (#81)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.17.2-otp-27` -> `1.17.3` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNjIuMSIsInVwZGF0ZWRJblZlciI6IjM4LjM5LjYiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Reviewed-on: #81
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-09-19 18:07:20 +00:00
4d545074f5 chore(deps): update postgres docker tag to v16.4 (#90)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `16.3-alpine` -> `16.4-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Reviewed-on: #90
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-08-13 14:09:16 +00:00
4195fc615f feat: upgrade application dependencies (#93)
All checks were successful
continuous-integration/drone/push Build is passing
[Upgrade deps][0]:

* `absinthe` from 1.7.7 to 1.7.8
* `ecto` from 3.11.2 to 3.12.0
* `ecto_sql` from 3.11.3 to 3.12.0
* `gettext` from 0.24.0 to 0.25.0
* `jason` from 1.4.3 to 1.4.4
* `mix_audit` from 2.1.3 to 2.1.4
* `postgrex` from 0.18.0 to 0.19.0
* `prom_ex` from 1.9.0 to 1.10.0
* `telemetry_metrics` from 0.6.2 to 1.0.0

Install transient deps:

* `peep` to 3.2.0

Reviewed-on: #93

[0]: https://diff.hex.pm/diffs?diffs[]=absinthe:1.7.7:1.7.8&diffs[]=ecto:3.11.2:3.12.0&diffs[]=ecto_sql:3.11.3:3.12.0&diffs[]=gettext:0.24.0:0.25.0&diffs[]=jason:1.4.3:1.4.4&diffs[]=mix_audit:2.1.3:2.1.4&diffs[]=postgrex:0.18.0:0.19.0&diffs[]=prom_ex:1.9.0:1.10.0&diffs[]=telemetry_metrics:0.6.2:1.0.0
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-08-12 20:08:18 +00:00
39fd238ed8 feat: upgrade erlang and deps (#87)
All checks were successful
continuous-integration/drone/push Build is passing
* Upgrade erlang to 27.0.1
* Upgrade abisnthe to 1.7.7

Reviewed-on: #87
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-07-12 11:12:50 +00:00
2fa1a773f2 feat(ci): improve dependency graph (#84)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #84
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-07-08 21:54:20 +00:00
3f83808335 feat: upgrade elixir and erlang runtimes, and deps (#83)
All checks were successful
continuous-integration/drone/push Build is passing
Upgrade runtimes:

* [erlang from 26.2.5 to 27.0][0]
* [elixir from 1.16.3 to 1.17.1][1]

Upgrade dependencies:

* `castore` [from 1.0.6 to 1.0.8](https://diff.hex.pm/diff/castore/1.0.6..1.0.8)
* `cowboy` [from 2.10.0 to 2.12.0](https://diff.hex.pm/diff/cowboy/2.10.0..2.12.0)
* `cowlib` [from 2.12.1 to 2.13.0](https://diff.hex.pm/diff/cowlib/2.12.1..2.13.0)
* `credo` [from 1.7.6 to 1.7.7](https://diff.hex.pm/diff/credo/1.7.6..1.7.7)
* `db_connection` [from 2.6.0 to 2.7.0](https://diff.hex.pm/diff/db_connection/2.6.0..2.7.0)
* `ecto_sql` [from 3.11.2 to 3.11.3](https://diff.hex.pm/diff/ecto_sql/3.11.2..3.11.3)
* `erlex` [from 0.2.6 to 0.2.7](https://diff.hex.pm/diff/erlex/0.2.6..0.2.7)
* `hpax` [from 0.1.2 to 1.0.0](https://diff.hex.pm/diff/hpax/0.1.2..1.0.0)
* `jason` [from 1.4.1 to 1.4.3](https://diff.hex.pm/diff/jason/1.4.1..1.4.3)
* `mime` [from 2.0.5 to 2.0.6](https://diff.hex.pm/diff/mime/2.0.5..2.0.6)
* `mint` [from 1.5.2 to 1.6.2](https://diff.hex.pm/diff/mint/1.5.2..1.6.2)
* `nimble_options` [from 1.1.0 to 1.1.1](https://diff.hex.pm/diff/nimble_options/1.1.0..1.1.1)
* `nimble_pool` [from 1.0.0 to 1.1.0](https://diff.hex.pm/diff/nimble_pool/1.0.0..1.1.0)
* `phoenix` [from 1.7.12 to 1.7.14](https://diff.hex.pm/diff/phoenix/1.7.12..1.7.14)
* `phoenix_ecto` [from 4.6.1 to 4.6.2](https://diff.hex.pm/diff/phoenix_ecto/4.6.1..4.6.2)
* `phoenix_live_dashboard` [from 0.8.3 to 0.8.4](https://diff.hex.pm/diff/phoenix_live_dashboard/0.8.3..0.8.4)
* `phoenix_live_view` [from 0.20.14 to 0.20.17](https://diff.hex.pm/diff/phoenix_live_view/0.20.14..0.20.17)
* `phoenix_view` [from 2.0.3 to 2.0.4](https://diff.hex.pm/diff/phoenix_view/2.0.3..2.0.4)
* `plug` [from 1.15.3 to 1.16.1](https://diff.hex.pm/diff/plug/1.15.3..1.16.1)
* `plug_crypto` [from 2.0.0 to 2.1.0](https://diff.hex.pm/diff/plug_crypto/2.0.0..2.1.0)
* `telemetry_metrics_prometheus_core` [from 1.2.0 to 1.2.1](https://diff.hex.pm/diff/telemetry_metrics_prometheus_core/1.2.0..1.2.1)
* `websock_adapter` [from 0.5.5 to 0.5.6](https://diff.hex.pm/diff/websock_adapter/0.5.5..0.5.6)
* `yaml_elixir` [from 2.9.0 to 2.11.0](https://diff.hex.pm/diff/yaml_elixir/2.9.0..2.11.0)

To make `graphql` work with the newer `erlang` and `elixir`, the `absinthe` is installed directly from github:

* [`absinthe`](358e273a26)
* [`absinthe_plug`](3a984cc341)

Finally, the `ci` routine was simplified, so test + lint is executed in parallel, and more core is reused.

[0]: https://www.erlang.org/news/170
[1]: https://github.com/elixir-lang/elixir/releases/tag/v1.17.1

Reviewed-on: #83
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-07-08 21:04:26 +00:00
ece17e3cf9 feat: upgrade elixir runtimes and dependencies (#78)
All checks were successful
continuous-integration/drone/push Build is passing
Upgrade [elixir][0] runtime from [1.16.2 to 1.16.3][1].

Also, [upgrade application dependencies][2]:

* `ecto_sql` from 3.11.1 to 3.11.2
* `phoenix_ecto` from 4.6.0 to 4.6.1
* `postgrex` from 0.17.5 to 0.18.0

Reviewed-on: #78

[0]: https://github.com/elixir-lang/elixir/releases/tag/v1.16.3
[1]: https://github.com/elixir-lang/elixir/compare/v1.16.2...v1.16.3
[2]: https://diff.hex.pm/diffs?diffs[]=ecto_sql:3.11.1:3.11.2&diffs[]=phoenix_ecto:4.6.0:4.6.1&diffs[]=postgrex:0.17.5:0.18.0
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-05-28 14:27:49 +00:00
e616d01e63 chore(ci): upgrade database and erlang runtime on pipelines (#74)
All checks were successful
continuous-integration/drone/push Build is passing
The following upgrades were made:

* Bump [`postgres` from 16.0 to 16.3][postgres-release].
* Bump [`erlang`][erlang-release] from [26.2.3 to 26.2.5][erlang-diffs].

Also, use the same `elixir` image/tag on both pipelines.

[postgres-release]: https://www.postgresql.org/docs/release/16.3/
[erlang-release]: https://www.erlang.org/patches/otp-26.2.5
[erlang-diffs]: https://github.com/erlang/otp/compare/OTP-26.2.3...OTP-26.2.5

Reviewed-on: #74
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-05-16 19:15:12 +00:00
9aeaaabc35 chore(deps): upgrade erlang runtime and application dependencies (#73)
All checks were successful
continuous-integration/drone/push Build is passing
Bump [application dependencies][app-diffs]:

* [`credo` from 1.7.5 to 1.7.6][credo-diffs]
* [`phoenix_ecto` from 4.5.1. to 4.6.0][phoenix_ecto-diffs]

Bump [`erlang`][erlang-release] from [26.2.3 to 26.2.5][erlang-diffs].

[app-diffs]: https://diff.hex.pm/diffs?diffs[]=credo:1.7.5:1.7.6&diffs[]=phoenix_ecto:4.5.1:4.6.0
[credo-diffs]: https://diff.hex.pm/diff/credo/1.7.5..1.7.6
[phoenix_ecto-diffs]: https://diff.hex.pm/diff/phoenix_ecto/4.5.1..4.6.0
[erlang-release]: https://www.erlang.org/patches/otp-26.2.5
[erlang-diffs]: https://github.com/erlang/otp/compare/OTP-26.2.3...OTP-26.2.5

Reviewed-on: #73
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-05-16 18:46:25 +00:00
de9fa663c9 chore(deps): update postgres docker tag to v16.3 (#71)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `16.2-alpine` -> `16.3-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNjIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjE2Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #71
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-05-10 13:53:46 +00:00
037f4d7504 feat(deps): bump application dependencies (#70)
All checks were successful
continuous-integration/drone/push Build is passing
[Bump dependencies][0]:

1. junit_formatter from 3.3.1 to 3.4.0
2. phoenix from 1.7.11 to 1.7.12
3. plug_cowboy from 2.7.0 to 2.7.1
4. telemetry_poller from 1.0.0 to 1.1.0

[0]: https://diff.hex.pm/diffs?diffs%5B%5D=junit_formatter:3.3.1:3.4.0&diffs%5B%5D=phoenix:1.7.11:1.7.12&diffs%5B%5D=plug_cowboy:2.7.0:2.7.1&diffs%5B%5D=telemetry_poller:1.0.0:1.1.0

Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Reviewed-on: #70
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-04-15 14:18:49 +00:00
9bd41ba3b8 chore(deps): bump erlang runtime and deps (#67)
All checks were successful
continuous-integration/drone/push Build is passing
Update runtime:

* Bump [`erlang` from 26.2.2 to 26.2.3][0]

Update [dependencies][1]:

* credo from 1.7.4 to 1.7.5
* mix_audit from 2.1.2 to 2.1.3
* phoenix_ecto from 4.4.3 to 4.5.1
* postgrex from 0.17.4 to 0.17.5

[0]: https://www.erlang.org/patches/otp-26.2.3
[1]: https://diff.hex.pm/diffs?diffs[]=credo:1.7.4:1.7.5&diffs[]=mix_audit:2.1.2:2.1.3&diffs[]=phoenix_ecto:4.4.5:4.5.1&diffs[]=postgrex:0.17.4:0.17.5

Reviewed-on: #67
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-03-19 16:23:27 +00:00
dbce23e51a chore(deps): update hexpm/elixir docker tag to v1.16.2 (#65)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| hexpm/elixir | final | patch | `1.16.1-erlang-26.2.2-debian-bookworm-20240130-slim` -> `1.16.2-erlang-26.2.2-debian-bookworm-20240130-slim` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNjIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjE2Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #65
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-03-19 12:48:38 +00:00
2fca7bc67d chore(deps): update dependency elixir to v1.16.2 (#64)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.16.1` -> `1.16.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNjIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjE2Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #64
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-03-19 11:52:41 +00:00
0f4cedf078 chore(deps): update postgres docker tag to v16.2 (#62)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `16.1-alpine` -> `16.2-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNjIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjE2Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #62
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-02-25 11:04:15 +00:00
24d75a2fd8 feat(ci): trigger on branch main (#61)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #61
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2024-02-11 14:09:51 +00:00
1b21556d2c Upgrade runtime and deps (#60)
Upgrade project runtimes and dependencies to the latest versions.

1. Runtimes:
    1. `elixir` to 1.16.1
    1. `erlang` to 26.2.2
1. [Dependencies][0]:
    1. `absinte` from 1.7.5 to 1.7.6
    1. `credo` from 1.7.1 to 1.7.4
    1. `dialyxir` from 1.4.2 to 1.4.3
    1. `ecto_sql` from 3.10.3 to 3.11.1
    1. `gettext` from 0.23.1 to 0.24.0
    1. `mix_audit` from 2.1.1 to 2.1.2
    1. `pg_ranges` from 1.1.0 to 1.1.1
    1. `phoenix` from 1.7.10 to 1.7.11
    1. `plug_cowboy` from 2.6.1 to 2.7.0
    1. `postgrex` from 0.17.3 to 0.17.4
    1. `telemetry_metrics` from 0.6.1 to 0.6.2

[0]: https://diff.hex.pm/diffs?diffs[]=absinte:1.7.5:1.7.6&diffs[]=credo:1.7.1:1.7.4&diffs[]=dialyxir:1.4.2:1.4.3&diffs[]=ecto_sql:3.10.3:3.11.1&diffs[]=gettext:0.23.1:0.24.0&diffs[]=mix_audit:2.1.1:2.1.2&diffs[]=pg_ranges:1.1.0:1.1.1&diffs[]=phoenix:1.7.10:1.7.11&diffs[]=plug_cowboy:2.6.1:2.7.0&diffs[]=postgrex:0.17.3:0.17.4&diffs[]=telemetry_metrics:0.6.1:0.6.2

Reviewed-on: #60
2024-02-11 13:53:11 +00:00
4d09f20e69 chore(deps): update elixir docker tag (#56)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | final | minor | `1.15.7-slim` -> `1.16.0-slim` |
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) |  | minor | `1.15.7` -> `1.16.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM3LjE2Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #56
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2024-01-31 11:42:10 +00:00
42ae54b17e chore(deps): update dependency sobelow to ~> 0.13 (#51)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [sobelow](https://hex.pm/packages/sobelow) | minor | `~> 0.12` -> `~> 0.13` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #51
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-11-25 16:58:29 +00:00
93e1719d0d chore(deps): update postgres docker tag to v16.1 (#52)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| postgres | minor | `16.0-alpine` -> `16.1-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #52
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-11-24 15:13:48 +00:00
7420139650 feat(ci): additional code/deps/security checks (#37)
To improve `CI` quality the following checks were added:

* compile warnings
* deprecated dependencies
* insecure dependencies
* unused dependencies
* code vulnerabilities

Also, to improve `CI` execution time, dependencies checks and lining were separated from the test pipeline.

Last, but not least, to make local development easier a `Dockerfile` was created to contain any system dependencies, and targets to handle database creation and migration were added.

Reviewed-on: #37
2023-11-11 20:35:45 +00:00
62219ecc9f chore(deps): upgrade locked deps (#50)
After running `mix do deps.unlock --all, deps.clean --all, clean, deps.get` the following dependencies were updated:

```
credo ................... 1.7.0 ... 1.7.1
db_connection ........... 2.5.0 ... 2.6.0
dialyxir ................ 1.4.0 ... 1.4.2
ecto_sql ................ 3.10.1 .. 3.10.2
gettext ................. 0.23.0 .. 0.23.1
phoenix ................. 1.7.9 ... 1.7.10
phoenix_ecto ............ 4.4.2 ... 4.4.3
phoenix_live_dashboard .. 0.8.0 ... 0.8.3
phoenix_live_view ....... 0.19.5 .. 0.20.1
phoenix_view ............ 2.0.2 ... 2.0.3
postgrex ................ 0.17.1 .. 0.17.3
websock_adapter ......... 0.5.4 ... 0.5.5
```

For a detailed diff view check [diff.hex.pm][0].

[0]: https://diff.hex.pm/diffs?diffs[]=credo:1.7.0:1.7.1&diffs[]=db_connection:2.5.0:2.6.0&diffs[]=dialyxir:1.4.0:1.4.2&diffs[]=ecto_sql:3.10.1:3.10.2&diffs[]=gettext:0.23.0:0.23.1&diffs[]=phoenix:1.7.9:1.7.10&diffs[]=phoenix_ecto:4.4.2:4.4.3&diffs[]=phoenix_live_dashboard:0.8.0:0.8.3&diffs[]=phoenix_live_view:0.19.5:0.20.1&diffs[]=phoenix_view:2.0.2:2.0.3&diffs[]=postgrex:0.17.1:0.17.3&diffs[]=websock_adapter:0.5.4:0.5.5

Reviewed-on: #50
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
2023-11-11 19:00:26 +00:00
88de0beeac chore(deps): update elixir docker tag to v1.15.7 (#49)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | docker | patch | `1.15.6-slim` -> `1.15.7-slim` |
| elixir |  | patch | `1.15.6-slim` -> `1.15.7-slim` |
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) |  | patch | `1.15.6` -> `1.15.7` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #49
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-11-09 21:47:25 +00:00
d7c99b099d chore(deps): update dependency prom_ex to ~> 1.9.0 (#48)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [prom_ex](https://hex.pm/packages/prom_ex) | minor | `~> 1.8.0` -> `~> 1.9.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #48
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-10-12 21:47:51 +00:00
e771d55589 chore(deps): update dependency erlang to v26.1.2 (#47)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `26.1.1` -> `26.1.2` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #47
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-10-12 19:37:57 +00:00
1c0a0b6853 chore(deps): update elixir docker tag to v1.15.6 (#46)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | docker | patch | `1.15.4-slim` -> `1.15.6-slim` |
| elixir |  | patch | `1.15.4-slim` -> `1.15.6-slim` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #46
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-10-06 14:19:13 +00:00
2bd91423a4 chore(deps): update dependency erlang to v26.1.1 (#45)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `26.1` -> `26.1.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #45
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-09-28 11:58:02 +00:00
ba1a8c7baa chore(deps): update dependency elixir to v1.15.6 (#44)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.15.5` -> `1.15.6` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #44
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-09-20 23:05:16 +00:00
5f3a5a1df1 chore(deps): update dependency erlang to v26.1 (#43)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | minor | `26.0.2` -> `26.1` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #43
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-09-20 22:32:32 +00:00
748d7f3381 chore(deps): update postgres docker tag to v16 (#42)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | major | `15.4-alpine` -> `16.0-alpine` |
| postgres |  | major | `15.4-alpine` -> `16.0-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #42
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-09-20 22:29:26 +00:00
dc9a7a500b chore(deps): update dependency elixir to v1.15.5 (#41)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) | patch | `1.15.4` -> `1.15.5` |

---

### Release Notes

<details>
<summary>elixir-lang/elixir</summary>

### [`v1.15.5`](https://github.com/elixir-lang/elixir/releases/tag/v1.15.5)

[Compare Source](https://github.com/elixir-lang/elixir/compare/v1.15.4...v1.15.5)

##### 1. Enhancements

##### IEx

-   \[IEx.Autocomplete] Speed up loading of struct suggestions

##### 2. Bug fixes

##### Elixir

-   \[Code.Fragment] Fix `Code.Fragment.surround_context/2` for aliases and submodules of non-aliases
-   \[Kernel] Ensure stacktrace is included when necessary when rescuing multiple exceptions in the same branch
-   \[Kernel] Fix index in error message for unused optional arguments

##### ExUnit

-   \[ExUnit.Diff] Fix scenario where diff would not show up due to a timed-out loop

##### IEx

-   \[IEx] Force group leader to run as a binary and unicode in IEx

##### Mix

-   \[mix compile] Do not assume `blake` is always available
-   \[mix format] Load and compile plugins if specified in subdirectories

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #41
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-08-29 18:29:36 +00:00
42f8276204 chore(deps): update dependency dialyxir to ~> 1.4.0 (#40)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [dialyxir](https://hex.pm/packages/dialyxir) | minor | `~> 1.3.0` -> `~> 1.4.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #40
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-08-28 14:31:16 +00:00
fbba19f4a7 chore(deps): update postgres docker tag to v15.4 (#39)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | minor | `15.3-alpine` -> `15.4-alpine` |
| postgres |  | minor | `15.3-alpine` -> `15.4-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #39
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-08-16 13:58:06 +00:00
f8cb4ddfbf chore(deps): update dependency gettext to ~> 0.23.0 (#38)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gettext](https://hex.pm/packages/gettext) | minor | `~> 0.22.0` -> `~> 0.23.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Reviewed-on: #38
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-08-07 20:21:55 +00:00
2039b43c53 feat: upgrade elixir/erlang runtimes (#35)
Upgrade runtimes to the latest versions:

* elixir to 1.15.4
* erlang to 26.0.2

Improve CI definition by using a cache that considers the runtime version.

Save disk space by using the `slim` image variant.

Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #35
2023-07-23 23:01:03 +00:00
22b3823d8e chore(deps): update elixir docker tag (#32)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | docker | patch | `1.14.4` -> `1.14.5` |
| elixir |  | patch | `1.14.4` -> `1.14.5` |
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) |  | minor | `1.14.4` -> `1.15.0` |

Also upgrade deps listed on [hex.pm/l/vtvfy][0].

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Co-authored-by: João Paulo Dubas <joao.dubas@noreply.gitea.dubas.dev>
Reviewed-on: #32

[0]: https://diff.hex.pm/diffs?diffs[]=absinthe:1.7.0:1.7.1&diffs[]=credo:1.6.4:1.7.0&diffs[]=dialyxir:1.1.0:1.3.0&diffs[]=ecto_sql:3.7.2:3.10.1&diffs[]=gettext:0.20.0:0.22.2&diffs[]=jason:1.3.0:1.4.0&diffs[]=lcov_ex:0.2.0:0.3.3&diffs[]=phoenix_ecto:4.4.0:4.4.2&diffs[]=phoenix_live_dashboard:0.6.5:0.8.0&diffs[]=prom_ex:1.7.1:1.8.0
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-06-20 03:06:58 +00:00
7befc86adc chore(deps): update meltwater/drone-cache docker tag to v1.4.0 (#29)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [meltwater/drone-cache](https://github.com/meltwater/drone-cache) | docker | minor | `v1.3.0` -> `v1.4.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Reviewed-on: #29
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-06-19 23:48:57 +00:00
39ff0979c7 chore(deps): update postgres docker tag to v15 (#31)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | major | `14.8-alpine` -> `15.3-alpine` |
| postgres |  | major | `14.8-alpine` -> `15.3-alpine` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Reviewed-on: #31
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-06-16 11:27:56 +00:00
a30611f310 chore(deps): update postgres docker tag to v14.8 (#30)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | minor | `14.5-alpine` -> `14.8-alpine` |
| postgres |  | minor | `14.5-alpine` -> `14.8-alpine` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Reviewed-on: #30
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-06-14 22:51:56 +00:00
686b23bc8e chore(deps): update elixir docker tag to v1.14.4 (#24)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | docker | patch | `1.14.3` -> `1.14.4` |
| elixir |  | patch | `1.14.3` -> `1.14.4` |
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) |  | patch | `1.14.3` -> `1.14.4` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Reviewed-on: #24
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-04-16 22:56:12 +00:00
5dc3af3463 chore(deps): update elixir docker tag to v1.14.3 (#23)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | docker | patch | `1.14.0` -> `1.14.3` |
| elixir |  | patch | `1.14.0` -> `1.14.3` |
| [elixir](https://elixir-lang.org/) ([source](https://github.com/elixir-lang/elixir)) |  | minor | `1.13.4-otp-24` -> `1.14.3` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Reviewed-on: #23
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-02-27 03:25:24 +00:00
10fa65a894 chore(deps): update dependency erlang to v24.3.4 (#22)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [erlang](https://github.com/erlang/otp) | patch | `24.3.3` -> `24.3.4` |

---

### Release Notes

<details>
<summary>erlang/otp</summary>

### [`v24.3.4`](https://github.com/erlang/otp/releases/tag/OTP-24.3.4): OTP 24.3.4

[Compare Source](https://github.com/erlang/otp/compare/OTP-24.3.3...OTP-24.3.4)

</details>

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjExMi4wIn0=-->

Reviewed-on: #22
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-02-27 02:08:33 +00:00
ea530b4775 chore(deps): update elixir docker tag to v1.14.0 (#21)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| elixir | docker | minor | `1.13.4` -> `1.14.0` |
| elixir |  | minor | `1.13.4` -> `1.14.0` |

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xNzkuMCIsInVwZGF0ZWRJblZlciI6IjMyLjE3OS4wIn0=-->

Reviewed-on: #21
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-02-27 01:23:50 +00:00
fc08e32e1a chore(deps): update postgres docker tag to v14.5 (#20)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | minor | `14.4-alpine` -> `14.5-alpine` |
| postgres |  | minor | `14.4-alpine` -> `14.5-alpine` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xMjcuMSIsInVwZGF0ZWRJblZlciI6IjMyLjE3OS4wIn0=-->

Reviewed-on: #20
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2023-01-24 01:55:12 +00:00
6492aa4e0b chore(deps): update dependency gettext to ~> 0.20 (#19)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gettext](https://hex.pm/packages/gettext) | minor | `~> 0.19` -> `~> 0.20` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xMjcuMSIsInVwZGF0ZWRJblZlciI6IjMyLjEyNy4xIn0=-->

Reviewed-on: #19
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2022-08-27 21:53:13 +00:00
c463839411 chore(deps): update dependency postgres to v14.4 (#18)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | minor | `14.3-alpine` -> `14.4-alpine` |
| postgres |  | minor | `14.3-alpine` -> `14.4-alpine` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: #18
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2022-07-01 13:22:26 +00:00
7559f3dc71 chore(deps): update dependency postgres to v14.3 (#17)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | docker | minor | `14.2-alpine` -> `14.3-alpine` |
| postgres |  | minor | `14.2-alpine` -> `14.3-alpine` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: #17
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2022-06-09 11:39:26 +00:00
34c3a3e4c2 feat: expose system metrics (#4)
Use prom_ex to expose system metrics to prometheus and create dashboards.

Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #4
2022-05-03 16:19:39 +00:00
39419f8837 feat (ci): improve configuration (#16)
- Remove unused `github-actions` configuration
- Cache build and deps to make tests faster
- Add lint step

Reviewed-on: #16
2022-04-26 00:01:43 +00:00
166cfed7b3 chore(deps): update dependency telemetry_metrics to ~> 0.6 (#12)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [telemetry_metrics](https://hex.pm/packages/telemetry_metrics) | minor | `~> 0.4` -> `~> 0.6` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: #12
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2022-04-25 13:42:42 +00:00
0dc3d6f6c7 chore(deps): update dependency phoenix_live_dashboard to ~> 0.6 (#11)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [phoenix_live_dashboard](https://hex.pm/packages/phoenix_live_dashboard) | minor | `~> 0.4` -> `~> 0.6` |

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: #11
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2022-04-25 13:31:13 +00:00
31 changed files with 697 additions and 376 deletions

33
.dockerignore Normal file
View File

@@ -0,0 +1,33 @@
.dockerignore
docker-compose.yml
docker-compose.*.yml
# Ignore git, but keep git HEAD and refs to access current commit hash if needed:
#
# $ cat .git/HEAD | awk '{print ".git/"$2}' | xargs cat
# d0b8727759e1e0e7aa3d41707d12376e373d5ecc
.git
!.git/HEAD
!.git/refs
# Common development/test artifacts
/cover/
/doc/
/test/
/tmp/
/.elixir_ls
/.elixir-tools/
# Mix artifacts
/_build/
/deps/
*.ez
# Generated on crash by the VM
erl_crash.dump
# Static artifacts - These should be fetched and built inside the Docker image
/assets/node_modules/
/priv/plts/
/priv/static/assets/
/priv/static/cache_manifest.json

View File

@@ -1,36 +1,171 @@
---
kind: pipeline
type: docker
name: test
name: test and lint
trigger:
event:
- push
- pull_request
branch:
- main
steps:
- name: database healthcheck
image: 'postgres:14.2-alpine'
image: &postgres 'postgres:17.5-alpine'
environment:
PGUSER: postgres
PGPASSWORD: postgres
PGHOST: db
PGUSER: &db_user postgres
PGPASSWORD: &db_pass postgres
PGHOST: &db_host db
commands:
- while ! pg_isready; do sleep 1; done
depends_on:
- 'db'
- name: restore cache
image: &drone_cache 'meltwater/drone-cache:v1.4.0'
environment:
AWS_ACCESS_KEY_ID:
from_secret: minio_user
AWS_SECRET_ACCESS_KEY:
from_secret: minio_password
settings:
archive_format: gzip
bucket: trainlog-cache
cache_key: '{{ .Repo.Name }}-{{ checksum ".tool-versions" }}-{{ checksum "mix.lock" }}-{{ checksum "Dockerfile" }}'
endpoint: minio:9000
mount:
- _build
- deps
path_style: true
region: us-east-1
restore: true
volumes: &volumes
- name: app_build
path: /drone/src/_build
- name: app_deps
path: /drone/src/deps
- name: dependencies and compile
image: &elixir 'hexpm/elixir:1.18.4-erlang-28.0.1-debian-bookworm-20250610-slim'
commands:
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force, deps.get, deps.compile
- mix compile --force --all-warnings --warnings-as-errors
volumes: *volumes
depends_on:
- 'restore cache'
- name: test
image: 'elixir:1.13.4'
image: *elixir
environment:
MIX_ENV: test
POSTGRES_HOST: db
POSTGRES_USER: postgres
POSTGRES_PASS: postgres
POSTGRES_HOST: *db_host
POSTGRES_USER: *db_user
POSTGRES_PASS: *db_pass
commands:
- mix do local.rebar --force, local.hex --force, deps.get, deps.compile
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force
- mix test --cover --trace --slowest 10
volumes: *volumes
depends_on:
- 'database healthcheck'
- 'dependencies and compile'
- name: audit deps
image: *elixir
commands:
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force
- mix hex.audit
- mix deps.audit
- mix deps.unlock --check-unused
# - mix hex.outdated
volumes: *volumes
depends_on:
- 'dependencies and compile'
- name: format check
image: *elixir
commands:
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force
- mix format --dry-run --check-formatted
volumes: *volumes
depends_on:
- 'dependencies and compile'
- name: credo check
image: *elixir
commands:
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force
- mix credo suggest --strict --format=flycheck
volumes: *volumes
depends_on:
- 'dependencies and compile'
- name: dialyzer check
image: *elixir
commands:
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force
- mix dialyzer --no-check --quiet --ignore-exit-status --format short
volumes: *volumes
depends_on:
- 'dependencies and compile'
- name: sobelow check
image: *elixir
commands:
- apt-get update
- apt-get install -y git make
- mix do local.rebar --force, local.hex --force
- mix sobelow
volumes: *volumes
depends_on:
- 'dependencies and compile'
- name: rebuild cache
image: *drone_cache
environment:
AWS_ACCESS_KEY_ID:
from_secret: minio_user
AWS_SECRET_ACCESS_KEY:
from_secret: minio_password
settings:
archive_format: gzip
bucket: trainlog-cache
cache_key: '{{ .Repo.Name }}-{{ checksum ".tool-versions" }}-{{ checksum "mix.lock" }}-{{ checksum "Dockerfile" }}'
endpoint: minio:9000
exit_code: true
mount:
- _build
- deps
path_style: true
rebuild: true
region: us-east-1
volumes: *volumes
depends_on:
- 'test'
- 'audit deps'
- 'format check'
- 'credo check'
- 'dialyzer check'
- 'sobelow check'
services:
- name: db
image: 'postgres:14.2-alpine'
- name: *db_host
image: *postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: *db_user
POSTGRES_PASSWORD: *db_pass
volumes:
- name: app_build
temp: {}
- name: app_deps
temp: {}

View File

@@ -1,142 +0,0 @@
---
# based on:
# 1. https://dev.to/mnishiguchi/basic-github-actions-setup-for-phoenix-apps-m3g
# 2. https://www.jonathanyeong.com/garden/how-to-setup-ci-with-phoenix-github-actions/
name: CI
on:
push:
branches: [main]
pull_request:
brances: [main]
env:
MIX_ENV: test
jobs:
dependencies:
runs-on: ubuntu-20.04
strategy:
matrix:
elixir: ['1.12.1']
otp: ['24.0.2']
steps:
- name: cancel previous execution
uses: styfle/cancel-workflow-action@0.9.0
with:
access_token: ${{ github.token }}
- name: checkout repo
uses: actions/checkout@v2
- name: setup erlang/elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.otp }}
- name: fecth cached dependencies
uses: actions/cache@v2
id: mix-cache
with:
path: |
deps
_build
priv/plts
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- name: install dependencies
if: steps.mix-cache.outputs.cache-hit != 'true'
run: |
mkdir -p priv/plts
mix local.rebar --force
mix local.hex --force
mix deps.get
mix deps.compile
mix dialyzer --plt
static-code-analysis:
needs: dependencies
runs-on: ubuntu-20.04
strategy:
matrix:
elixir: ['1.12.1']
otp: ['24.0.2']
steps:
- name: cancel previous execution
uses: styfle/cancel-workflow-action@0.9.0
with:
access_token: ${{ github.token }}
- name: checkout repo
uses: actions/checkout@v2
- name: setup erlang/elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.otp }}
- name: fecth cached dependencies
uses: actions/cache@v2
id: mix-cache
with:
path: |
deps
_build
priv/plts
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- run: mix format --check-formatted
- name: credo analysis
uses: red-shirts/reviewdog-action-credo@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
- run: mix dialyzer --no-check --quiet --ignore-exit-status --format short
test:
needs: dependencies
runs-on: ubuntu-20.04
strategy:
matrix:
elixir: ['1.12.1']
otp: ['24.0.2']
services:
db:
image: 'postgres:13.3-alpine'
ports:
- '5432:5432'
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: cancel previous execution
uses: styfle/cancel-workflow-action@0.9.0
with:
access_token: ${{ github.token }}
- name: checkout repo
uses: actions/checkout@v2
- name: setup erlang/elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.otp }}
- name: fecth cached dependencies
uses: actions/cache@v2
id: mix-cache
with:
path: |
deps
_build
priv/plts
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- run: mix test --cover --trace --slowest 10
env:
POSTGRES_USER: postgres
POSTGRES_PASS: postgres
- name: publish test results
uses: EnricoMi/publish-unit-test-result-action/composite@v1
if: always()
with:
files: 'report/test/*.xml'
- name: publish coverage report
uses: romeovs/lcov-reporter-action@v0.2.16
if: always()
with:
lcov-file: 'cover/lcov.info'

6
.gitignore vendored
View File

@@ -1,4 +1,6 @@
# paths
/.elixir_ls/
/.elixir-tools/
/_build/
/cover/
/report/
@@ -13,5 +15,5 @@ erl_crash.dump
*.ez
wabanex-*.tar
docker-compose.*.yml
priv/docker/pgcli/history
priv/docker/pgcli/log
/priv/docker/pgcli/history
/priv/docker/pgcli/log

View File

@@ -1,2 +1,3 @@
erlang 24.3.3
elixir 1.13.4-otp-24
erlang 28.0.2
elixir 1.18.4
lefthook 1.11.14

70
Dockerfile Normal file
View File

@@ -0,0 +1,70 @@
ARG ELIXIR_VERSION=1.18.4
ARG OTP_VERSION=28.0.1
ARG DEBIAN_VERSION=bookworm-20250610-slim
ARG BUILDER_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
ARG RUNNER_IMAGE="debian:${DEBIAN_VERSION}"
FROM ${BUILDER_IMAGE} AS builder
RUN apt-get update \
&& apt-get -y install \
build-essential \
git \
make \
&& apt-get clean \
&& rm -rf /var/lib/ap/lists/*_*
WORKDIR /opt/app
# install hex + rebar
RUN mix do local.hex --force, local.rebar --force
# set build ENV
ARG BUILD_MIX_ENV=prod
ENV MIX_ENV=${BUILD_MIX_ENV}
# install mix dependencies
COPY mix.exs mix.lock ./
RUN mix deps.get --only ${MIX_ENV}
RUN mkdir config
# copy compile-time config files before we compile dependencies
# to ensure any relevant config change will trigger the dependencies
# to be re-compiled.
COPY config/config.exs config/${BUILD_MIX_ENV}.exs config/
RUN mix deps.compile
COPY priv priv
COPY lib lib
# Compile the release
RUN mix compile
# Changes to config/runtime.exs don't require recompiling the code
COPY config/runtime.exs config/
COPY rel rel
RUN mix release
COPY ./mix.exs ./
EXPOSE 4000
ENTRYPOINT ["./priv/docker/service/docker-entrypoint.sh"]
CMD ["sample-cookie"]
# start a new build stage so that the final image will only contain
# the compiled release and other runtime necessities
FROM ${RUNNER_IMAGE}
RUN apt-get update -y \
&& apt-get install -y \
ca-certificates \
libncurses5 \
libstdc++6 \
locales \
openssl \
tini \
&& apt-get clean && rm -f /var/lib/apt/lists/*_*
# Set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
WORKDIR /opt/app
RUN chown nobody /opt/app
# set runner ENV
ARG BUILD_MIX_ENV=prod
ENV MIX_ENV=${BUILD_MIX_ENV}
# Only copy the final release from the build stage
COPY --from=builder --chown=nobody:root /app/_build/${BUILD_MIX_ENV}/rel/wabanex ./
USER nobody
EXPOSE 4000
ENTRYPOINT ["tini", "--"]
CMD ["/app/bin/server"]

View File

@@ -1,9 +1,13 @@
.DEFAULT_GOAL := help
COMPOSE = docker-compose -f docker-compose.yml -f docker-compose.override.yml
COMPOSE = docker compose
.PHONY: system_setup
system_setup: ## setup system deps
@lefthook install
.PHONY: setup
setup: ## setup project
setup: system_setup ## setup project
@mkdir -p priv/plts
@mix do local.rebar --force, local.hex --force
@mix do deps.get, deps.compile
@@ -13,6 +17,10 @@ setup: ## setup project
check_format: ## run format checker
@mix format --check-formatted
.PHONY: check_compile
check_compile: ## run compile
@mix compile --warnings-as-errors --force
.PHONY: credo
credo: ## run credo
@mix credo suggest --strict --format=flycheck
@@ -22,19 +30,46 @@ dialyzer: ## run dialyzer
@mix dialyzer --no-check --quiet --ignore-exit-status --format short
.PHONY: static_code_analysis
static_code_analysis: check_format credo dialyzer ## run static code analysis
static_code_analysis: check_format check_compile credo dialyzer ## run static code analysis
.PHONY: test
test: ## run tests
@mix test --cover --trace --slowest 10
.PHONY: compose_database_create
compose_database_create:
@$(COMPOSE) run --rm --entrypoint mix app ecto.create
.PHONY: compose_database_migrate
compose_database_migrate: ## apply migrations to our database
@$(COMPOSE) run --rm --entrypoint mix app ecto.migrate
.PHONY: compose_database_setup
compose_database_setup: compose_database_create compose_database_migrate ## create and apply migrations
.PHONY: compose_ps
compose_ps: ## status of containers
@$(COMPOSE) ps
.PHONY: compose_remote
compose_remote: ## connect to remote node
@$(COMPOSE) exec app ./priv/docker/service/docker-remote.sh
.PHONY: compose_test
compose_test: ## execute test on docker environment
@$(COMPOSE) --profile test run --build --rm test
.PHONY: compose_test_shell
compose_test_shell: ## enter test environment shell
@$(COMPOSE) --profile test run --rm --entrypoint bash test -c bash
.PHONY: compose_up
compose_up: ## start containers for this service
@$(COMPOSE) up -d
.PHONY: compose_test
compose_test: ## run tests in containers
@$(COMPOSE) run -e MIX_ENV=test --entrypoint make app test
.PHONY: compose_watch
compose_watch: ## start containers for this service watching for updates in filesystem
@$(COMPOSE) up -w
.PHONY: help
help:

View File

@@ -1,10 +1,3 @@
# This file is responsible for configuring your application
# and its dependencies with the aid of the Mix.Config module.
#
# This configuration file is loaded before any dependency and
# is restricted to this project.
# General application configuration
import Config
config :wabanex,
@@ -14,7 +7,13 @@ config :wabanex, Wabanex.Repo,
migration_primary_key: [type: :binary_id],
migration_foreign_key: [type: :binary_id]
# Configures the endpoint
config :wabanex, Wabanex.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
drop_metrics_groups: [],
grafana: :disabled,
metrics_server: :disabled
config :wabanex, WabanexWeb.Endpoint,
url: [host: "localhost"],
secret_key_base: "wkyuhU+mCGwXUSBYVKZSRGoFmDYCbOFzdokbVmBBI9JgCWOqGPfuA/3JI5/b4Wdl",
@@ -22,14 +21,10 @@ config :wabanex, WabanexWeb.Endpoint,
pubsub_server: Wabanex.PubSub,
live_view: [signing_salt: "SXtw7DzV"]
# Configures Elixir's Logger
config :logger, :console,
format: "$time $metadata[$level] $message\n",
metadata: [:request_id]
# Use Jason for JSON parsing in Phoenix
config :phoenix, :json_library, Jason
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{config_env()}.exs"

View File

@@ -1,17 +1,14 @@
import Config
# Configure your database
config :wabanex,
dns_cluster_query: :ignore,
dns_cluster_resolver: Wabanex.DevDNSClusterResolver
config :wabanex, Wabanex.Repo,
database: "wabanex_dev",
show_sensitive_data_on_connection_error: true,
pool_size: 10
# For development, we disable any cache and enable
# debugging and code reloading.
#
# The watchers configuration can be used to run external
# watchers to your application. For example, we use it
# with webpack to recompile .js and .css sources.
config :wabanex, WabanexWeb.Endpoint,
http: [port: 4000],
debug_errors: true,
@@ -19,36 +16,8 @@ config :wabanex, WabanexWeb.Endpoint,
check_origin: false,
watchers: []
# ## SSL Support
#
# In order to use HTTPS in development, a self-signed
# certificate can be generated by running the following
# Mix task:
#
# mix phx.gen.cert
#
# Note that this task requires Erlang/OTP 20 or later.
# Run `mix help phx.gen.cert` for more information.
#
# The `http:` config above can be replaced with:
#
# https: [
# port: 4001,
# cipher_suite: :strong,
# keyfile: "priv/cert/selfsigned_key.pem",
# certfile: "priv/cert/selfsigned.pem"
# ],
#
# If desired, both `http:` and `https:` keys can be
# configured to run both http and https servers on
# different ports.
# Do not include metadata nor timestamps in development logs
config :logger, :console, format: "[$level] $message\n"
# Set a higher stacktrace during development. Avoid configuring such
# in production as building large stacktraces may be expensive.
config :phoenix, :stacktrace_depth, 20
# Initialize plugs at runtime for faster development compilation
config :phoenix, :plug_init_mode, :runtime

View File

@@ -1,55 +1,7 @@
import Config
# For production, don't forget to configure the url host
# to something meaningful, Phoenix uses this information
# when generating URLs.
#
# Note we also include the path to a cache manifest
# containing the digested version of static files. This
# manifest is generated by the `mix phx.digest` task,
# which you should run after static files are built and
# before starting your production server.
config :wabanex, WabanexWeb.Endpoint,
url: [host: "example.com", port: 80],
cache_static_manifest: "priv/static/cache_manifest.json"
# Do not print debug messages in production
config :logger, level: :info
# ## SSL Support
#
# To get SSL working, you will need to add the `https` key
# to the previous section and set your `:url` port to 443:
#
# config :wabanex, WabanexWeb.Endpoint,
# ...
# url: [host: "example.com", port: 443],
# https: [
# port: 443,
# cipher_suite: :strong,
# keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"),
# certfile: System.get_env("SOME_APP_SSL_CERT_PATH"),
# transport_options: [socket_opts: [:inet6]]
# ]
#
# The `cipher_suite` is set to `:strong` to support only the
# latest and more secure SSL ciphers. This means old browsers
# and clients may not be supported. You can set it to
# `:compatible` for wider support.
#
# `:keyfile` and `:certfile` expect an absolute path to the key
# and cert in disk or a relative path inside priv, for example
# "priv/ssl/server.key". For all supported SSL configuration
# options, see https://hexdocs.pm/plug/Plug.SSL.html#configure/1
#
# We also recommend setting `force_ssl` in your endpoint, ensuring
# no data is ever sent via http, always redirecting to https:
#
# config :wabanex, WabanexWeb.Endpoint,
# force_ssl: [hsts: true]
#
# Check `Plug.SSL` for all available options in `force_ssl`.
# Finally import the config/prod.secret.exs which loads secrets
# and configuration from environment variables.
import_config "prod.secret.exs"

View File

@@ -1,5 +1,35 @@
import Config
# [warn] Conditional IPv6 support missing from runtime configuration.
#
# Add the following to your config/runtime.exs:
#
# maybe_ipv6 = if System.get_env("ECTO_IPV6") in ~w(true 1), do: [:inet6], else: []
#
# config :wabanex, Wabanex.Repo,
# ...,
# socket_options: maybe_ipv6
#
# [warn] Conditional server startup is missing from runtime configuration.
#
# Add the following to the top of your config/runtime.exs:
#
# if System.get_env("PHX_SERVER") do
# config :wabanex, WabanexWeb.Endpoint, server: true
# end
#
# [warn] Environment based URL export is missing from runtime configuration.
#
# Add the following to your config/runtime.exs:
#
# host = System.get_env("PHX_HOST") || "example.com"
#
# config :wabanex, WabanexWeb.Endpoint,
# ...,
# url: [host: host, port: 443]
config :wabanex, dns_cluster_query: System.get_env("DNS_CLUSTER_QUERY") || :ignore
config :wabanex, Wabanex.Repo,
username: System.get_env("POSTGRES_USER") || "postgres",
password: System.get_env("POSTGRES_PASS") || "postgres",

View File

@@ -1,22 +1,14 @@
import Config
# Configure your database
#
# The MIX_TEST_PARTITION environment variable can be used
# to provide built-in test partitioning in CI environment.
# Run `mix help test` for more information.
config :wabanex, Wabanex.Repo,
database: "wabanex_test#{System.get_env("MIX_TEST_PARTITION")}",
pool: Ecto.Adapters.SQL.Sandbox
# We don't run a server during test. If one is required,
# you can enable the server option below.
config :wabanex, WabanexWeb.Endpoint,
http: [port: 4002],
server: false
# Print only warnings and errors during test
config :logger, level: :warn
config :logger, level: :warning
config :junit_formatter,
report_file: "test_report.xml",

View File

@@ -1,54 +1,90 @@
---
version: '3.7'
name: ${EX_TRAINER_PROJECT_NAME:-ex_trainer}
services:
db:
image: 'postgres:14.2-alpine'
image: 'postgres:17.5-alpine'
hostname: &db_host db
init: true
environment:
POSTGRES_USER: &db_user postgres
POSTGRES_PASSWORD: &db_pass postgres
POSTGRES_DB: &db_name postgres
POSTGRES_DB: postgres
volumes:
- './priv/docker/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql'
- 'db_data:/var/lib/postgresql/data'
restart: unless-stopped
app:
image: 'elixir:1.13.4'
hostname: app
image: 'joaodubas/ex_trainer:${EX_TRAINER_TAG:-dev}'
build:
target: builder
context: .
args:
BUILD_MIX_ENV: dev
pull_policy: never
hostname: &app_host ex_trainer
depends_on:
- db
init: true
develop:
watch:
- path: ./mix.lock
action: rebuild
- path: ./
ignore:
- ./build/
- ./deps/
- ./.elixir_ls/
- ./cover/
- ./report/
target: /opt/app
action: sync+restart
environment:
DNS_CLUSTER_QUERY: *app_host
POSTGRES_HOST: *db_host
POSTGRES_USER: *db_user
POSTGRES_PASS: *db_pass
POSTGRES_NAME: wabanex_dev
volumes:
- '.:/opt/app'
- 'app_build:/opt/app/_build'
- 'app_deps:/opt/app/deps'
working_dir: /opt/app
entrypoint: sleep
command: infinity
pgcli:
image: 'joaodubas/pgcli:latest'
hostname: development
restart: unless-stopped
scale: 3
entrypoint: ./priv/docker/service/docker-entrypoint.sh
command: local-cookie
test:
image: 'joaodubas/ex_trainer:test'
build:
target: builder
context: .
args:
BUILD_MIX_ENV: test
pull_policy: never
profiles:
- test
hostname: ex_trainer_test
depends_on:
- db
environment:
PGUSER: *db_user
PGPASSWORD: *db_pass
PGHOST: *db_host
PGDATABASE: wabanex_dev
init: true
volumes:
- './priv/docker/pgcli:/root/.config/pgcli'
restart: unless-stopped
entrypoint: sleep
command: 3650d
- './mix.exs:/opt/app/mix.exs:ro'
- './mix.lock:/opt/app/mix.lock:ro'
- './students.csv:/opt/app/students.csv:ro'
- './config:/opt/app/config'
- './cover:/opt/app/cover'
- './lib:/opt/app/lib'
- './priv:/opt/app/priv'
- './report:/opt/app/report'
- './test:/opt/app/test'
environment:
POSTGRES_HOST: *db_host
POSTGRES_USER: *db_user
POSTGRES_PASS: *db_pass
POSTGRES_NAME: wabanex_test
working_dir: /opt/app
restart: never
entrypoint: mix test
command: --trace --cover --slowest 10
volumes:
db_data: {}
app_build: {}
app_deps: {}

20
lefthook.yml Normal file
View File

@@ -0,0 +1,20 @@
---
pre-commit:
parallel: true
commands:
compiling:
glob: &elixir_files '*.{ex,exs}'
run: make check_compile
formating:
glob: *elixir_files
run: make check_format
linting:
glob: *elixir_files
run: make credo
typing:
glob: *elixir_files
run: make dialyzer
pre-push:
commands:
testing:
run: make compose_test

View File

@@ -1,32 +1,25 @@
defmodule Wabanex.Application do
# See https://hexdocs.pm/elixir/Application.html
# for more information on OTP Applications
@moduledoc false
use Application
def start(_type, _args) do
children = [
# Start the Ecto repository
Wabanex.PromEx,
Wabanex.Repo,
# Start the Telemetry supervisor
WabanexWeb.Telemetry,
# Start the PubSub system
{Phoenix.PubSub, name: Wabanex.PubSub},
# Start the Endpoint (http/https)
{DNSCluster,
query: Application.get_env(:wabanex, :dns_cluster_query) || :ignore,
log: :info,
resolver: Application.get_env(:wabanex, :dns_cluster_resolver) || DNSCluster.Resolver},
WabanexWeb.Endpoint
# Start a worker by calling: Wabanex.Worker.start_link(arg)
# {Wabanex.Worker, arg}
]
# See https://hexdocs.pm/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: Wabanex.Supervisor]
Supervisor.start_link(children, opts)
end
# Tell Phoenix to update the endpoint configuration
# whenever the application is updated.
def config_change(changed, _new, removed) do
WabanexWeb.Endpoint.config_change(changed, removed)
:ok

View File

@@ -0,0 +1,26 @@
defmodule Wabanex.DevDNSClusterResolver do
@moduledoc """
Local DNS resolver for cluster query.
"""
require Record
Record.defrecord(:hostent, Record.extract(:hostent, from_lib: "kernel/include/inet.hrl"))
def basename(node_name) when is_atom(node_name) do
[basename, _] = node_name |> to_string() |> String.split("@")
basename
end
def connect_node(node_name) when is_atom(node_name) do
Node.connect(node_name)
end
def list_nodes, do: Node.list(:visible)
def lookup(query, type) when is_binary(query) and type in [:a, :aaaa] do
case :inet_res.getbyname(~c"#{query}", type) do
{:ok, hostent(h_addr_list: addr_list)} -> addr_list
{:error, _} -> []
end
end
end

102
lib/wabanex/prom_ex.ex Normal file
View File

@@ -0,0 +1,102 @@
defmodule Wabanex.PromEx do
@moduledoc """
Be sure to add the following to finish setting up PromEx:
1. Update your configuration (config.exs, dev.exs, prod.exs, releases.exs, etc) to
configure the necessary bit of PromEx. Be sure to check out `PromEx.Config` for
more details regarding configuring PromEx:
```
config :wabanex, Wabanex.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
drop_metrics_groups: [],
grafana: :disabled,
metrics_server: :disabled
```
2. Add this module to your application supervision tree. It should be one of the first
things that is started so that no Telemetry events are missed. For example, if PromEx
is started after your Repo module, you will miss Ecto's init events and the dashboards
will be missing some data points:
```
def start(_type, _args) do
children = [
Wabanex.PromEx,
...
]
...
end
```
3. Update your `endpoint.ex` file to expose your metrics (or configure a standalone
server using the `:metrics_server` config options). Be sure to put this plug before
your `Plug.Telemetry` entry so that you can avoid having calls to your `/metrics`
endpoint create their own metrics and logs which can pollute your logs/metrics given
that Prometheus will scrape at a regular interval and that can get noisy:
```
defmodule WabanexWeb.Endpoint do
use Phoenix.Endpoint, otp_app: :wabanex
...
plug PromEx.Plug, prom_ex_module: Wabanex.PromEx
...
end
```
4. Update the list of plugins in the `plugins/0` function return list to reflect your
application's dependencies. Also update the list of dashboards that are to be uploaded
to Grafana in the `dashboards/0` function.
"""
use PromEx, otp_app: :wabanex
alias PromEx.Plugins
@impl true
def plugins do
[
# PromEx built in plugins
Plugins.Application,
Plugins.Beam,
# {Plugins.Phoenix, router: WabanexWeb.Router, endpoint: WabanexWeb.Endpoint},
Plugins.Ecto,
# Plugins.Oban,
# Plugins.PhoenixLiveView,
Plugins.Absinthe
# Plugins.Broadway,
# Add your own PromEx metrics plugins
# Wabanex.Users.PromExPlugin
]
end
@impl true
def dashboard_assigns do
[
datasource_id: "prometheus",
default_selected_interval: "30s"
]
end
@impl true
def dashboards do
[
# PromEx built in Grafana dashboards
{:prom_ex, "application.json"},
{:prom_ex, "beam.json"},
# {:prom_ex, "phoenix.json"},
{:prom_ex, "ecto.json"},
# {:prom_ex, "oban.json"},
# {:prom_ex, "phoenix_live_view.json"},
{:prom_ex, "absinthe.json"}
# {:prom_ex, "broadway.json"},
# Add your dashboard definitions here with the format: {:otp_app, "path_in_priv"}
# {:wabanex, "/grafana_dashboards/user_metrics.json"}
]
end
end

28
lib/wabanex/release.ex Normal file
View File

@@ -0,0 +1,28 @@
defmodule Wabanex.Release do
@moduledoc """
Used for executing DB release tasks when run in production without Mix
installed.
"""
@app :wabanex
def migrate do
load_app()
for repo <- repos() do
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
end
end
def rollback(repo, version) do
load_app()
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
end
defp repos do
Application.fetch_env!(@app, :ecto_repos)
end
defp load_app do
Application.load(@app)
end
end

View File

@@ -19,10 +19,10 @@ defmodule WabanexWeb do
def controller do
quote do
use Gettext, backend: WabanexWeb.Gettext
use Phoenix.Controller, namespace: WabanexWeb
import Plug.Conn
import WabanexWeb.Gettext
alias WabanexWeb.Router.Helpers, as: Routes
end
end
@@ -54,17 +54,18 @@ defmodule WabanexWeb do
def channel do
quote do
use Phoenix.Channel
import WabanexWeb.Gettext
use Gettext, backend: WabanexWeb.Gettext
end
end
defp view_helpers do
quote do
use Gettext, backend: WabanexWeb.Gettext
# Import basic rendering functionality (render, render_layout, etc)
import Phoenix.View
import WabanexWeb.ErrorHelpers
import WabanexWeb.Gettext
alias WabanexWeb.Router.Helpers, as: Routes
end
end

View File

@@ -16,6 +16,8 @@ defmodule WabanexWeb.Endpoint do
socket "/live", Phoenix.LiveView.Socket, websocket: [connect_info: [session: @session_options]]
plug PromEx.Plug, prom_ex_module: Wabanex.PromEx
# Serve at "/" the static files from "priv/static" directory.
#
# You should set gzip to true if you are running phx.digest

View File

@@ -5,7 +5,7 @@ defmodule WabanexWeb.Gettext do
By using [Gettext](https://hexdocs.pm/gettext),
your module gains a set of macros for translations, for example:
import WabanexWeb.Gettext
use Gettext, backend: WabanexWeb.Gettext
# Simple translation
gettext("Here is the string to translate")
@@ -20,5 +20,5 @@ defmodule WabanexWeb.Gettext do
See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage.
"""
use Gettext, otp_app: :wabanex
use Gettext.Backend, otp_app: :wabanex
end

View File

@@ -17,10 +17,11 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRange do
end
@spec serialize_range(PgRanges.DateRange.t()) :: String.t()
@spec serialize_range(list(String.t())) :: String.t()
@spec serialize_range(list(DateTime.t() | nil | atom)) :: String.t()
defp serialize_range(%PgRanges.DateRange{lower: start_range, upper: end_range}),
do: serialize_range([start_range, end_range])
defp serialize_range([start_range, :unbound]), do: serialize_range([start_range, nil])
defp serialize_range([start_range, nil]), do: "#{Date.to_iso8601(start_range)},"
defp serialize_range([start_range, end_range]),

43
mix.exs
View File

@@ -7,7 +7,7 @@ defmodule Wabanex.MixProject do
version: "0.1.0",
elixir: "~> 1.7",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
compilers: Mix.compilers(),
start_permanent: Mix.env() == :prod,
dialyzer: [plt_core_path: "priv/plts"],
test_coverage: [tool: LcovEx, output: "cover"],
@@ -29,24 +29,31 @@ defmodule Wabanex.MixProject do
defp deps do
[
{:absinthe, "~> 1.5"},
{:absinthe_plug, "~> 1.5"},
{:credo, "~> 1.5", only: [:dev, :test], runtime: false},
{:absinthe, "~> 1.7.0"},
{:absinthe_plug,
git: "https://github.com/absinthe-graphql/absinthe_plug.git",
ref: "24ec7aa3b513c7c1aa79e5cad1197cb138603972"},
{:credo, "~> 1.7.0", only: [:dev, :test], runtime: false},
{:crudry, "~> 2.4.0"},
{:dialyxir, "~> 1.1", only: [:dev, :test], runtime: false},
{:ecto_sql, "~> 3.4"},
{:gettext, "~> 0.19"},
{:jason, "~> 1.0"},
{:junit_formatter, "~> 3.1", only: [:test]},
{:lcov_ex, "~> 0.2", only: [:dev, :test], runtime: false},
{:pg_ranges, "~> 1.1"},
{:phoenix, "~> 1.6.0"},
{:phoenix_ecto, "~> 4.1"},
{:phoenix_live_dashboard, "~> 0.6"},
{:plug_cowboy, "~> 2.0"},
{:postgrex, ">= 0.0.0"},
{:telemetry_metrics, "~> 0.4"},
{:telemetry_poller, "~> 1.0"}
{:dialyxir, "~> 1.4.0", only: [:dev, :test], runtime: false},
{:dns_cluster, "~> 0.2.0"},
{:ecto_sql, "~> 3.13.0"},
{:gettext, "~> 0.26.0"},
{:jason, "~> 1.4.0"},
{:junit_formatter, "~> 3.4.0", only: [:test]},
{:lcov_ex, "~> 0.3.0", only: [:dev, :test], runtime: false},
{:mix_audit, "~> 2.1.0", only: [:dev, :test], runtime: false},
{:pg_ranges, "~> 1.1.0"},
{:phoenix, "~> 1.7.0"},
{:phoenix_ecto, "~> 4.6.0"},
{:phoenix_view, "~> 2.0.0"},
{:phoenix_live_dashboard, "~> 0.8.0"},
{:plug_cowboy, "~> 2.7.0"},
{:postgrex, "~> 0.20.0"},
{:prom_ex, "~> 1.11.0"},
{:sobelow, "~> 0.14", only: [:dev, :test], runtime: false},
{:telemetry_metrics, "~> 1.1.0"},
{:telemetry_poller, "~> 1.3.0"}
]
end

View File

@@ -1,46 +1,59 @@
%{
"absinthe": {:hex, :absinthe, "1.7.0", "36819e7b1fd5046c9c734f27fe7e564aed3bda59f0354c37cd2df88fd32dd014", [:mix], [{:dataloader, "~> 1.0.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0 or ~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "566a5b5519afc9b29c4d367f0c6768162de3ec03e9bf9916f9dc2bcbe7c09643"},
"absinthe_plug": {:hex, :absinthe_plug, "1.5.8", "38d230641ba9dca8f72f1fed2dfc8abd53b3907d1996363da32434ab6ee5d6ab", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bbb04176647b735828861e7b2705465e53e2cf54ccf5a73ddd1ebd855f996e5a"},
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"},
"castore": {:hex, :castore, "0.1.16", "2675f717adc700475345c5512c381ef9273eb5df26bdd3f8c13e2636cf4cc175", [:mix], [], "hexpm", "28ed2c43d83b5c25d35c51bc0abf229ac51359c170cba76171a462ced2e4b651"},
"connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"},
"cowboy": {:hex, :cowboy, "2.9.0", "865dd8b6607e14cf03282e10e934023a1bd8be6f6bacf921a7e2a96d800cd452", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "2c729f934b4e1aa149aff882f57c6372c15399a20d54f65c8d67bef583021bde"},
"absinthe": {:hex, :absinthe, "1.7.10", "b33471b593260f148d05e4d771d1857e07b70a680f89cfa75184098bef4ec893", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ffda95735364c041a65a4b0e02ffb04eabb1e52ab664fa7eeecefb341449e8c2"},
"absinthe_plug": {:git, "https://github.com/absinthe-graphql/absinthe_plug.git", "24ec7aa3b513c7c1aa79e5cad1197cb138603972", [ref: "24ec7aa3b513c7c1aa79e5cad1197cb138603972"]},
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
"castore": {:hex, :castore, "1.0.14", "4582dd7d630b48cf5e1ca8d3d42494db51e406b7ba704e81fbd401866366896a", [:mix], [], "hexpm", "7bc1b65249d31701393edaaac18ec8398d8974d52c647b7904d01b964137b9f4"},
"cowboy": {:hex, :cowboy, "2.13.0", "09d770dd5f6a22cc60c071f432cd7cb87776164527f205c5a6b0f24ff6b38990", [:make, :rebar3], [{:cowlib, ">= 2.14.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "e724d3a70995025d654c1992c7b11dbfea95205c047d86ff9bf1cda92ddc5614"},
"cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"},
"cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"},
"credo": {:hex, :credo, "1.6.4", "ddd474afb6e8c240313f3a7b0d025cc3213f0d171879429bf8535d7021d9ad78", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "c28f910b61e1ff829bffa056ef7293a8db50e87f2c57a9b5c3f57eee124536b7"},
"cowlib": {:hex, :cowlib, "2.15.0", "3c97a318a933962d1c12b96ab7c1d728267d2c523c25a5b57b0f93392b6e9e25", [:make, :rebar3], [], "hexpm", "4f00c879a64b4fe7c8fcb42a4281925e9ffdb928820b03c3ad325a617e857532"},
"credo": {:hex, :credo, "1.7.12", "9e3c20463de4b5f3f23721527fcaf16722ec815e70ff6c60b86412c695d426c1", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8493d45c656c5427d9c729235b99d498bd133421f3e0a683e5c1b561471291e5"},
"crudry": {:hex, :crudry, "2.4.0", "d175f1a8ee44456e852ae6b4d75997642a3e2a9f62ac28e4736656856c80dff5", [:mix], [{:absinthe, ">= 1.4.0", [hex: :absinthe, repo: "hexpm", optional: false]}, {:ecto, ">= 3.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:gettext, ">= 0.0.0", [hex: :gettext, repo: "hexpm", optional: false]}], "hexpm", "a14150b3f82e060e602d67f2c52c6195f0fefb49aee7d226d68dc3b83b8f58dc"},
"db_connection": {:hex, :db_connection, "2.4.2", "f92e79aff2375299a16bcb069a14ee8615c3414863a6fef93156aee8e86c2ff3", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4fe53ca91b99f55ea249693a0229356a08f4d1a7931d8ffa79289b145fe83668"},
"decimal": {:hex, :decimal, "1.9.0", "83e8daf59631d632b171faabafb4a9f4242c514b0a06ba3df493951c08f64d07", [:mix], [], "hexpm", "b1f2343568eed6928f3e751cf2dffde95bfaa19dd95d09e8a9ea92ccfd6f7d85"},
"dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"},
"ecto": {:hex, :ecto, "3.7.2", "44c034f88e1980754983cc4400585970b4206841f6f3780967a65a9150ef09a8", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a600da5772d1c31abbf06f3e4a1ffb150e74ed3e2aa92ff3cee95901657a874e"},
"ecto_sql": {:hex, :ecto_sql, "3.7.2", "55c60aa3a06168912abf145c6df38b0295c34118c3624cf7a6977cd6ce043081", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.4.0 or ~> 0.5.0 or ~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0 or ~> 0.16.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3c218ea62f305dcaef0b915fb56583195e7b91c91dcfb006ba1f669bfacbff2a"},
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
"finch": {:hex, :finch, "0.10.2", "9ad27d68270d879f73f26604bb2e573d40f29bf0e907064a9a337f90a16a0312", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dd8b11b282072cec2ef30852283949c248bd5d2820c88d8acc89402b81db7550"},
"gettext": {:hex, :gettext, "0.19.1", "564953fd21f29358e68b91634799d9d26989f8d039d7512622efb3c3b1c97892", [:mix], [], "hexpm", "10c656c0912b8299adba9b061c06947511e3f109ab0d18b44a866a4498e77222"},
"hpax": {:hex, :hpax, "0.1.1", "2396c313683ada39e98c20a75a82911592b47e5c24391363343bde74f82396ca", [:mix], [], "hexpm", "0ae7d5a0b04a8a60caf7a39fcf3ec476f35cc2cc16c05abea730d3ce6ac6c826"},
"jason": {:hex, :jason, "1.3.0", "fa6b82a934feb176263ad2df0dbd91bf633d4a46ebfdffea0c8ae82953714946", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "53fc1f51255390e0ec7e50f9cb41e751c260d065dcba2bf0d08dc51a4002c2ac"},
"junit_formatter": {:hex, :junit_formatter, "3.3.1", "c729befb848f1b9571f317d2fefa648e9d4869befc4b2980daca7c1edc468e40", [:mix], [], "hexpm", "761fc5be4b4c15d8ba91a6dafde0b2c2ae6db9da7b8832a55b5a1deb524da72b"},
"lcov_ex": {:hex, :lcov_ex, "0.2.0", "4ae06fc23e7dc7f06cddabf44b97901bb4a79cd7b783bce411d07131d6d5edd2", [:mix], [], "hexpm", "c5e33def56f9ae9de40171012c1c47fcbd4abaae430193aad4d4062a8d336970"},
"mime": {:hex, :mime, "2.0.2", "0b9e1a4c840eafb68d820b0e2158ef5c49385d17fb36855ac6e7e087d4b1dcc5", [:mix], [], "hexpm", "e6a3f76b4c277739e36c2e21a2c640778ba4c3846189d5ab19f97f126df5f9b7"},
"mint": {:hex, :mint, "1.4.1", "49b3b6ea35a9a38836d2ad745251b01ca9ec062f7cb66f546bf22e6699137126", [:mix], [{:castore, "~> 0.1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "cd261766e61011a9079cccf8fa9d826e7a397c24fbedf0e11b49312bea629b58"},
"nimble_options": {:hex, :nimble_options, "0.4.0", "c89babbab52221a24b8d1ff9e7d838be70f0d871be823165c94dd3418eea728f", [:mix], [], "hexpm", "e6701c1af326a11eea9634a3b1c62b475339ace9456c1a23ec3bc9a847bca02d"},
"nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"},
"nimble_pool": {:hex, :nimble_pool, "0.2.6", "91f2f4c357da4c4a0a548286c84a3a28004f68f05609b4534526871a22053cde", [:mix], [], "hexpm", "1c715055095d3f2705c4e236c18b618420a35490da94149ff8b580a2144f653f"},
"pg_ranges": {:hex, :pg_ranges, "1.1.0", "cfac1ee59958213cd6b066cc8bb5d63f6af7f830fa05fc633f33ee5da7876c94", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto_sql, ">= 3.3.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "2750f923666f548572e73b1636066196d7bd47ea2c63a1ad2c31692d16fd8590"},
"phoenix": {:hex, :phoenix, "1.6.7", "f1de32418bbbcd471f4fe74d3860ee9c8e8c6c36a0ec173be8ff468a5d72ac90", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b354a4f11d9a2f3a380fb731042dae064f22d7aed8c7e7c024a2459f12994aad"},
"phoenix_ecto": {:hex, :phoenix_ecto, "4.4.0", "0672ed4e4808b3fbed494dded89958e22fb882de47a97634c0b13e7b0b5f7720", [:mix], [{:ecto, "~> 3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "09864e558ed31ee00bd48fcc1d4fc58ae9678c9e81649075431e69dbabb43cc1"},
"phoenix_html": {:hex, :phoenix_html, "3.2.0", "1c1219d4b6cb22ac72f12f73dc5fad6c7563104d083f711c3fcd8551a1f4ae11", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "36ec97ba56d25c0136ef1992c37957e4246b649d620958a1f9fa86165f8bc54f"},
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.6.5", "1495bb014be12c9a9252eca04b9af54246f6b5c1e4cd1f30210cd00ec540cf8e", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.3", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.17.7", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "ef4fa50dd78364409039c99cf6f98ab5209b4c5f8796c17f4db118324f0db852"},
"phoenix_live_view": {:hex, :phoenix_live_view, "0.17.9", "36b5aa812bc3ccd64c9630f6b3234d9ea21105493237e927aae19d0ba758f0db", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f7ebc3e0ba0c5f6b6996ed6c901ddbfdaba59a6d09b569e7cb2f2f7d693b4455"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"},
"phoenix_view": {:hex, :phoenix_view, "1.1.2", "1b82764a065fb41051637872c7bd07ed2fdb6f5c3bd89684d4dca6e10115c95a", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "7ae90ad27b09091266f6adbb61e1d2516a7c3d7062c6789d46a7554ec40f3a56"},
"plug": {:hex, :plug, "1.13.6", "187beb6b67c6cec50503e940f0434ea4692b19384d47e5fdfd701e93cadb4cc2", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "02b9c6b9955bce92c829f31d6284bf53c591ca63c4fb9ff81dfd0418667a34ff"},
"plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"},
"plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
"postgrex": {:hex, :postgrex, "0.16.2", "0f83198d0e73a36e8d716b90f45f3bde75b5eebf4ade4f43fa1f88c90a812f74", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "a9ea589754d9d4d076121090662b7afe155b374897a6550eb288f11d755acfa0"},
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
"telemetry": {:hex, :telemetry, "1.1.0", "a589817034a27eab11144ad24d5c0f9fab1f58173274b1e9bae7074af9cbee51", [], [], "hexpm", "b727b2a1f75614774cff2d7565b64d0dfa5bd52ba517f16543e6fc7efcc0df48"},
"telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"},
"telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"},
"db_connection": {:hex, :db_connection, "2.8.0", "64fd82cfa6d8e25ec6660cea73e92a4cbc6a18b31343910427b702838c4b33b2", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "008399dae5eee1bf5caa6e86d204dcb44242c82b1ed5e22c881f2c34da201b15"},
"decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"},
"dialyxir": {:hex, :dialyxir, "1.4.5", "ca1571ac18e0f88d4ab245f0b60fa31ff1b12cbae2b11bd25d207f865e8ae78a", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b0fb08bb8107c750db5c0b324fa2df5ceaa0f9307690ee3c1f6ba5b9eb5d35c3"},
"dns_cluster": {:hex, :dns_cluster, "0.2.0", "aa8eb46e3bd0326bd67b84790c561733b25c5ba2fe3c7e36f28e88f384ebcb33", [:mix], [], "hexpm", "ba6f1893411c69c01b9e8e8f772062535a4cf70f3f35bcc964a324078d8c8240"},
"ecto": {:hex, :ecto, "3.13.2", "7d0c0863f3fc8d71d17fc3ad3b9424beae13f02712ad84191a826c7169484f01", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "669d9291370513ff56e7b7e7081b7af3283d02e046cf3d403053c557894a0b3e"},
"ecto_sql": {:hex, :ecto_sql, "3.13.2", "a07d2461d84107b3d037097c822ffdd36ed69d1cf7c0f70e12a3d1decf04e2e1", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.13.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.19 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "539274ab0ecf1a0078a6a72ef3465629e4d6018a3028095dc90f60a19c371717"},
"erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"},
"expo": {:hex, :expo, "1.1.0", "f7b9ed7fb5745ebe1eeedf3d6f29226c5dd52897ac67c0f8af62a07e661e5c75", [:mix], [], "hexpm", "fbadf93f4700fb44c331362177bdca9eeb8097e8b0ef525c9cc501cb9917c960"},
"file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"},
"finch": {:hex, :finch, "0.19.0", "c644641491ea854fc5c1bbaef36bfc764e3f08e7185e1f084e35e0672241b76d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fc5324ce209125d1e2fa0fcd2634601c52a787aff1cd33ee833664a5af4ea2b6"},
"gettext": {:hex, :gettext, "0.26.2", "5978aa7b21fada6deabf1f6341ddba50bc69c999e812211903b169799208f2a8", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "aa978504bcf76511efdc22d580ba08e2279caab1066b76bb9aa81c4a1e0a32a5"},
"hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"},
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
"junit_formatter": {:hex, :junit_formatter, "3.4.0", "d0e8db6c34dab6d3c4154c3b46b21540db1109ae709d6cf99ba7e7a2ce4b1ac2", [:mix], [], "hexpm", "bb36e2ae83f1ced6ab931c4ce51dd3dbef1ef61bb4932412e173b0cfa259dacd"},
"lcov_ex": {:hex, :lcov_ex, "0.3.4", "f48aed787db0d1cff1409db391f442cdbc0af0f860dbc326430030027e6ded36", [:mix], [], "hexpm", "c3987b6aeadd78d4b7933fa9cc4de3bd69d34f0fae39bad908f79a7ceea957e5"},
"mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"},
"mint": {:hex, :mint, "1.7.1", "113fdb2b2f3b59e47c7955971854641c61f378549d73e829e1768de90fc1abf1", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "fceba0a4d0f24301ddee3024ae116df1c3f4bb7a563a731f45fdfeb9d39a231b"},
"mix_audit": {:hex, :mix_audit, "2.1.5", "c0f77cee6b4ef9d97e37772359a187a166c7a1e0e08b50edf5bf6959dfe5a016", [:make, :mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:yaml_elixir, "~> 2.11", [hex: :yaml_elixir, repo: "hexpm", optional: false]}], "hexpm", "87f9298e21da32f697af535475860dc1d3617a010e0b418d2ec6142bc8b42d69"},
"nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"},
"nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},
"nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"},
"octo_fetch": {:hex, :octo_fetch, "0.4.0", "074b5ecbc08be10b05b27e9db08bc20a3060142769436242702931c418695b19", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "cf8be6f40cd519d7000bb4e84adcf661c32e59369ca2827c4e20042eda7a7fc6"},
"peep": {:hex, :peep, "3.5.0", "9f6ead7b0f2c684494200c8fc02e7e62e8c459afe861b29bd859e4c96f402ed8", [:mix], [{:nimble_options, "~> 1.1", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:plug, "~> 1.16", [hex: :plug, repo: "hexpm", optional: true]}, {:telemetry_metrics, "~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "5a73a99c6e60062415efeb7e536a663387146463a3d3df1417da31fd665ac210"},
"pg_ranges": {:hex, :pg_ranges, "1.1.1", "304da41118282eb81ffaefc3195e379afe139867fdc5171626aec9c83d360537", [:mix], [{:decimal, "~> 2.1", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.11", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "d49c28628c2276d4964f0ced6cc8c140a62af6eeb05c1b86a23afed8b3a5db8c"},
"phoenix": {:hex, :phoenix, "1.7.21", "14ca4f1071a5f65121217d6b57ac5712d1857e40a0833aff7a691b7870fc9a3b", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "336dce4f86cba56fed312a7d280bf2282c720abb6074bdb1b61ec8095bdd0bc9"},
"phoenix_ecto": {:hex, :phoenix_ecto, "4.6.5", "c4ef322acd15a574a8b1a08eff0ee0a85e73096b53ce1403b6563709f15e1cea", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "26ec3208eef407f31b748cadd044045c6fd485fbff168e35963d2f9dfff28d4b"},
"phoenix_html": {:hex, :phoenix_html, "4.2.1", "35279e2a39140068fc03f8874408d58eef734e488fc142153f055c5454fd1c08", [:mix], [], "hexpm", "cff108100ae2715dd959ae8f2a8cef8e20b593f8dfd031c9cba92702cf23e053"},
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.7", "405880012cb4b706f26dd1c6349125bfc903fb9e44d1ea668adaf4e04d4884b7", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "3a8625cab39ec261d48a13b7468dc619c0ede099601b084e343968309bd4d7d7"},
"phoenix_live_view": {:hex, :phoenix_live_view, "1.0.17", "beeb16d83a7d3760f7ad463df94e83b087577665d2acc0bf2987cd7d9778068f", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0 or ~> 1.8.0-rc", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a4ca05c1eb6922c4d07a508a75bfa12c45e5f4d8f77ae83283465f02c53741e1"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
"phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"},
"phoenix_view": {:hex, :phoenix_view, "2.0.4", "b45c9d9cf15b3a1af5fb555c674b525391b6a1fe975f040fb4d913397b31abf4", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}], "hexpm", "4e992022ce14f31fe57335db27a28154afcc94e9983266835bb3040243eb620b"},
"plug": {:hex, :plug, "1.18.0", "d78df36c41f7e798f2edf1f33e1727eae438e9dd5d809a9997c463a108244042", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "819f9e176d51e44dc38132e132fe0accaf6767eab7f0303431e404da8476cfa2"},
"plug_cowboy": {:hex, :plug_cowboy, "2.7.4", "729c752d17cf364e2b8da5bdb34fb5804f56251e88bb602aff48ae0bd8673d11", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "9b85632bd7012615bae0a5d70084deb1b25d2bcbb32cab82d1e9a1e023168aa3"},
"plug_crypto": {:hex, :plug_crypto, "2.1.1", "19bda8184399cb24afa10be734f84a16ea0a2bc65054e23a62bb10f06bc89491", [:mix], [], "hexpm", "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"},
"postgrex": {:hex, :postgrex, "0.20.0", "363ed03ab4757f6bc47942eff7720640795eb557e1935951c1626f0d303a3aed", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "d36ef8b36f323d29505314f704e21a1a038e2dc387c6409ee0cd24144e187c0f"},
"prom_ex": {:hex, :prom_ex, "1.11.0", "1f6d67f2dead92224cb4f59beb3e4d319257c5728d9638b4a5e8ceb51a4f9c7e", [:mix], [{:absinthe, ">= 1.7.0", [hex: :absinthe, repo: "hexpm", optional: true]}, {:broadway, ">= 1.1.0", [hex: :broadway, repo: "hexpm", optional: true]}, {:ecto, ">= 3.11.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:finch, "~> 0.18", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:oban, ">= 2.10.0", [hex: :oban, repo: "hexpm", optional: true]}, {:octo_fetch, "~> 0.4", [hex: :octo_fetch, repo: "hexpm", optional: false]}, {:peep, "~> 3.0", [hex: :peep, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.7.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_live_view, ">= 0.20.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:plug, ">= 1.16.0", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 2.6.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, ">= 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}, {:telemetry_metrics_prometheus_core, "~> 1.2", [hex: :telemetry_metrics_prometheus_core, repo: "hexpm", optional: false]}, {:telemetry_poller, "~> 1.1", [hex: :telemetry_poller, repo: "hexpm", optional: false]}], "hexpm", "76b074bc3730f0802978a7eb5c7091a65473eaaf07e99ec9e933138dcc327805"},
"ranch": {:hex, :ranch, "2.2.0", "25528f82bc8d7c6152c57666ca99ec716510fe0925cb188172f41ce93117b1b0", [:make, :rebar3], [], "hexpm", "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"},
"sobelow": {:hex, :sobelow, "0.14.0", "dd82aae8f72503f924fe9dd97ffe4ca694d2f17ec463dcfd365987c9752af6ee", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "7ecf91e298acfd9b24f5d761f19e8f6e6ac585b9387fb6301023f1f2cd5eed5f"},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"},
"telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"},
"telemetry_metrics": {:hex, :telemetry_metrics, "1.1.0", "5bd5f3b5637e0abea0426b947e3ce5dd304f8b3bc6617039e2b5a008adc02f8f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "e7b79e8ddfde70adb6db8a6623d1778ec66401f366e9a8f5dd0955c56bc8ce67"},
"telemetry_metrics_prometheus_core": {:hex, :telemetry_metrics_prometheus_core, "1.2.1", "c9755987d7b959b557084e6990990cb96a50d6482c683fb9622a63837f3cd3d8", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "5e2c599da4983c4f88a33e9571f1458bf98b0cf6ba930f1dc3a6e8cf45d5afb6"},
"telemetry_poller": {:hex, :telemetry_poller, "1.3.0", "d5c46420126b5ac2d72bc6580fb4f537d35e851cc0f8dbd571acf6d6e10f5ec7", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "51f18bed7128544a50f75897db9974436ea9bfba560420b646af27a9a9b35211"},
"websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"},
"websock_adapter": {:hex, :websock_adapter, "0.5.8", "3b97dc94e407e2d1fc666b2fb9acf6be81a1798a2602294aac000260a7c4a47d", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "315b9a1865552212b5f35140ad194e67ce31af45bcee443d4ecb96b5fd3f3782"},
"yamerl": {:hex, :yamerl, "0.10.0", "4ff81fee2f1f6a46f1700c0d880b24d193ddb74bd14ef42cb0bcf46e81ef2f8e", [:rebar3], [], "hexpm", "346adb2963f1051dc837a2364e4acf6eb7d80097c0f53cbdc3046ec8ec4b4e6e"},
"yaml_elixir": {:hex, :yaml_elixir, "2.11.0", "9e9ccd134e861c66b84825a3542a1c22ba33f338d82c07282f4f1f52d847bd50", [:mix], [{:yamerl, "~> 0.10", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "53cc28357ee7eb952344995787f4bb8cc3cecbf189652236e9b163e8ce1bc242"},
}

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env bash
elixir --name ${HOSTNAME}@$(hostname -i | cut -d ' ' -f1) --cookie ${1} -S mix phx.server

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env bash
iex --name ex_trainer_remote@127.0.0.1 --hidden --cookie local-cookie --remsh ${HOSTNAME}@$(hostname -i | cut -d ' ' -f1)

5
rel/overlays/bin/migrate Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -eu
cd -P -- "$(dirname -- "$0")"
exec ./wabanex eval Wabanex.Release.migrate

1
rel/overlays/bin/migrate.bat Executable file
View File

@@ -0,0 +1 @@
call "%~dp0\wabanex" eval Wabanex.Release.migrate

5
rel/overlays/bin/server Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -eu
cd -P -- "$(dirname -- "$0")"
PHX_SERVER=true exec ./wabanex start

2
rel/overlays/bin/server.bat Executable file
View File

@@ -0,0 +1,2 @@
set PHX_SERVER=true
call "%~dp0\wabanex" start

View File

@@ -11,6 +11,7 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRangeTest do
import_types Types.Custom.DateRange
query do
field :everything, :string, resolve: fn _, _, _ -> "is awesome" end
end
end
@@ -28,6 +29,7 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRangeTest do
test "serialize a list of dates as a list of ISO8601 date strings" do
assert "1978-12-15,1980-02-13" == serialize(:date_range, [~D[1978-12-15], ~D[1980-02-13]])
assert "1978-12-15," == serialize(:date_range, [~D[1978-12-15], nil])
assert "1978-12-15," == serialize(:date_range, [~D[1978-12-15], :unbound])
end
test "serialize a postgres range as a list of ISO8601 date strings" do
@@ -35,6 +37,7 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRangeTest do
serialize(:date_range, DateRange.new(~D[1978-12-15], ~D[1980-02-13]))
assert "1978-12-15," == serialize(:date_range, DateRange.new(~D[1978-12-15], nil))
assert "1978-12-15," == serialize(:date_range, DateRange.new(~D[1978-12-15], :unbound))
end
test "can be parsed from a string of ISO8601" do