Skip to content

Commit 47729d7

Browse files
authored
Merge pull request #4 from elixir-lang/de-umbrella
[chore] Removed umbrella application
2 parents 387e079 + 104e096 commit 47729d7

File tree

47 files changed

+355
-141
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+355
-141
lines changed

.github/workflows/elixir.yml

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,38 @@ jobs:
4747
uses: actions/cache@v3
4848
with:
4949
path: |
50-
deps
51-
_build
50+
apps/**/deps
51+
apps/**/_build
5252
53-
key: ${{ runner.os }}-mix-${{ env.DEFAULT_ELIXIR }}-${{ env.DEFAULT_OTP }}-${{ hashFiles('**/mix.lock') }}
53+
key: ${{ runner.os }}-mix-${{ env.DEFAULT_ELIXIR }}-${{ env.DEFAULT_OTP }}-${{ hashFiles('apps/**/mix.lock') }}
5454
restore-keys: |
5555
${{ runner.os }}-mix-${{ env.DEFAULT_ELIXIR }}-${{ env.DEFAULT_OTP }}-
5656
5757
# Step: Download project dependencies. If unchanged, uses
5858
# the cached version.
5959
- name: Install and compile dependencies
6060
run: |
61-
mix deps.get
62-
mix deps.compile --skip-umbrella-children
61+
make deps.poncho
62+
make deps.compile.poncho
6363
6464
- name: Compile and don't let warnings through
65-
run: mix compile --warnings-as-errors
65+
run: make compile.poncho
6666

6767
# Step: Check that the checked in code has already been formatted.
6868
# This step fails if something was found unformatted.
6969
# Customize this step as desired.
7070
- name: Check Formatting
71-
run: mix format --check-formatted
71+
run: MIX_ENV=dev mix format --check-formatted
7272

7373
# Step: Run credo static code analysis
7474
- name: Credo static analysis
75-
run: mix credo
75+
run: make credo.check.poncho
7676

7777
dialyzer:
7878
runs-on: ubuntu-latest
7979
name: Run Dialyzer
8080
env:
81-
project_mix_lock: ${{ format('{0}{1}', github.workspace, '/mix.lock') }}
82-
projects_ex_blob: ${{ format('{0}{1}', github.workspace, '/projects/**/*.ex') }}
83-
projects_locks_blob: ${{ format('{0}{1}', github.workspace, '/projects/*/mix.lock') }}
81+
apps_mix_lock: ${{ format('{0}{1}', github.workspace, 'apps/**/mix.lock') }}
8482
MIX_ENV: dev
8583
steps:
8684
# Step: Setup Elixir + Erlang image as the base.
@@ -95,13 +93,6 @@ jobs:
9593
- name: Checkout code
9694
uses: actions/checkout@v4
9795

