27 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
49bafee50c chore: upgrade all deps (#2)
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Upgrade dependencies to their latest versions.
2022-04-21 23:29:43 +00:00
Joao P Dubas
585ffc122e [extra-02] enable coverage tool
Even though ExCoveralls is the common library for coverage report in
elixir, we will use LcovEx because it generates lcov compatible reports
that can be used with some interesting actions in github.
2021-07-07 00:41:20 +00:00
Joao P Dubas
cd2f062ef5 [extra-02] install and configure junit formatter
With this change it's possible to generate test report that can be used
alongside continuous integration routine.
2021-07-06 01:12:25 +00:00
Joao P Dubas
e493aead51 [extra-02] add code analysis deps
Add credo and dialyxr to check code analysis/quality.
2021-06-28 13:55:55 +00:00
Joao P Dubas
553eca56df [extra-01] add pg_ranges lib
This allow the system to use postgres range type.
2021-06-28 00:31:28 +00:00
Joao P Dubas
179bd7f85d [day-04] add crudry to handle absinthe errors 2021-06-26 17:26:53 +00:00
Joao P Dubas
424bfa917e [day-03] install absinthe dependency
Yeah, it's time to work with graphql in elixir.
2021-06-24 00:03:34 +00:00
Joao P Dubas
8658384030 [day-01] phoenix project setup
Create new phoenix project
2021-06-22 01:55:16 +00:00