98-
- name: Set Variables
99-
id: set_mix_lock_hash
100-
run: |
101-
mix_lock_hash="${{ hashFiles(env.project_mix_lock) }}"
102-
projects_hash="${{ hashFiles(env.projects_ex_blob, env.projects_locks_blob) }}"
103-
echo "mix_lock_hash=$mix_lock_hash::$projects_hash" >> "$GITHUB_OUTPUT"
104-
10596
# Step: Define how to cache deps. Restores existing cache if present.
10697
- name: Cache deps
10798
id: cache-deps
@@ -110,10 +101,10 @@ jobs:
110101
cache-name: cache-elixir-deps-1
111102
with:
112103
path: |
113-
deps
114-
_build
104+
apps/**/deps
105+
apps/**/_build
115106
116-
key: ${{ runner.os }}-mix-${{ env.DEFAULT_ELIXIR }}-${{ env.DEFAULT_OTP }}-${{ hashFiles('**/mix.lock') }}
107+
key: ${{ runner.os }}-mix-${{ env.DEFAULT_ELIXIR }}-${{ env.DEFAULT_OTP }}-${{ hashFiles('apps/**/mix.lock') }}
117108
restore-keys: |
118109
${{ runner.os }}-mix-${{ env.DEFAULT_ELIXIR }}-${{ env.DEFAULT_OTP }}-
119110
@@ -123,7 +114,10 @@ jobs:
123114
uses: actions/cache@v3
124115
with:
125116
path: "priv/plts"
126-
key: lexical-plts-2-${{ env.DEFAULT_OTP }}-${{ env.DEFAULT_ELIXIR }}-${{ steps.set_mix_lock_hash.outputs.mix_lock_hash }}
117+
key: lexical-plts-2-${{ env.DEFAULT_OTP }}-${{ env.DEFAULT_ELIXIR }}-${{ hashFiles('apps/**/mix.lock' ) }}-${{ github.run_id }}
118+
restore-keys: |
119+
lexical-plts-2-${{ env.DEFAULT_OTP }}-${{ env.DEFAULT_ELIXIR }}-${{ hashFiles('apps/**/mix.lock') }}-
120+
lexical-plts-2-${{ env.DEFAULT_OTP }}-${{ env.DEFAULT_ELIXIR }}-
127121
128122
# Step: Download project dependencies. If unchanged, uses
129123
# the cached version.
@@ -194,17 +188,17 @@ jobs:
194188
uses: actions/cache@v3
195189
with:
196190
path: |
197-
deps
198-
_build
191+
apps/**/deps
192+
apps/**/_build
199193
200-
key: ${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-${{ hashFiles('**/mix.lock') }}
194+
key: ${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-${{ hashFiles('apps/**/mix.lock') }}
201195
restore-keys: |
202196
${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-
203197
204198
# Step: Download project dependencies. If unchanged, uses
205199
# the cached version.
206200
- name: Install and compile the app
207-
run: make compile.all
201+
run: make compile.poncho
208202

209203
# Step: Execute the tests.
210204
- name: Run tests

Makefile

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,41 @@
1-
dialyzer_dirs = lexical_shared lexical_plugin
1+
poncho_dirs = common lexical_credo proto protocol remote_control server
22

3-
compile.all: compile.umbrella
3+
dialyzer_dirs= lexical_shared lexical_plugin
44

5-
dialyzer.all: compile.all dialyzer.umbrella
5+
compile.all: compile.poncho
66

7-
test.all: test.umbrella
7+
dialyzer.all: compile.poncho dialyzer.poncho
88

9-
dialyzer.plt.all: dialyzer.plt.umbrella
9+
test.all: test.poncho
1010

11-
dialyzer.umbrella:
12-
mix dialyzer
11+
dialyzer.plt.all: dialyzer.plt.poncho
1312

14-
dialyzer.plt.umbrella:
15-
mix dialyzer --plt
13+
env.test:
14+
export MIX_ENV=test
1615

17-
test.umbrella:
18-
mix test
16+
deps.poncho:
17+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix deps.get && cd ../..;)
1918

20-
compile.umbrella:
21-
mix deps.get
22-
mix compile --skip-umbrella-children --warnings-as-errors
19+
deps.compile.poncho: deps.poncho
20+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix deps.compile && cd ../..;)
2321

22+
compile.poncho: deps.poncho
23+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix deps.get && mix compile --warnings-as-errors && cd ../..;)
2424

25+
compile.protocols.poncho: deps.poncho
26+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix deps.get && mix compile.protocols --warnings-as-errors && cd ../..;)
27+
28+
test.poncho: deps.poncho
29+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && MIX_ENV=test mix test && cd ../..;)
30+
31+
format.check.poncho: env.test deps.poncho
32+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix format --check-formatted && cd ../..;)
33+
34+
credo.check.poncho: deps.poncho
35+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix credo && cd ../..;)
36+
37+
dialyzer.plt.poncho:
38+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix dialyzer --plt && cd ../..;)
39+
40+
dialyzer.poncho: compile.poncho compile.protocols.poncho
41+
$(foreach dir, $(poncho_dirs), cd apps/$(dir) && mix dialyzer && cd ../..;)

apps/common/.credo.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Code.require_file("../../mix_credo.exs")
2+
3+
Mix.Credo.config(excluded: ["lib/future/**/*.ex"])

config/config.exs renamed to apps/common/config/config.exs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,3 @@ config :snowflake,
44
machine_id: 1,
55
# First second of 2024
66
epoch: 1_704_070_800_000
7-
8-
import_config("#{Mix.env()}.exs")

apps/common/mix.exs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
defmodule Common.MixProject do
22
use Mix.Project
3+
Code.require_file("../../mix_includes.exs")
34

45
def project do
56
[
67
app: :common,
78
version: "0.7.2",
8-
build_path: "../../_build",
9-
config_path: "../../config/config.exs",
10-
deps_path: "../../deps",
11-
lockfile: "../../mix.lock",
129
elixir: "~> 1.13",
1310
elixirc_paths: elixirc_paths(Mix.env()),
1411
start_permanent: Mix.env() == :prod,
1512
deps: deps(),
16-
compilers: [:yecc] ++ Mix.compilers()
13+
compilers: [:yecc] ++ Mix.compilers(),
14+
dialyzer: Mix.Dialyzer.config()
1715
]
1816
end
1917

@@ -33,6 +31,9 @@ defmodule Common.MixProject do
3331

3432
defp deps do
3533
[
34+
{:benchee, "~> 1.3", only: :test},
35+
Mix.Credo.dependency(),
36+
Mix.Dialyzer.dependency(),
3637
{:snowflake, "~> 1.0"},
3738
{:sourceror, "~> 1.7"},
3839
{:stream_data, "~> 1.1", only: [:test], runtime: false},

apps/common/mix.lock

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
%{
2+
"benchee": {:hex, :benchee, "1.3.1", "c786e6a76321121a44229dde3988fc772bca73ea75170a73fd5f4ddf1af95ccf", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}, {:statistex, "~> 1.0", [hex: :statistex, repo: "hexpm", optional: false]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "76224c58ea1d0391c8309a8ecbfe27d71062878f59bd41a390266bf4ac1cc56d"},
3+
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
4+
"credo": {:hex, :credo, "1.7.11", "d3e805f7ddf6c9c854fd36f089649d7cf6ba74c42bc3795d587814e3c9847102", [: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", "56826b4306843253a66e47ae45e98e7d284ee1f95d53d1612bb483f88a8cf219"},
5+
"deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"},
6+
"dialyxir": {:hex, :dialyxir, "1.4.5", "ca1571ac18e0f88d4ab245f0b60fa31ff1b12cbae2b11bd25d207f865e8ae78a", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b0fb08bb8107c750db5c0b324fa2df5ceaa0f9307690ee3c1f6ba5b9eb5d35c3"},
7+
"erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"},
8+
"file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"},
9+
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
10+
"patch": {:hex, :patch, "0.15.0", "947dd6a8b24a2d2d1137721f20bb96a8feb4f83248e7b4ad88b4871d52807af5", [:mix], [], "hexpm", "e8dadf9b57b30e92f6b2b1ce2f7f57700d14c66d4ed56ee27777eb73fb77e58d"},
11+
"snowflake": {:hex, :snowflake, "1.0.4", "8433b4e04fbed19272c55e1b7de0f7a1ee1230b3ae31a813b616fd6ef279e87a", [:mix], [], "hexpm", "badb07ebb089a5cff737738297513db3962760b10fe2b158ae3bebf0b4d5be13"},
12+
"sourceror": {:hex, :sourceror, "1.7.1", "599d78f4cc2be7d55c9c4fd0a8d772fd0478e3a50e726697c20d13d02aa056d4", [:mix], [], "hexpm", "cd6f268fe29fa00afbc535e215158680a0662b357dc784646d7dff28ac65a0fc"},
13+
"statistex": {:hex, :statistex, "1.0.0", "f3dc93f3c0c6c92e5f291704cf62b99b553253d7969e9a5fa713e5481cd858a5", [:mix], [], "hexpm", "ff9d8bee7035028ab4742ff52fc80a2aa35cece833cf5319009b52f1b5a86c27"},
14+
"stream_data": {:hex, :stream_data, "1.1.3", "15fdb14c64e84437901258bb56fc7d80aaf6ceaf85b9324f359e219241353bfb", [:mix], [], "hexpm", "859eb2be72d74be26c1c4f272905667672a52e44f743839c57c7ee73a1a66420"},
15+
}

apps/lexical_credo/.credo.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Code.require_file("../../mix_credo.exs")
2+
3+
Mix.Credo.config()

apps/lexical_credo/mix.exs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
defmodule LexicalCredo.MixProject do
22
use Mix.Project
3-
3+
Code.require_file("../../mix_dialyzer.exs")
44
@repo_url "https://github.com/lexical-lsp/lexical/"
55
@version "0.5.0"
66

77
def project do
88
[
99
app: :lexical_credo,
1010
version: @version,
11-
build_path: "../../_build",
12-
config_path: "../../config/config.exs",
13-
deps_path: "../../deps",
14-
lockfile: "../../mix.lock",
1511
elixir: "~> 1.13",
1612
start_permanent: Mix.env() == :prod,
1713
deps: deps(),
18-
docs: docs()
14+
docs: docs(),
15+
dialyzer: Mix.Dialyzer.config(add_apps: [:jason])
1916
]
2017
end
2118

@@ -30,8 +27,9 @@ defmodule LexicalCredo.MixProject do
3027
# Run "mix help deps" to learn about dependencies.
3128
defp deps do
3229
[
33-
{:common, in_umbrella: true},
30+
{:common, path: "../common", env: Mix.env()},
3431
{:credo, "> 0.0.0", only: [:dev, :test]},
32+
Mix.Dialyzer.dependency(),
3533
{:jason, "> 0.0.0", optional: true},
3634
{:ex_doc, "~> 0.34", optional: true, only: [:dev, :hex]}
3735
]

apps/lexical_credo/mix.lock

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
%{
2+
"benchee": {:hex, :benchee, "1.3.1", "c786e6a76321121a44229dde3988fc772bca73ea75170a73fd5f4ddf1af95ccf", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}, {:statistex, "~> 1.0", [hex: :statistex, repo: "hexpm", optional: false]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "76224c58ea1d0391c8309a8ecbfe27d71062878f59bd41a390266bf4ac1cc56d"},
3+
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
4+
"credo": {:hex, :credo, "1.7.11", "d3e805f7ddf6c9c854fd36f089649d7cf6ba74c42bc3795d587814e3c9847102", [: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", "56826b4306843253a66e47ae45e98e7d284ee1f95d53d1612bb483f88a8cf219"},
5+
"deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"},
6+
"dialyxir": {:hex, :dialyxir, "1.4.5", "ca1571ac18e0f88d4ab245f0b60fa31ff1b12cbae2b11bd25d207f865e8ae78a", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b0fb08bb8107c750db5c0b324fa2df5ceaa0f9307690ee3c1f6ba5b9eb5d35c3"},
7+
"earmark_parser": {:hex, :earmark_parser, "1.4.43", "34b2f401fe473080e39ff2b90feb8ddfeef7639f8ee0bbf71bb41911831d77c5", [:mix], [], "hexpm", "970a3cd19503f5e8e527a190662be2cee5d98eed1ff72ed9b3d1a3d466692de8"},
8+
"erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"},
9+
"ex_doc": {:hex, :ex_doc, "0.37.2", "2a3aa7014094f0e4e286a82aa5194a34dd17057160988b8509b15aa6c292720c", [:mix], [{:earmark_parser, "~> 1.4.42", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "4dfa56075ce4887e4e8b1dcc121cd5fcb0f02b00391fd367ff5336d98fa49049"},
10+
"file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"},
11+
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
12+
"makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"},
13+
"makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"},
14+
"makeup_erlang": {:hex, :makeup_erlang, "1.0.2", "03e1804074b3aa64d5fad7aa64601ed0fb395337b982d9bcf04029d68d51b6a7", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"},
15+
"nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},
16+
"snowflake": {:hex, :snowflake, "1.0.4", "8433b4e04fbed19272c55e1b7de0f7a1ee1230b3ae31a813b616fd6ef279e87a", [:mix], [], "hexpm", "badb07ebb089a5cff737738297513db3962760b10fe2b158ae3bebf0b4d5be13"},
17+
"sourceror": {:hex, :sourceror, "1.7.1", "599d78f4cc2be7d55c9c4fd0a8d772fd0478e3a50e726697c20d13d02aa056d4", [:mix], [], "hexpm", "cd6f268fe29fa00afbc535e215158680a0662b357dc784646d7dff28ac65a0fc"},
18+
"statistex": {:hex, :statistex, "1.0.0", "f3dc93f3c0c6c92e5f291704cf62b99b553253d7969e9a5fa713e5481cd858a5", [:mix], [], "hexpm", "ff9d8bee7035028ab4742ff52fc80a2aa35cece833cf5319009b52f1b5a86c27"},
19+
"stream_data": {:hex, :stream_data, "1.1.3", "15fdb14c64e84437901258bb56fc7d80aaf6ceaf85b9324f359e219241353bfb", [:mix], [], "hexpm", "859eb2be72d74be26c1c4f272905667672a52e44f743839c57c7ee73a1a66420"},
20+
}

0 commit comments

Comments
 (0)