Resolving Hex dependencies... Resolution completed in 0.154s Unchanged: arke 0.6.0 arke_postgres 0.5.0 calendar 1.0.0 certifi 2.15.0 circular_buffer 1.0.0 combine 0.10.0 db_connection 2.9.0 decimal 2.3.0 ecto 3.11.2 ecto_sql 3.11.3 elixir_make 0.9.0 erlsom 1.5.2 expo 1.1.1 finch 0.21.0 gettext 0.26.2 google_api_storage 0.34.0 google_gax 0.4.1 goth 1.3.1 hackney 1.25.0 hpax 1.0.3 httpoison 2.3.0 idna 6.1.1 interactive_cmd 0.1.4 jason 1.4.4 jose 1.11.12 libcluster 3.5.0 metrics 1.0.1 mime 1.6.0 mimerl 1.5.0 mint 1.7.1 nerves 1.14.0 nerves_discovery 0.1.2 nerves_logging 0.2.4 nerves_runtime 0.13.12 nerves_system_bbb 2.29.3 nerves_system_br 1.33.5 nerves_system_grisp2 0.17.3 nerves_system_mangopi_mq_pro 0.15.3 nerves_system_osd32mp1 0.24.3 nerves_system_qemu_aarch64 0.3.3 nerves_system_rpi 2.0.2 nerves_system_rpi0 2.0.2 nerves_system_rpi0_2 2.0.2 nerves_system_rpi2 2.0.2 nerves_system_rpi3 2.0.2 nerves_system_rpi4 2.0.2 nerves_system_rpi5 2.0.2 nerves_system_x86_64 1.33.3 nerves_toolchain_aarch64_nerves_linux_gnu 13.2.0 nerves_toolchain_armv6_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_armv7_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_ctng 1.10.0 nerves_toolchain_riscv64_nerves_linux_gnu 13.2.0 nerves_toolchain_x86_64_nerves_linux_musl 13.2.0 nerves_uevent 0.1.5 nimble_options 1.1.1 nimble_pool 1.1.0 parse_trans 3.4.1 poison 4.0.1 postgrex 0.22.0 property_table 0.3.3 ring_logger 0.11.5 shoehorn 0.9.3 ssl_verify_fun 1.1.7 tablet 0.3.2 telemetry 1.4.1 tesla 1.17.0 timex 3.7.13 toolshed 0.4.2 typed_struct 0.2.1 tzdata 1.1.3 uboot_env 1.0.2 unicode_util_compat 0.7.1 uuid 1.1.8 xlsxir 1.6.4 All dependencies have been fetched ==> tablet Compiling 2 files (.ex) Generated tablet app ==> elixir_make Compiling 8 files (.ex) Generated elixir_make app ==> nerves_discovery Compiling 5 files (.ex) Generated nerves_discovery app ==> decimal Compiling 4 files (.ex) Generated decimal app ==> jason Compiling 10 files (.ex) Generated jason app ==> interactive_cmd Compiling 1 file (.ex) Generated interactive_cmd app ==> nerves HOST_CC port.o HOST_LD port Compiling 51 files (.ex) Generated nerves app ==> nerves_compatibility_test Nerves environment MIX_TARGET: mangopi_mq_pro MIX_ENV: prod Checking for prebuilt Nerves artifacts... Found nerves_system_mangopi_mq_pro in cache /home/nerves/.nerves/artifacts/nerves_system_mangopi_mq_pro-portable-0.15.3 Found nerves_toolchain_riscv64_nerves_linux_gnu in cache /home/nerves/.nerves/artifacts/nerves_toolchain_riscv64_nerves_linux_gnu-linux_aarch64-13.2.0 ==> nerves ==> nerves_toolchain_ctng Compiling 1 file (.ex) Generated nerves_toolchain_ctng app ==> nerves_toolchain_riscv64_nerves_linux_gnu Generated nerves_toolchain_riscv64_nerves_linux_gnu app ==> nerves_system_br Generated nerves_system_br app ==> nerves_system_mangopi_mq_pro Generated nerves_system_mangopi_mq_pro app ==> nerves_compatibility_test Nerves environment MIX_TARGET: mangopi_mq_pro MIX_ENV: prod ==> typed_struct Compiling 2 files (.ex) Generated typed_struct app ==> combine Compiling 6 files (.ex) Generated combine app ==> mime Compiling 2 files (.ex) Generated mime app ==> circular_buffer Compiling 1 file (.ex) Generated circular_buffer app ==> nimble_options Compiling 3 files (.ex) Generated nimble_options app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling erlsom ==> poison Compiling 4 files (.ex) warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 127 │ for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do │ ~ │ └─ lib/poison/encoder.ex:127:31 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 127 │ for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do │ ~ │ └─ lib/poison/encoder.ex:127:48 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 174 │ when char <= 0x1F or char in '"\\' do │ ~ │ └─ lib/poison/encoder.ex:174:37 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 94 │ when char in '-0123456789' do │ ~ │ └─ lib/poison/parser.ex:94:21 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 189 │ when char in '123456789' do │ ~ │ └─ lib/poison/parser.ex:189:21 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 205 │ defp number_exp(<> <> rest, frac, pos, acc) when e in 'eE' do │ ~ │ └─ lib/poison/parser.ex:205:60 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 238 │ when char in '0123456789' do │ ~ │ └─ lib/poison/parser.ex:238:21 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 246 │ defp number_digits_count(<> <> rest, acc) when char in '0123456789' do │ ~ │ └─ lib/poison/parser.ex:246:64 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 270 │ for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do │ ~ │ └─ lib/poison/parser.ex:270:31 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 270 │ for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do │ ~ │ └─ lib/poison/parser.ex:270:44 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 277 │ when a1 in 'dD' and a2 in 'dD' and b1 in '89abAB' and │ ~ │ └─ lib/poison/parser.ex:277:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 277 │ when a1 in 'dD' and a2 in 'dD' and b1 in '89abAB' and │ ~ │ └─ lib/poison/parser.ex:277:39 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 277 │ when a1 in 'dD' and a2 in 'dD' and b1 in '89abAB' and │ ~ │ └─ lib/poison/parser.ex:277:54 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 334 │ defp skip_whitespace(<> <> rest, pos) when char in '\s\n\t\r' do │ ~ │ └─ lib/poison/parser.ex:334:60 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead │ 42 │ if Application.get_env(:poison, :native) do │ ~ │ └─ lib/poison/parser.ex:42:18: Poison.Parser (module) warning: use Bitwise is deprecated. import Bitwise instead │ 46 │ use Bitwise │ ~~~~~~~~~~~ │ └─ lib/poison/parser.ex:46: Poison.Parser (module) warning: use Bitwise is deprecated. import Bitwise instead │ 117 │ use Bitwise │ ~~~~~~~~~~~ │ └─ lib/poison/encoder.ex:117: Poison.Encoder.BitString (module) Generated poison app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling mimerl ==> jose Compiling 113 files (.erl) Compiling 8 files (.ex) Generated jose app ==> ssl_verify_fun Compiling 7 files (.erl) Generated ssl_verify_fun app ==> nerves_logging CC kmsg_tailer.o LD kmsg_tailer Compiling 5 files (.ex) Generated nerves_logging app ==> xlsxir Compiling 14 files (.ex) warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 502 │ "#{column_from_index(col_index + 1, '')}#{line}" │ ~ │ └─ lib/xlsxir.ex:502:41 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 20 │ def from_charlist('0'), do: {0, 0, 0} │ ~ │ └─ lib/xlsxir/convert_datetime.ex:20:21 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 25 │ def sax_event_handler({:startElement,_,'si',_,_}, %__MODULE__{tid: tid, index: index}), do: %__MODULE__{tid: tid, index: index} │ ~ │ └─ lib/xlsxir/parse_string.ex:25:42 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 27 │ def sax_event_handler({:startElement,_,'family',_,_}, state) do │ ~ │ └─ lib/xlsxir/parse_string.ex:27:42 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 37 │ def sax_event_handler({:endElement,_,'si',_}, │ ~ │ └─ lib/xlsxir/parse_string.ex:37:40 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 56 │ def sax_event_handler({:startElement, _, 'cellXfs', _, _}, state) do │ ~ │ └─ lib/xlsxir/parse_style.ex:56:44 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 60 │ def sax_event_handler({:endElement, _, 'cellXfs', _}, state) do │ ~ │ └─ lib/xlsxir/parse_style.ex:60:42 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 65 │ {:startElement, _, 'xf', _, xml_attr}, │ ~ │ └─ lib/xlsxir/parse_style.ex:65:28 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 72 │ {:attribute, 'numFmtId', _, _, _} -> true │ ~ │ └─ lib/xlsxir/parse_style.ex:72:26 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 84 │ {:startElement, _, 'numFmt', _, xml_attr}, │ ~ │ └─ lib/xlsxir/parse_style.ex:84:28 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 90 │ {:attribute, 'numFmtId', _, _, id} -> Map.put(acc, :id, id) │ ~ │ └─ lib/xlsxir/parse_style.ex:90:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 91 │ {:attribute, 'formatCode', _, _, cd} -> Map.put(acc, :cd, cd) │ ~ │ └─ lib/xlsxir/parse_style.ex:91:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 109 │ i when i in @date -> :ets.insert(tid, {index + acc, 'd'}) │ ~ │ └─ lib/xlsxir/parse_style.ex:109:63 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 126 │ String.match?(to_string(v), ~r/[dhmsy]/i) -> Map.put_new(acc, k, 'd') │ ~ │ └─ lib/xlsxir/parse_style.ex:126:74 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 15 │ def sax_event_handler({:startElement, _, 'sheet', _, xml_attrs}, state) do │ ~ │ └─ lib/xlsxir/parse_workbook.ex:15:44 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 19 │ {:attribute, 'name', _, _, name} -> │ ~ │ └─ lib/xlsxir/parse_workbook.ex:19:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 22 │ {:attribute, 'sheetId', _, _, sheet_id} -> │ ~ │ └─ lib/xlsxir/parse_workbook.ex:22:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 26 │ {:attribute, 'id', _, _, rid} -> │ ~ │ └─ lib/xlsxir/parse_workbook.ex:26:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 58 │ {:startElement, _, 'row', _, _}, │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:58:28 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 66 │ def sax_event_handler({:startElement, _, 'c', _, xml_attr}, state, %{styles: styles_tid}, _) do │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:66:44 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 70 │ {:attribute, 'r', _, _, ref} -> {:r, ref} │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:70:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 71 │ {:attribute, 's', _, _, style} -> {:s, find_styles(styles_tid, List.to_integer(style))} │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:71:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 72 │ {:attribute, 't', _, _, type} -> {:t, type} │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:72:24 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 89 │ def sax_event_handler({:startElement, _, 'f', _, _}, state, _, _) do │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:89:44 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 93 │ def sax_event_handler({:startElement, _, 'v', _, _}, state, _, _) do │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:93:44 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 105 │ def sax_event_handler({:endElement, _, 'c', _}, %__MODULE__{row: row} = state, excel, _) do │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:105:42 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 120 │ {:endElement, _, 'row', _}, │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:120:26 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 146 │ ['e', _, e] -> List.to_string(e) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:146:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 148 │ ['s', _, i] -> find_string(strings_tid, List.to_integer(i)) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:148:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 151 │ ['n', nil, n] -> convert_char_number(n) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:151:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 153 │ [nil, 'd', d] -> convert_date_or_time(d) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:153:13 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 154 │ ['n', 'd', d] -> convert_date_or_time(d) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:154:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 154 │ ['n', 'd', d] -> convert_date_or_time(d) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:154:13 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 155 │ ['d', 'd', d] -> convert_iso_date(d) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:155:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 155 │ ['d', 'd', d] -> convert_iso_date(d) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:155:13 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 157 │ ['str', _, s] -> List.to_string(s) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:157:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 159 │ ['b', _, s] -> s == '1' │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:159:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 159 │ ['b', _, s] -> s == '1' │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:159:27 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 161 │ ['inlineStr', _, s] -> List.to_string(s) │ ~ │ └─ lib/xlsxir/parse_worksheet.ex:161:8 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 37 │ def sax_event_handler({:endElement, _, 'row', _}, state, _excel) do │ ~ │ └─ lib/xlsxir/stream_worksheet.ex:37:42 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 104 │ sheet = 'xl/worksheets/sheet#{index + 1}.xml' │ ~ │ └─ lib/xlsxir/unzip.ex:104:15 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 218 │ |> Enum.map(fn worksheet_index -> 'xl/worksheets/sheet#{worksheet_index + 1}.xml' end) │ ~ │ └─ lib/xlsxir/xlsx_file.ex:218:39 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 219 │ |> Enum.concat(['xl/styles.xml', 'xl/sharedStrings.xml', 'xl/workbook.xml']) │ ~ │ └─ lib/xlsxir/xlsx_file.ex:219:21 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 219 │ |> Enum.concat(['xl/styles.xml', 'xl/sharedStrings.xml', 'xl/workbook.xml']) │ ~ │ └─ lib/xlsxir/xlsx_file.ex:219:38 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 219 │ |> Enum.concat(['xl/styles.xml', 'xl/sharedStrings.xml', 'xl/workbook.xml']) │ ~ │ └─ lib/xlsxir/xlsx_file.ex:219:62 warning: a struct for Xlsxir.ParseWorkbook is expected on struct update: %Xlsxir.ParseWorkbook{state | sheets: [sheet | state.sheets]} but got type: dynamic() where "state" was given the type: # type: dynamic() # from: lib/xlsxir/parse_workbook.ex:15:68 state when defining the variable "state", you must also pattern match on "%Xlsxir.ParseWorkbook{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 36 │ %__MODULE__{state | sheets: [sheet | state.sheets]} │ ~ │ └─ lib/xlsxir/parse_workbook.ex:36:5: Xlsxir.ParseWorkbook.sax_event_handler/2 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead │ 10 │ worker(Xlsxir.StateManager, []) │ ~ │ └─ lib/xlsxir.ex:10:7: Xlsxir.start/2 Generated xlsxir app ==> ring_logger Compiling 7 files (.ex) Generated ring_logger app ==> shoehorn Compiling 8 files (.ex) Generated shoehorn app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling unicode_util_compat ===> Analyzing applications... ===> Compiling idna ===> Analyzing applications... ===> Compiling telemetry ==> db_connection Compiling 18 files (.ex) Generated db_connection app ==> ecto Compiling 56 files (.ex) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 297 │ @spec insert( │ ~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:297: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 338 │ @spec update(t, name, Changeset.t() | fun(Changeset.t()), Keyword.t()) :: t │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:338: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 371 │ @spec insert_or_update(t, name, Changeset.t() | fun(Changeset.t()), Keyword.t()) :: t │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:371: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 417 │ @spec delete( │ ~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:417: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 451 │ @spec one( │ ~~~~~~~~~~ │ └─ lib/ecto/multi.ex:451: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 482 │ @spec all( │ ~~~~~~~~~~ │ └─ lib/ecto/multi.ex:482: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 513 │ @spec exists?( │ ~~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:513: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 623 │ @spec insert_all( │ ~~~~~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:623: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 667 │ @spec update_all( │ ~~~~~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:667: Ecto.Multi (module) warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead │ 712 │ @spec delete_all(t, name, Ecto.Queryable.t() | fun(Ecto.Queryable.t()), Keyword.t()) :: t │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/ecto/multi.ex:712: Ecto.Multi (module) Generated ecto app ==> libcluster Compiling 13 files (.ex) Generated libcluster app ==> expo Compiling 2 files (.erl) Compiling 22 files (.ex) Generated expo app ==> gettext Compiling 18 files (.ex) Generated gettext app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling certifi ==> postgrex Compiling 69 files (.ex) Generated postgrex app ==> ecto_sql Compiling 25 files (.ex) warning: List.zip/1 is deprecated. Use Enum.zip/1 instead │ 681 │ |> List.zip() │ ~ │ └─ lib/ecto/adapters/sql.ex:681:15: Ecto.Adapters.SQL.format_table/1 └─ lib/ecto/adapters/sql.ex:712:15: Ecto.Adapters.SQL.cells/2 Generated ecto_sql app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling parse_trans ==> uboot_env Compiling 5 files (.ex) Generated uboot_env app ==> nimble_pool Compiling 2 files (.ex) Generated nimble_pool app ==> finch Compiling 14 files (.ex) Generated finch app ==> goth Compiling 7 files (.ex) warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead │ 234 │ Logger.warn("Setting http_client: mod | {mod, opts} is deprecated in favour of http_client: fun | {fun, opts}") │ ~ │ └─ lib/goth.ex:234:12: Goth.start_http_client/1 Generated goth app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling metrics ===> Analyzing applications... ===> Compiling hackney ==> tzdata Compiling 17 files (.ex) Generated tzdata app ==> calendar Compiling 18 files (.ex) warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 149 │ defp string_for_conv_spec(dt, :l, _) do dt=to_time(dt);"#{dt.hour|>x24h_to_12_h|>elem(0)}"|>pad(2, hd ' ') end │ ~ │ └─ lib/calendar/strftime.ex:149:105 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 158 │ defp string_for_conv_spec(dt, :e, _) do dt=to_date(dt);"#{dt.day}"|>pad(2, hd ' ') end │ ~ │ └─ lib/calendar/strftime.ex:158:81 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 161 │ defp string_for_conv_spec(dt, :k, _) do dt=to_time(dt);"#{dt.hour}"|>pad(2, hd ' ') end │ ~ │ └─ lib/calendar/strftime.ex:161:82 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords. This error happens when you have function calls without parentheses inside keywords. For example: function(arg, one: nested_call a, b, c) function(arg, one: if expr, do: :this, else: :that) In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses: function(arg, one: if(expr, do: :this, else: :that)) function(arg, one: nested_call(a, b, c)) Ambiguity found at: │ 167 │ defp string_for_conv_spec(dt, :x, lang), do: strftime! dt, date_format_for_lang(lang), lang │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/calendar/strftime.ex:167 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords. This error happens when you have function calls without parentheses inside keywords. For example: function(arg, one: nested_call a, b, c) function(arg, one: if expr, do: :this, else: :that) In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses: function(arg, one: if(expr, do: :this, else: :that)) function(arg, one: nested_call(a, b, c)) Ambiguity found at: │ 168 │ defp string_for_conv_spec(dt, :X, lang), do: strftime! dt, time_format_for_lang(lang), lang │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/calendar/strftime.ex:168 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords. This error happens when you have function calls without parentheses inside keywords. For example: function(arg, one: nested_call a, b, c) function(arg, one: if expr, do: :this, else: :that) In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses: function(arg, one: if(expr, do: :this, else: :that)) function(arg, one: nested_call(a, b, c)) Ambiguity found at: │ 169 │ defp string_for_conv_spec(dt, :c, lang), do: strftime! dt, date_time_format_for_lang(lang), lang │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/calendar/strftime.ex:169 warning: a struct for DateTime is expected on struct update: %DateTime{second_before | second: 60} but got type: dynamic() where "second_before" was given the type: # type: dynamic() # from: lib/calendar/date_time.ex:92:19 second_before = shift_zone!( %DateTime{...}, timezone ) when defining the variable "second_before", you must also pattern match on "%DateTime{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 94 │ %DateTime{second_before | second: 60} │ ~ │ └─ lib/calendar/date_time.ex:94:5: Calendar.DateTime.shift_zone!/2 warning: a struct for DateTime is expected on struct update: %DateTime{result | microsecond: {elem(result.microsecond, 0), 3}} but got type: dynamic() where "result" was given the type: # type: dynamic() # from: lib/calendar/date_time/parse.ex:177:12 result = unix!(millisec / 1000.0) when defining the variable "result", you must also pattern match on "%DateTime{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 178 │ %DateTime{result| microsecond: {elem(result.microsecond, 0), 3}} # change usec precision to 3 │ ~ │ └─ lib/calendar/date_time/parse.ex:178:5: Calendar.DateTime.Parse.js_ms!/1 Generated calendar app ==> timex Compiling 62 files (.ex) warning: a struct for Timex.PosixTimezone is expected on struct update: %Timex.PosixTimezone{rule | std_abbr: abbr} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/posix/parser.ex:119:33 rule when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 121 │ parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr}) │ ~ │ └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/3 warning: a struct for Timex.PosixTimezone is expected on struct update: %Timex.PosixTimezone{rule | std_offset: offset} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/posix/parser.ex:125:35 rule when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 127 │ parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset}) │ ~ │ └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/3 warning: a struct for Timex.PosixTimezone is expected on struct update: %Timex.PosixTimezone{rule | dst_abbr: abbr} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/posix/parser.ex:141:33 rule when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 143 │ rule = %TZ{rule | dst_abbr: abbr} do │ ~ │ └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/3 warning: a struct for Timex.PosixTimezone is expected on struct update: %Timex.PosixTimezone{rule | dst_offset: offset} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/posix/parser.ex:160:35 rule when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 162 │ rule = %TZ{rule | dst_offset: offset} do │ ~ │ └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/3 warning: a struct for Timex.PosixTimezone is expected on struct update: %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/posix/parser.ex:185:36 rule when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 190 │ {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest} │ ~ │ └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/3 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps} but got type: dynamic() where "zone" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:156:28 {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1}) when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 159 │ {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest} │ ~ │ └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/2 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times} but got type: dynamic() where "zone" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:270:92 zone when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 272 │ parse_transition_info(version, rest, header, %Zone{zone | transitions: times}) │ ~ │ └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/4 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps} but got type: dynamic() where "zone" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:330:79 zone when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 344 │ parse_flags(version, rest, header, %Zone{zone | leaps: leaps}) │ ~ │ └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/4 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions} but got type: dynamic() where "zone" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:348:90 zone when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 362 │ parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions}) │ ~ │ └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/4 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions} but got type: dynamic() where "zone" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:348:90 zone when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 364 │ {:ok, %Zone{zone | transitions: transitions}, rest} │ ~ │ └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/4 warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule} but got type: dynamic() where "zone" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:369:62 zone when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 372 │ {:ok, %Zone{zone | rule: rule}, format_rest <> rest} │ ~ │ └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/3 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:383:33 rule when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 385 │ parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr}) │ ~ │ └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/3 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:389:35 rule when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 391 │ parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset}) │ ~ │ └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/3 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:405:33 rule when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 407 │ rule = %Rule{rule | dst_abbr: abbr} do │ ~ │ └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/3 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:424:35 rule when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 426 │ rule = %Rule{rule | dst_offset: offset} do │ ~ │ └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/3 warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update: %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time} but got type: dynamic() where "rule" was given the type: # type: dynamic() # from: lib/parse/zoneinfo/parser.ex:449:36 rule when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 454 │ {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest} │ ~ │ └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/3 Generated timex app ==> tesla Compiling 41 files (.ex) Generated tesla app ==> google_gax Compiling 5 files (.ex) Generated google_gax app ==> google_api_storage Compiling 54 files (.ex) warning: `use Tesla.Builder` and `use Tesla` in GoogleApi.Storage.V1.Connection are soft-deprecated. It will be removed in future major version in favor of Runtime Configuration instead. Please share your feedback at https://github.com/elixir-tesla/tesla/discussions/732 If you can turn off this warning, add the following to your config.exs: ```elixir config :tesla, disable_deprecated_builder_warning: true ``` (tesla 1.17.0) lib/tesla/builder.ex:12: Tesla.Builder."MACRO-__using__"/2 (elixir 1.19.4) src/elixir_dispatch.erl:257: :elixir_dispatch.expand_macro_fun/7 (elixir 1.19.4) src/elixir_dispatch.erl:149: :elixir_dispatch.dispatch_require/7 (elixir 1.19.4) src/elixir_expand.erl:636: :elixir_expand.expand_block/5 (elixir 1.19.4) src/elixir_expand.erl:52: :elixir_expand.expand/3 (elixir 1.19.4) src/elixir_dispatch.erl:271: :elixir_dispatch.expand_quoted/7 Generated google_api_storage app ==> property_table Compiling 8 files (.ex) Generated property_table app ==> nerves_uevent CC uevent.o LD uevent Compiling 5 files (.ex) Generated nerves_uevent app ==> nerves_runtime Compiling 14 files (.ex) Generated nerves_runtime app ==> toolshed Compiling 5 files (.ex) Generated toolshed app ==> httpoison Compiling 3 files (.ex) Generated httpoison app ==> uuid Compiling 1 file (.ex) warning: use Bitwise is deprecated. import Bitwise instead │ 2 │ use Bitwise, only_operators: true │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/uuid.ex:2: UUID (module) Generated uuid app ==> arke Compiling 33 files (.ex) warning: function random_string/0 is unused │ 48 │ defp random_string() do │ ~ │ └─ lib/arke/application.ex:48:8: Arke.Application (module) warning: function postfix/0 is unused │ 44 │ defp postfix() do │ ~ │ └─ lib/arke/application.ex:44:8: Arke.Application (module) warning: @compile {:parse_transform, :ms_transform} is deprecated. Elixir will no longer support Erlang-based transforms in future versions │ 15 │ defmodule Arke.Boundary.FileManager do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/file_manager.ex:15: Arke.Boundary.FileManager (module) warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/parameter_manager.ex:17: Arke.Boundary.ParameterManager.handle_info/2 warning: @compile {:parse_transform, :ms_transform} is deprecated. Elixir will no longer support Erlang-based transforms in future versions │ 15 │ defmodule Arke.Boundary.ParameterManager do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/parameter_manager.ex:15: Arke.Boundary.ParameterManager (module) warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:17: Arke.Boundary.GroupManager.handle_info/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 27 │ def before_create(%{id: id, data: data, metadata: unit_metadata} = unit, project) do │ ~~~~ │ └─ lib/arke/boundary/group_manager.ex:27:37: Arke.Boundary.GroupManager.before_create/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 27 │ def before_create(%{id: id, data: data, metadata: unit_metadata} = unit, project) do │ ~~ │ └─ lib/arke/boundary/group_manager.ex:27:27: Arke.Boundary.GroupManager.before_create/2 warning: variable "unit_metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 27 │ def before_create(%{id: id, data: data, metadata: unit_metadata} = unit, project) do │ ~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:27:53: Arke.Boundary.GroupManager.before_create/2 warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 36 │ {:error, msg} -> new_arke_list │ ~ │ └─ lib/arke/boundary/group_manager.ex:36:18: Arke.Boundary.GroupManager.get_arke_list/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 32 │ def get_arke_list(%{data: data, metadata: %{project: project}} = unit) do │ ~~~~ │ └─ lib/arke/boundary/group_manager.ex:32:68: Arke.Boundary.GroupManager.get_arke_list/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 46 │ def get_arke(%{id: id} = unit, project, arke_id), │ ~~~~ │ └─ lib/arke/boundary/group_manager.ex:46:28: Arke.Boundary.GroupManager.get_arke/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 49 │ def get_arke(%{id: id, metadata: %{project: project}} = unit, arke_id), │ ~~~~ │ └─ lib/arke/boundary/group_manager.ex:49:59: Arke.Boundary.GroupManager.get_arke/2 warning: clauses with the same name should be grouped together, "def get_arke/3" was previously defined (lib/arke/boundary/group_manager.ex:46) │ 52 │ def get_arke(unit_id, project, arke_id) when is_binary(arke_id), │ ~ │ └─ lib/arke/boundary/group_manager.ex:52:7 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead │ 21 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:21: Arke.Boundary.ArkeManager.handle_info/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 26 │ def before_create(%{id: id, data: data, metadata: unit_metadata} = unit, project) do │ ~~~~ │ └─ lib/arke/boundary/arke_manager.ex:26:37: Arke.Boundary.ArkeManager.before_create/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 26 │ def before_create(%{id: id, data: data, metadata: unit_metadata} = unit, project) do │ ~~ │ └─ lib/arke/boundary/arke_manager.ex:26:27: Arke.Boundary.ArkeManager.before_create/2 warning: variable "unit_metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 26 │ def before_create(%{id: id, data: data, metadata: unit_metadata} = unit, project) do │ ~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:26:53: Arke.Boundary.ArkeManager.before_create/2 warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 40 │ {:error, msg} -> new_parameters │ ~ │ └─ lib/arke/boundary/arke_manager.ex:40:18: Arke.Boundary.ArkeManager.get_parameters/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 32 │ def get_parameters(%{data: data, metadata: %{project: project}} = unit) do │ ~~~~ │ └─ lib/arke/boundary/arke_manager.ex:32:69: Arke.Boundary.ArkeManager.get_parameters/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 46 │ def get_parameter(%{id: id} = unit, project, parameter_id), │ ~~~~ │ └─ lib/arke/boundary/arke_manager.ex:46:33: Arke.Boundary.ArkeManager.get_parameter/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 49 │ def get_parameter(%{id: id, metadata: %{project: project}} = unit, parameter_id), │ ~~~~ │ └─ lib/arke/boundary/arke_manager.ex:49:64: Arke.Boundary.ArkeManager.get_parameter/2 warning: clauses with the same name should be grouped together, "def get_parameter/3" was previously defined (lib/arke/boundary/arke_manager.ex:46) │ 52 │ def get_parameter(unit_id, project, parameter_id) when is_binary(parameter_id), │ ~ │ └─ lib/arke/boundary/arke_manager.ex:52:7 warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 57 │ {:error, msg} -> │ ~ │ └─ lib/arke/boundary/arke_manager.ex:57:16: Arke.Boundary.ArkeManager.get_parameter/3 warning: the underscored variable "__module__" is used after being set. A leading underscore indicates that the value of the variable should be ignored. If this is intended please rename the variable to remove the underscore │ 50 │ __module__: __module__, │ ~ │ └─ lib/arke/core/unit.ex:50:23: Arke.Core.Unit.new/9 warning: the underscored variable "__module__" is used after being set. A leading underscore indicates that the value of the variable should be ignored. If this is intended please rename the variable to remove the underscore │ 103 │ __module__, │ ~ │ └─ lib/arke/core/unit.ex:103:15: Arke.Core.Unit.load/3 warning: variable "parameter_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 115 │ ... id: parameter_id, │ ~ │ └─ lib/arke/core/unit.ex:115:71: Arke.Core.Unit.load_data/3 warning: variable "parameter_type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 116 │ ... arke_id: parameter_type │ ~ │ └─ lib/arke/core/unit.ex:116:76: Arke.Core.Unit.load_data/3 warning: variable "parameters" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 113 │ def load_data(%{data: %{parameters: parameters}} = arke, unit_data, opts) do │ ~~~~~~~~~~ │ └─ lib/arke/core/unit.ex:113:39: Arke.Core.Unit.load_data/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 123 │ def load_parameter_value(%{id: :id} = _, data, opts), do: data │ ~~~~ │ └─ lib/arke/core/unit.ex:123:50: Arke.Core.Unit.load_parameter_value/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 124 │ def load_parameter_value(%{id: :metadata} = _, data, opts), do: data │ ~~~~ │ └─ lib/arke/core/unit.ex:124:56: Arke.Core.Unit.load_parameter_value/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 125 │ def load_parameter_value(%{id: :metadata} = _, data, opts), do: data │ ~~~~ │ └─ lib/arke/core/unit.ex:125:56: Arke.Core.Unit.load_parameter_value/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 126 │ def load_parameter_value(%{id: :arke_id} = _, data, opts), do: data │ ~~~~ │ └─ lib/arke/core/unit.ex:126:55: Arke.Core.Unit.load_parameter_value/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 127 │ def load_parameter_value(%{id: :inserted_at} = _, data, opts), do: data │ ~~~~ │ └─ lib/arke/core/unit.ex:127:59: Arke.Core.Unit.load_parameter_value/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 128 │ def load_parameter_value(%{id: :updated_at} = _, data, opts), do: data │ ~~~~ │ └─ lib/arke/core/unit.ex:128:58: Arke.Core.Unit.load_parameter_value/3 warning: variable "parameter_type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 130 │ def load_parameter_value(%{id: parameter_id, arke_id: parameter_type} = parameter, data, opts) do │ ~~~~~~~~~~~~~~ │ └─ lib/arke/core/unit.ex:130:57: Arke.Core.Unit.load_parameter_value/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 140 │ def get_default_value(value, parameter), do: value │ ~~~~~~~~~ │ └─ lib/arke/core/unit.ex:140:32: Arke.Core.Unit.get_default_value/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 203 │ def update(%{data: data, arke_id: arke_id} = unit, args) do │ ~~~~ │ └─ lib/arke/core/unit.ex:203:22: Arke.Core.Unit.update/2 warning: variable "udata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 233 │ Map.merge(unit.data, parsed_data, fn _k, udata, pdata -> pdata end) │ ~ │ └─ lib/arke/core/unit.ex:233:46: Arke.Core.Unit.update_data/3 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp handle_id/1" was previously defined (lib/arke/core/unit.ex:247) │ 272 │ defp handle_id(id) when is_nil(id), do: UUID.uuid1() │ ~ │ └─ lib/arke/core/unit.ex:272:8 warning: clauses with the same name and arity (number of arguments) should be grouped together, "def encode_unit_data/2" was previously defined (lib/arke/core/unit.ex:253) │ 278 │ def encode_unit_data(arke, data) do │ ~ │ └─ lib/arke/core/unit.ex:278:7 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp update_encoded_unit_data/3" was previously defined (lib/arke/core/unit.ex:260) │ 285 │ defp update_encoded_unit_data(%{data: %{only_runtime: true}}, data, _), do: data │ ~ │ └─ lib/arke/core/unit.ex:285:8 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 336 │ def get_value(%Arke.Core.Unit{data: data} = unit, parameter_id), │ ~~~~ │ └─ lib/arke/core/unit.ex:336:47: Arke.Core.Unit.get_value/2 warning: defp parse_value/2 is private, @doc attribute is always discarded for private functions/macros/types │ 350 │ @doc """ │ ~~~~~~~~ │ └─ lib/arke/core/unit.ex:350: Arke.Core.Unit.parse_value/2 warning: variable "cleaned_list" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 404 │ cleaned_list = list_result |> Enum.map(&String.replace(&1, ~r/^['"]|['"]$/, "")) │ ~~~~~~~~~~~~ │ └─ lib/arke/core/unit.ex:404:5: Arke.Core.Unit.parse_value/2 warning: variable "datetime" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 431 │ defp get_data_value(%{"datetime" => datetime, "value" => value} = _), do: value │ ~~~~~~~~ │ └─ lib/arke/core/unit.ex:431:39: Arke.Core.Unit.get_data_value/1 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 96 │ defp cast_value(%Arke.Core.Unit{arke_id: arke_id} = parameter, value) do │ ~~~~~~~~~ │ └─ lib/arke/core/query.ex:96:57: Arke.Core.Query.BaseFilter.cast_value/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 110 │ defp cast_value(parameter, value), do: value │ ~~~~~~~~~ │ └─ lib/arke/core/query.ex:110:21: Arke.Core.Query.BaseFilter.cast_value/2 warning: variable "offset" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 378 │ def set_offset(query, offset), do: nil │ ~~~~~~ │ └─ lib/arke/core/query.ex:378:25: Arke.Core.Query.set_offset/2 warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 378 │ def set_offset(query, offset), do: nil │ ~~~~~ │ └─ lib/arke/core/query.ex:378:18: Arke.Core.Query.set_offset/2 warning: variable "limit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 402 │ def set_limit(query, limit), do: nil │ ~~~~~ │ └─ lib/arke/core/query.ex:402:24: Arke.Core.Query.set_limit/2 warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 402 │ def set_limit(query, limit), do: nil │ ~~~~~ │ └─ lib/arke/core/query.ex:402:17: Arke.Core.Query.set_limit/2 warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 67 │ else: ({:error, msg} -> nil) │ ~ │ └─ lib/arke/boundary/arke_manager.ex:67:30: Arke.Boundary.ArkeManager.get_parameter/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 60 │ %{id: id, data: data} -> │ ~ │ └─ lib/arke/boundary/arke_manager.ex:60:13: Arke.Boundary.ArkeManager.get_parameter/3 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 72 │ def get_parameter(unit_id, project, %Unit{} = parameter), do: parameter │ ~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:72:30: Arke.Boundary.ArkeManager.get_parameter/3 warning: variable "unit_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 72 │ def get_parameter(unit_id, project, %Unit{} = parameter), do: parameter │ ~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:72:21: Arke.Boundary.ArkeManager.get_parameter/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 85 │ %{id: id, data: data} = arke -> │ ~ │ └─ lib/arke/boundary/arke_manager.ex:85:13: Arke.Boundary.ArkeManager.update_parameter/4 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 103 │ defp init_parameter(project, id, metadata, p) do │ ~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:103:23: Arke.Boundary.ArkeManager.init_parameter/4 warning: variable "parameter" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used) │ 130 │ parameter = handle_init_p(id, parameter, metadata) │ ~ │ └─ lib/arke/boundary/arke_manager.ex:130:9: Arke.Boundary.ArkeManager.init_parameter/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 134 │ defp handle_init_p(id, nil, metadata) do │ ~~ │ └─ lib/arke/boundary/arke_manager.ex:134:22: Arke.Boundary.ArkeManager.handle_init_p/3 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 134 │ defp handle_init_p(id, nil, metadata) do │ ~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:134:31: Arke.Boundary.ArkeManager.handle_init_p/3 warning: variable "pdata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 139 │ Map.update(parameter,:data, %{},fn v -> Map.merge(v,override_data, fn _k, pdata,ovdata -> ovdata end) end) │ ~ │ └─ lib/arke/boundary/arke_manager.ex:139:79: Arke.Boundary.ArkeManager.handle_init_p/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 138 │ defp handle_init_p(id, parameter, override_data) do │ ~~ │ └─ lib/arke/boundary/arke_manager.ex:138:22: Arke.Boundary.ArkeManager.handle_init_p/3 warning: function init_parameter/4 is unused │ 103 │ defp init_parameter(project, id, metadata, p) do │ ~ │ └─ lib/arke/boundary/arke_manager.ex:103:8: Arke.Boundary.ArkeManager (module) warning: @compile {:parse_transform, :ms_transform} is deprecated. Elixir will no longer support Erlang-based transforms in future versions │ 15 │ defmodule Arke.Boundary.ArkeManager do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:15: Arke.Boundary.ArkeManager (module) warning: this clause cannot match because a previous clause at line 124 matches the same pattern as this clause │ 125 │ def load_parameter_value(%{id: :metadata} = _, data, opts), do: data │ ~ │ └─ lib/arke/core/unit.ex:125:7 warning: this clause for handle_id/1 cannot match because a previous clause at line 251 always matches │ 272 │ defp handle_id(id) when is_nil(id), do: UUID.uuid1() │ ~ │ └─ lib/arke/core/unit.ex:272:8 warning: this clause for handle_id/1 cannot match because a previous clause at line 251 always matches │ 273 │ defp handle_id(id) when is_atom(id), do: Atom.to_string(id) │ ~ │ └─ lib/arke/core/unit.ex:273:8 warning: this clause for handle_id/1 cannot match because a previous clause at line 251 always matches │ 274 │ defp handle_id(id) when is_binary(id), do: id │ ~ │ └─ lib/arke/core/unit.ex:274:8 warning: this clause for handle_id/1 cannot match because a previous clause at line 251 always matches │ 276 │ defp handle_id(id), do: id │ ~ │ └─ lib/arke/core/unit.ex:276:8 warning: this clause for encode_unit_data/2 cannot match because a previous clause at line 253 always matches │ 278 │ def encode_unit_data(arke, data) do │ ~ │ └─ lib/arke/core/unit.ex:278:7 warning: this clause for update_encoded_unit_data/3 cannot match because a previous clause at line 269 always matches │ 285 │ defp update_encoded_unit_data(%{data: %{only_runtime: true}}, data, _), do: data │ ~ │ └─ lib/arke/core/unit.ex:285:8 warning: this clause for update_encoded_unit_data/3 cannot match because a previous clause at line 269 always matches │ 287 │ defp update_encoded_unit_data(%{id: id}, data, value), │ ~ │ └─ lib/arke/core/unit.ex:287:8 warning: this clause for update_encoded_unit_data/3 cannot match because a previous clause at line 269 always matches │ 294 │ defp update_encoded_unit_data(_, data, _), do: data │ ~ │ └─ lib/arke/core/unit.ex:294:8 warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 66 │ else: ({:error, msg} -> nil) │ ~ │ └─ lib/arke/boundary/group_manager.ex:66:25: Arke.Boundary.GroupManager.get_arke/3 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 70 │ def get_arke(unit_id, project, %Unit{} = parameter), do: parameter │ ~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:70:25: Arke.Boundary.GroupManager.get_arke/3 warning: variable "unit_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 70 │ def get_arke(unit_id, project, %Unit{} = parameter), do: parameter │ ~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:70:16: Arke.Boundary.GroupManager.get_arke/3 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 72 │ def get_groups_by_arke(%{id: id, metadata: %{project: project}} = arke), │ ~~~~ │ └─ lib/arke/boundary/group_manager.ex:72:69: Arke.Boundary.GroupManager.get_groups_by_arke/1 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 89 │ def get_parameters(%{id: id, metadata: %{project: project}} = group) do │ ~~ │ └─ lib/arke/boundary/group_manager.ex:89:28: Arke.Boundary.GroupManager.get_parameters/1 warning: variable "parameters" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 90 │ parameters = │ ~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:90:5: Arke.Boundary.GroupManager.get_parameters/1 warning: variable "msg" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 119 │ {:error, msg} -> %{id: child_id, metadata: metadata} │ ~ │ └─ lib/arke/boundary/group_manager.ex:119:16: Arke.Boundary.GroupManager.link_init/4 warning: @compile {:parse_transform, :ms_transform} is deprecated. Elixir will no longer support Erlang-based transforms in future versions │ 15 │ defmodule Arke.Boundary.GroupManager do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:15: Arke.Boundary.GroupManager (module) warning: def add_node/5 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end the previous clause is defined on line 24 │ 42 │ def add_node(project, parent, child, type, metadata) │ ~ │ └─ lib/arke/link_manager.ex:42:7 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 74 │ def delete_node(project, %Unit{} = parent, %Unit{} = child, type, metadata \\ %{}) do │ ~~~~~~~~ │ └─ lib/arke/link_manager.ex:74:69: Arke.LinkManager.delete_node/5 warning: def delete_node/5 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end the previous clause is defined on line 74 │ 83 │ def delete_node(project, parent, child, type, metadata) │ ~ │ └─ lib/arke/link_manager.ex:83:7 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 62 │ def on_unit_create(_arke, %{id: id, metadata: %{project: project}} = unit) do │ ~~ │ └─ lib/arke/core/parameter.ex:62:35: Arke.Core.Parameter.on_unit_create/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 62 │ def on_unit_create(_arke, %{id: id, metadata: %{project: project}} = unit) do │ ~~~~~~~ │ └─ lib/arke/core/parameter.ex:62:60: Arke.Core.Parameter.on_unit_create/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 72 │ def on_unit_delete(_, %{id: id, metadata: %{project: project}} = unit) do │ ~~ │ └─ lib/arke/core/parameter.ex:72:31: Arke.Core.Parameter.on_unit_delete/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 72 │ def on_unit_delete(_, %{id: id, metadata: %{project: project}} = unit) do │ ~~~~~~~ │ └─ lib/arke/core/parameter.ex:72:56: Arke.Core.Parameter.on_unit_delete/2 warning: module attribute @record_fields was set but never used │ 17 │ @record_fields [:id, :data, :metadata, :inserted_at, :updated_at] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/link_manager.ex:17: Arke.LinkManager (module) warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead │ 49 │ @persistence Application.get_env(:arke, :persistence) │ ~ │ └─ lib/arke/query_manager.ex:49:28: Arke.QueryManager (module) warning: function head for def encode/2 must come at the top of its direct implementation. Instead of: def add(a, b), do: a + b def add(a, b) one should write: def add(a, b) def add(a, b), do: a + b │ 60 │ def encode(unit, opts) │ ~ │ └─ lib/arke/struct_manager.ex:60:7 warning: variable "type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 80 │ type, │ ~~~~ │ └─ lib/arke/struct_manager.ex:80:10: Arke.StructManager.handle_encode/4 warning: variable "link_id_list" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 130 │ link_id_list = │ ~~~~~~~~~~~~ │ └─ lib/arke/struct_manager.ex:130:5: Arke.StructManager.get_link_id_list/1 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 137 │ %{id: id, arke_id: arke_id, metadata: %{project: project}, data: data} = unit │ ~~ │ └─ lib/arke/struct_manager.ex:137:16: Arke.StructManager.get_link_id_list/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 137 │ %{id: id, arke_id: arke_id, metadata: %{project: project}, data: data} = unit │ ~~~~ │ └─ lib/arke/struct_manager.ex:137:83: Arke.StructManager.get_link_id_list/1 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 162 │ defp get_parsed_data(nil, arke, _), do: %{} │ ~~~~ │ └─ lib/arke/struct_manager.ex:162:29: Arke.StructManager.get_parsed_data/3 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 163 │ defp get_parsed_data(data, arke, _) when data == %{}, do: %{} │ ~~~~ │ └─ lib/arke/struct_manager.ex:163:30: Arke.StructManager.get_parsed_data/3 warning: clauses with the same name and arity (number of arguments) should be grouped together, "def encode/2" was previously defined (lib/arke/struct_manager.ex:52) │ 173 │ def encode(_unit, _format), do: raise("Must pass a valid unit") │ ~ │ └─ lib/arke/struct_manager.ex:173:7 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 199 │ %{load_values: true} = opts │ ~~~~ │ └─ lib/arke/struct_manager.ex:199:33: Arke.StructManager.parse_value/3 warning: variable "param" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 198 │ %{arke_id: param_type, data: %{multiple: false, values: values}} = param, │ ~~~~~ │ └─ lib/arke/struct_manager.ex:198:77: Arke.StructManager.parse_value/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 208 │ %{load_values: true} = opts │ ~~~~ │ └─ lib/arke/struct_manager.ex:208:33: Arke.StructManager.parse_value/3 warning: variable "param" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 207 │ %{arke_id: param_type, data: %{multiple: true, values: values}} = param, │ ~~~~~ │ └─ lib/arke/struct_manager.ex:207:76: Arke.StructManager.parse_value/3 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 222 │ defp filter_link_units(_link_units, %{id: id, metadata: metadata} = unit, false) │ ~~~~~~~~ │ └─ lib/arke/struct_manager.ex:222:59: Arke.StructManager.filter_link_units/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 222 │ defp filter_link_units(_link_units, %{id: id, metadata: metadata} = unit, false) │ ~~~~ │ └─ lib/arke/struct_manager.ex:222:71: Arke.StructManager.filter_link_units/3 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 331 │ def get_struct(arke, %{data: data} = unit, opts) do │ ~~~~ │ └─ lib/arke/struct_manager.ex:331:32: Arke.StructManager.get_struct/3 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 340 │ def get_struct(arke, %{data: data} = unit) do │ ~~~~ │ └─ lib/arke/struct_manager.ex:340:32: Arke.StructManager.get_struct/2 warning: clauses with the same name should be grouped together, "def get_struct/1" was previously defined (lib/arke/struct_manager.ex:326) │ 362 │ def get_struct(_), do: raise("Must pass a valid arke or unit") │ ~ │ └─ lib/arke/struct_manager.ex:362:7 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 417 │ defp add_value(struct, %{data: data} = unit) do │ ~~~~ │ └─ lib/arke/struct_manager.ex:417:42: Arke.StructManager.add_value/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 427 │ defp add_type_fields({%{arke_id: :string, data: data} = parameter, base_data}, _project) do │ ~~~~~~~~~ │ └─ lib/arke/struct_manager.ex:427:59: Arke.StructManager.add_type_fields/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 466 │ defp add_type_fields({%{arke_id: :boolean, data: data} = parameter, base_data}, _project) do │ ~~~~~~~~~ │ └─ lib/arke/struct_manager.ex:466:60: Arke.StructManager.add_type_fields/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 476 │ defp add_type_fields({%{arke_id: :dict, data: data} = parameter, base_data}, _project) do │ ~~~~~~~~~ │ └─ lib/arke/struct_manager.ex:476:57: Arke.StructManager.add_type_fields/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 486 │ defp add_type_fields({%{arke_id: :list, data: data} = parameter, base_data}, _project) do │ ~~~~~~~~~ │ └─ lib/arke/struct_manager.ex:486:57: Arke.StructManager.add_type_fields/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 510 │ defp get_arke_or_group_id(nil, project), do: nil │ ~~~~~~~ │ └─ lib/arke/struct_manager.ex:510:34: Arke.StructManager.get_arke_or_group_id/2 warning: variable "p" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 540 │ defp add_type_fields({p, base_data}, _project) do │ ~ │ └─ lib/arke/struct_manager.ex:540:25: Arke.StructManager.add_type_fields/2 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp add_type_fields/2" was previously defined (lib/arke/struct_manager.ex:427) │ 540 │ defp add_type_fields({p, base_data}, _project) do │ ~ │ └─ lib/arke/struct_manager.ex:540:8 warning: default values for the optional arguments in the private function parse_value/3 are never used │ 182 │ defp parse_value(value, param, _opts \\ []) │ ~ │ └─ lib/arke/struct_manager.ex:182:8: Arke.StructManager (module) warning: default values for the optional arguments in the private function handle_encode/4 are never used │ 61 │ defp handle_encode(u, type, load_links, opts \\ []) │ ~ │ └─ lib/arke/struct_manager.ex:61:8: Arke.StructManager (module) warning: function handle_default_value/2 is unused │ 265 │ defp handle_default_value( │ ~ │ └─ lib/arke/struct_manager.ex:265:8: Arke.StructManager (module) warning: default values for the optional arguments in the private function get_parsed_data/3 are never used │ 161 │ defp get_parsed_data(data, arke, opts \\ []) │ ~ │ └─ lib/arke/struct_manager.ex:161:8: Arke.StructManager (module) warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 82 │ query = Query.new(arke, project, distinct) │ ~~~~~ │ └─ lib/arke/query_manager.ex:82:5: Arke.QueryManager.query/1 warning: variable "depth" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 120 │ defp parse_link_depth(depth), do: 500 │ ~~~~~ │ └─ lib/arke/query_manager.ex:120:25: Arke.QueryManager.parse_link_depth/1 warning: variable "link_unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 181 │ {:ok, parameter, link_unit} -> {errors, link_units} │ ~ │ └─ lib/arke/query_manager.ex:181:28: Arke.QueryManager.handle_link_parameters_unit/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 181 │ {:ok, parameter, link_unit} -> {errors, link_units} │ ~ │ └─ lib/arke/query_manager.ex:181:17: Arke.QueryManager.handle_link_parameters_unit/2 warning: variable "p" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 188 │ Enum.map(link_units, fn {p, u} -> │ ~ │ └─ lib/arke/query_manager.ex:188:34: Arke.QueryManager.handle_link_parameters_unit/2 warning: variable "parameters" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 165 │ %{data: parameters} = arke, │ ~~~~~~~~~~ │ └─ lib/arke/query_manager.ex:165:18: Arke.QueryManager.handle_link_parameters_unit/2 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 204 │ defp handle_create_on_link_parameters_unit(project, unit, parameter, arke, value) │ ~~~~ │ └─ lib/arke/query_manager.ex:204:72: Arke.QueryManager.handle_create_on_link_parameters_unit/5 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 204 │ defp handle_create_on_link_parameters_unit(project, unit, parameter, arke, value) │ ~~~~~~~ │ └─ lib/arke/query_manager.ex:204:46: Arke.QueryManager.handle_create_on_link_parameters_unit/5 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 204 │ defp handle_create_on_link_parameters_unit(project, unit, parameter, arke, value) │ ~~~~ │ └─ lib/arke/query_manager.ex:204:55: Arke.QueryManager.handle_create_on_link_parameters_unit/5 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 208 │ defp handle_create_on_link_parameters_unit(project, unit, parameter, arke, value) │ ~~~~ │ └─ lib/arke/query_manager.ex:208:72: Arke.QueryManager.handle_create_on_link_parameters_unit/5 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 208 │ defp handle_create_on_link_parameters_unit(project, unit, parameter, arke, value) │ ~~~~~~~ │ └─ lib/arke/query_manager.ex:208:46: Arke.QueryManager.handle_create_on_link_parameters_unit/5 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 208 │ defp handle_create_on_link_parameters_unit(project, unit, parameter, arke, value) │ ~~~~ │ └─ lib/arke/query_manager.ex:208:55: Arke.QueryManager.handle_create_on_link_parameters_unit/5 warning: variable "filters" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 407 │ def and_(_query, _negate, filters), do: raise("filters must be a list") │ ~~~~~~~ │ └─ lib/arke/query_manager.ex:407:29: Arke.QueryManager.and_/3 warning: variable "filters" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 428 │ def or_(_query, _negate, filters), do: raise("filters must be a list") │ ~~~~~~~ │ └─ lib/arke/query_manager.ex:428:28: Arke.QueryManager.or_/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 566 │ %{id: id} = group = get_group(value, query.project) │ ~~ │ └─ lib/arke/query_manager.ex:566:11: Arke.QueryManager.handle_filter/5 warning: variable "arke_list" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 592 │ defp handle_filter_group(query, group, arke_list, negate) when is_nil(group), do: query │ ~~~~~~~~~ │ └─ lib/arke/query_manager.ex:592:42: Arke.QueryManager.handle_filter_group/4 warning: variable "negate" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 592 │ defp handle_filter_group(query, group, arke_list, negate) when is_nil(group), do: query │ ~~~~~~ │ └─ lib/arke/query_manager.ex:592:53: Arke.QueryManager.handle_filter_group/4 warning: variable "group" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 594 │ defp handle_filter_group(query, group, arke_list, negate), │ ~~~~~ │ └─ lib/arke/query_manager.ex:594:35: Arke.QueryManager.handle_filter_group/4 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 740 │ defp get_parameter_operator(arke, [key, operator]), do: {key, String.to_existing_atom(operator)} │ ~~~~ │ └─ lib/arke/query_manager.ex:740:31: Arke.QueryManager.get_parameter_operator/2 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 741 │ defp get_parameter_operator(arke, [key]), do: {key, :eq} │ ~~~~ │ └─ lib/arke/query_manager.ex:741:31: Arke.QueryManager.get_parameter_operator/2 warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 745 │ defp get_parameter(%{arke: nil, project: project} = query, %{id: id} = _parameter), │ ~~~~~ │ └─ lib/arke/query_manager.ex:745:55: Arke.QueryManager.get_parameter/2 warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 748 │ defp get_parameter(%{arke: nil, project: project} = query, key), │ ~~~~~ │ └─ lib/arke/query_manager.ex:748:55: Arke.QueryManager.get_parameter/2 warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 751 │ defp get_parameter(%{arke: arke, project: project} = query, key) do │ ~~~~~ │ └─ lib/arke/query_manager.ex:751:56: Arke.QueryManager.get_parameter/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 756 │ %{arke_id: arke_id, metadata: %{project: project}, data: new_data, id: id} = unit, │ ~~ │ └─ lib/arke/query_manager.ex:756:81: Arke.QueryManager.handle_link_parameters/2 warning: variable "value" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 869 │ defp normalize_value(%{id: id} = value) do │ ~~~~~ │ └─ lib/arke/query_manager.ex:869:36: Arke.QueryManager.normalize_value/1 warning: this clause for encode/2 cannot match because a previous clause at line 54 always matches │ 173 │ def encode(_unit, _format), do: raise("Must pass a valid unit") │ ~ │ └─ lib/arke/struct_manager.ex:173:7 warning: unused alias Arke │ 25 │ alias Arke.Core.{Unit, Arke} │ ~ │ └─ lib/arke/struct_manager.ex:25:3 warning: module attribute @record_fields was set but never used │ 50 │ @record_fields [:id, :data, :metadata, :inserted_at, :updated_at] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/query_manager.ex:50: Arke.QueryManager (module) warning: unused alias Parameter │ 47 │ alias Arke.Core.{Arke, Unit, Query, Parameter} │ ~ │ └─ lib/arke/query_manager.ex:47:3 warning: unused alias QueryManager │ 43 │ alias Arke.QueryManager │ ~ │ └─ lib/arke/query_manager.ex:43:3 warning: variable "e" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 65 │ e -> │ ~ │ └─ lib/arke/utils/datetime_handler.ex:65:7: Arke.Utils.DatetimeHandler.check_time/2 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead │ 23 │ @persistence Application.get_env(:arke, :persistence) │ ~ │ └─ lib/arke/core/project.ex:23:28: Arke.Core.Project (module) warning: this clause cannot match because a previous clause at line 373 matches the same pattern as this clause │ 373 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/system.ex:373 warning: variable "content_type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 35 │ %{path: path, content_type: content_type, filename: filename} = _unit, │ ~~~~~~~~~~~~ │ └─ lib/arke/core/file.ex:35:37: Arke.Core.File.before_load/2 warning: variable "opts" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used) │ 61 │ {:ok, %{signed_url: signed_url} = opts} <- get_url(unit) do │ ~ │ └─ lib/arke/core/file.ex:61:44: Arke.Core.File.on_struct_encode/4 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 57 │ def on_struct_encode(arke, %{metadata: %{project: project}} = unit, data, opts) do │ ~~~~ │ └─ lib/arke/core/file.ex:57:24: Arke.Core.File.on_struct_encode/4 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 57 │ def on_struct_encode(arke, %{metadata: %{project: project}} = unit, data, opts) do │ ~~~~~~~ │ └─ lib/arke/core/file.ex:57:53: Arke.Core.File.on_struct_encode/4 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 69 │ def base_parameters(arke, %{data: %{parameters: []}} = unit), do: base_parameters(arke) │ ~~~~ │ └─ lib/arke/core/arke.ex:69:58: Arke.Core.Arke.base_parameters/2 warning: this clause cannot match because a previous clause at line 21 matches the same pattern as this clause │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/arke.ex:21 warning: unused alias Parameter │ 22 │ alias Arke.Core.Parameter │ ~ │ └─ lib/arke/core/arke.ex:22:3 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 27 │ def on_create(arke, unit) do │ ~~~~ │ └─ lib/arke/core/group.ex:27:17: Arke.Core.Group.on_create/2 warning: this clause cannot match because a previous clause at line 20 matches the same pattern as this clause │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/file.ex:20 warning: unused alias ArkeManager │ 22 │ alias Arke.Boundary.{ArkeManager, FileManager} │ ~ │ └─ lib/arke/core/file.ex:22:3 warning: variable "child_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 64 │ data: %{type: type, parent_id: parent_id, child_id: child_id}, │ ~~~~~~~~ │ └─ lib/arke/core/link.ex:64:63: Arke.Core.Link.on_create/2 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 65 │ metadata: %{project: project} = metadata │ ~~~~~~~~ │ └─ lib/arke/core/link.ex:65:43: Arke.Core.Link.on_create/2 warning: variable "parent_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 64 │ data: %{type: type, parent_id: parent_id, child_id: child_id}, │ ~~~~~~~~~ │ └─ lib/arke/core/link.ex:64:42: Arke.Core.Link.on_create/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 65 │ metadata: %{project: project} = metadata │ ~~~~~~~ │ └─ lib/arke/core/link.ex:65:32: Arke.Core.Link.on_create/2 warning: variable "type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 64 │ data: %{type: type, parent_id: parent_id, child_id: child_id}, │ ~~~~ │ └─ lib/arke/core/link.ex:64:25: Arke.Core.Link.on_create/2 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 86 │ metadata: %{project: project} = metadata │ ~~~~~~~~ │ └─ lib/arke/core/link.ex:86:43: Arke.Core.Link.on_delete/2 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 103 │ metadata: %{project: project} = metadata │ ~~~~~~~~ │ └─ lib/arke/core/link.ex:103:43: Arke.Core.Link.on_delete/2 warning: variable "child_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 119 │ data: %{type: type, parent_id: parent_id, child_id: child_id}, │ ~~~~~~~~ │ └─ lib/arke/core/link.ex:119:63: Arke.Core.Link.on_delete/2 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 120 │ metadata: %{project: project} = metadata │ ~~~~~~~~ │ └─ lib/arke/core/link.ex:120:43: Arke.Core.Link.on_delete/2 warning: variable "parent_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 119 │ data: %{type: type, parent_id: parent_id, child_id: child_id}, │ ~~~~~~~~~ │ └─ lib/arke/core/link.ex:119:42: Arke.Core.Link.on_delete/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 120 │ metadata: %{project: project} = metadata │ ~~~~~~~ │ └─ lib/arke/core/link.ex:120:32: Arke.Core.Link.on_delete/2 warning: variable "type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 119 │ data: %{type: type, parent_id: parent_id, child_id: child_id}, │ ~~~~ │ └─ lib/arke/core/link.ex:119:25: Arke.Core.Link.on_delete/2 warning: this clause cannot match because a previous clause at line 20 matches the same pattern as this clause │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/group.ex:20 warning: this clause cannot match because a previous clause at line 18 matches the same pattern as this clause │ 18 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/link.ex:18 warning: unused alias LinkManager │ 19 │ alias Arke.LinkManager │ ~ │ └─ lib/arke/core/link.ex:19:3 warning: this clause cannot match because a previous clause at line 21 matches the same pattern as this clause │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/project.ex:21 warning: this clause cannot match because a previous clause at line 102 matches the same pattern as this clause │ 102 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:102 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 49 │ defp get_arke(project, nil), do: [] │ ~~~~~~~ │ └─ lib/arke/utils/export.ex:49:17: Arke.Utils.Export.get_arke/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 52 │ defp get_parameter(project, nil), do: [] │ ~~~~~~~ │ └─ lib/arke/utils/export.ex:52:22: Arke.Utils.Export.get_parameter/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 61 │ defp get_group(project, nil), do: [] │ ~~~~~~~ │ └─ lib/arke/utils/export.ex:61:18: Arke.Utils.Export.get_group/2 warning: variable "parsed_data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 86 │ parsed_data = │ ~~~~~~~~~~~ │ └─ lib/arke/utils/export.ex:86:5: Arke.Utils.Export.get_all/1 warning: this clause cannot match because a previous clause at line 136 matches the same pattern as this clause │ 136 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:136 warning: this clause cannot match because a previous clause at line 170 matches the same pattern as this clause │ 170 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:170 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead │ 19 │ @storage Application.get_env(:arke, :storage) │ ~ │ └─ lib/arke/utils/gcp.ex:19:24: Arke.Utils.Gcp (module) warning: variable "object" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 28 │ {:ok, object} = │ ~~~~~~ │ └─ lib/arke/utils/gcp.ex:28:11: Arke.Utils.Gcp.upload_file/3 warning: variable "ext" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 50 │ def get_public_url(%{data: %{name: name, path: path, extension: ext}} = unit, opts \\ []) do │ ~~~ │ └─ lib/arke/utils/gcp.ex:50:67: Arke.Utils.Gcp.get_public_url/2 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 50 │ def get_public_url(%{data: %{name: name, path: path, extension: ext}} = unit, opts \\ []) do │ ~~~~ │ └─ lib/arke/utils/gcp.ex:50:75: Arke.Utils.Gcp.get_public_url/2 warning: def get_public_url/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end the previous clause is defined on line 50 │ 55 │ def get_public_url(_unit, _opts), do: Error.create(:storage, "invalid unit") │ ~ │ └─ lib/arke/utils/gcp.ex:55:7 warning: variable "err" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 101 │ {:ok, %{status_code: 403} = err} -> │ ~ │ └─ lib/arke/utils/gcp.ex:101:35: Arke.Utils.Gcp.get_bucket_file_signed_url/2 warning: this clause cannot match because a previous clause at line 200 matches the same pattern as this clause │ 200 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:200 warning: this clause for upload_file/2 cannot match because a previous clause at line 16 always matches │ 23 │ def upload_file(file_name, file_data, opts \\ []) do │ ~ │ └─ lib/arke/utils/gcp.ex:23:7 warning: this clause for get_file/1 cannot match because a previous clause at line 16 always matches │ 39 │ def get_file(file_path, opts \\ []) do │ ~ │ └─ lib/arke/utils/gcp.ex:39:7 warning: this clause for get_public_url/1 cannot match because a previous clause at line 16 always matches │ 50 │ def get_public_url(%{data: %{name: name, path: path, extension: ext}} = unit, opts \\ []) do │ ~ │ └─ lib/arke/utils/gcp.ex:50:7 warning: this clause for delete_file/1 cannot match because a previous clause at line 16 always matches │ 57 │ def delete_file(file_path, opts \\ []) do │ ~ │ └─ lib/arke/utils/gcp.ex:57:7 warning: this clause for get_bucket_file_signed_url/1 cannot match because a previous clause at line 16 always matches │ 68 │ def get_bucket_file_signed_url(file_path, opts \\ []) do │ ~ │ └─ lib/arke/utils/gcp.ex:68:7 warning: module attribute @default_bucket was set but never used │ 21 │ @default_bucket @storage[:gcp][:default_bucket] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/utils/gcp.ex:21: Arke.Utils.Gcp (module) warning: module attribute @service_account was set but never used │ 20 │ @service_account @storage[:gcp][:service_account] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/utils/gcp.ex:20: Arke.Utils.Gcp (module) warning: variable "arke_data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 51 │ %{data: arke_data} = arke = ArkeManager.get(arke_id, project) │ ~ │ └─ lib/arke/validator.ex:51:15: Arke.Validator.validate/3 warning: variable "unit_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 91 │ defp check_duplicate_unit(%{id: unit_id} = unit, _project, _persistence_fn), do: {:ok, unit} │ ~~~~~~~ │ └─ lib/arke/validator.ex:91:35: Arke.Validator.check_duplicate_unit/3 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 144 │ defp get_parameter(arke, parameter_id, project), │ ~~~~~~~ │ └─ lib/arke/validator.ex:144:42: Arke.Validator.get_parameter/3 warning: clauses with the same name and arity (number of arguments) should be grouped together, "def validate_parameter/4" was previously defined (lib/arke/validator.ex:134) │ 147 │ def validate_parameter(arke, parameter, value, project) do │ ~ │ └─ lib/arke/validator.ex:147:7 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 167 │ def get_default_value(parameter, value), do: value │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:167:25: Arke.Validator.get_default_value/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 169 │ defp parse_value(%{arke_id: :integer, data: %{multiple: false} = data} = _, value) │ ~~~~ │ └─ lib/arke/validator.ex:169:68: Arke.Validator.parse_value/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 177 │ defp parse_value(%{arke_id: :float, data: %{multiple: false} = data} = _, value) │ ~~~~ │ └─ lib/arke/validator.ex:177:66: Arke.Validator.parse_value/2 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 224 │ defp check_duplicate(errors, %{id: id, data: %{unique: true}} = _parameter, nil, project), │ ~~~~~~~ │ └─ lib/arke/validator.ex:224:84: Arke.Validator.check_duplicate/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 227 │ defp check_duplicate(errors, %{id: id, data: %{unique: true}} = parameter, value, project,arke) do │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:227:67: Arke.Validator.check_duplicate/5 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 287 │ %{arke_id: type, data: %{multiple: true, values: _values, label: label}} = parameter, │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:287:85: Arke.Validator.check_values/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 306 │ defp check_multiple(errors, %{id: id, data: %{multiple: true}} = parameter, value) when not is_list(value), do: check_multiple(errors, parameter, [value]) │ ~~ │ └─ lib/arke/validator.ex:306:37: Arke.Validator.check_multiple/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 307 │ defp check_multiple(errors, %{id: id, arke_id: type, data: %{ multiple: true}} = parameter, value) do │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:307:84: Arke.Validator.check_multiple/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 317 │ defp check_whitespace(%{data: %{strip: true}} = parameter, value) when is_atom(value) do │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:317:51: Arke.Validator.check_whitespace/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 325 │ defp check_whitespace(%{data: %{strip: true}} = parameter, value) do │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:325:51: Arke.Validator.check_whitespace/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 332 │ defp check_lowercase(%{data: %{lowercase: true}} = parameter, value) when is_atom(value) do │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:332:54: Arke.Validator.check_lowercase/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 339 │ defp check_lowercase(%{data: %{lowercase: true}} = parameter, value) do │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:339:54: Arke.Validator.check_lowercase/2 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 346 │ defp check_max_length(errors, %{data: %{max_length: max_length}} = parameter, _) │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:346:70: Arke.Validator.check_max_length/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 352 │ %{data: %{label: label, max_length: max_length}} = parameter, │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:352:61: Arke.Validator.check_max_length/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 364 │ defp check_min_length(errors, %{data: %{min_length: min_length}} = parameter, _) │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:364:70: Arke.Validator.check_min_length/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 370 │ %{data: %{label: label, min_length: min_length}} = parameter, │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:370:61: Arke.Validator.check_min_length/3 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp check_by_type/3" was previously defined (lib/arke/validator.ex:235) │ 386 │ defp check_by_type(errors, %{arke_id: :integer} = parameter, value) │ ~ │ └─ lib/arke/validator.ex:386:8 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 395 │ defp check_by_type(errors, %{arke_id: :integer, data: %{label: label}} = parameter, _value), │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:395:76: Arke.Validator.check_by_type/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 407 │ defp check_by_type(errors, %{arke_id: :float, data: %{label: label}} = parameter, _value), │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:407:74: Arke.Validator.check_by_type/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 412 │ defp check_by_type(errors, %{arke_id: :dict, data: %{label: label}} = parameter, _value), │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:412:73: Arke.Validator.check_by_type/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 417 │ defp check_by_type(errors, %{arke_id: :list, data: %{label: label}} = parameter, _value), │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:417:73: Arke.Validator.check_by_type/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 420 │ defp check_max(errors, %{data: %{max: max}} = parameter, _) when is_nil(max), do: errors │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:420:49: Arke.Validator.check_max/3 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 431 │ defp check_min(errors, %{data: %{min: min}} = parameter, _) when is_nil(min), do: errors │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:431:49: Arke.Validator.check_min/3 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp check_by_type/3" was previously defined (lib/arke/validator.ex:235) │ 443 │ defp check_by_type(errors, %{arke_id: :date} = parameter, value) do │ ~ │ └─ lib/arke/validator.ex:443:8 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 470 │ defp check_by_type(errors, %{arke_id: :boolean} = parameter, value) │ ~~~~~~~~~ │ └─ lib/arke/validator.ex:470:53: Arke.Validator.check_by_type/3 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 495 │ defp __enum_error_common__(errors, %{id: id, data: %{values: nil}} = _parameter), do: errors │ ~~ │ └─ lib/arke/validator.ex:495:44: Arke.Validator.__enum_error_common__/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 496 │ defp __enum_error_common__(errors, %{id: id, data: %{values: %{}}} = _parameter), do: errors │ ~~ │ └─ lib/arke/validator.ex:496:44: Arke.Validator.__enum_error_common__/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 497 │ defp __enum_error_common__(errors, %{id: id, data: %{values: []}} = _parameter), do: errors │ ~~ │ └─ lib/arke/validator.ex:497:44: Arke.Validator.__enum_error_common__/2 warning: function check_duplicate/4 is unused │ 224 │ defp check_duplicate(errors, %{id: id, data: %{unique: true}} = _parameter, nil, project), │ ~ │ └─ lib/arke/validator.ex:224:8: Arke.Validator (module) warning: this clause cannot match because a previous clause at line 224 matches the same pattern as this clause │ 224 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:224 warning: variable "exception" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 12 │ def message(%{message: [%{context: context, message: message}]} = exception), │ ~~~~~~~~~ │ └─ lib/error/arke_error.ex:12:69: Arke.Errors.ArkeError.message/1 warning: variable "exception" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 15 │ def message(%{message: errors} = exception) when is_list(errors) do │ ~~~~~~~~~ │ └─ lib/error/arke_error.ex:15:36: Arke.Errors.ArkeError.message/1 warning: this clause cannot match because a previous clause at line 248 matches the same pattern as this clause │ 248 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:248 warning: this clause cannot match because a previous clause at line 280 matches the same pattern as this clause │ 280 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:280 warning: module attribute @decode_keys was set but never used │ 29 │ @decode_keys [:arke, :parameter, :group, :link] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/mix/tasks/arke.export_data.ex:29: Mix.Tasks.Arke.ExportData (module) warning: unused alias ArkeManager │ 26 │ alias Arke.Boundary.{ArkeManager} │ ~ │ └─ lib/mix/tasks/arke.export_data.ex:26:3 warning: unused alias Error │ 25 │ alias Arke.Utils.ErrorGenerator, as: Error │ ~ │ └─ lib/mix/tasks/arke.export_data.ex:25:3 warning: unused alias LinkManager │ 24 │ alias Arke.LinkManager │ ~ │ └─ lib/mix/tasks/arke.export_data.ex:24:3 warning: unused alias QueryManager │ 23 │ alias Arke.QueryManager │ ~ │ └─ lib/mix/tasks/arke.export_data.ex:23:3 warning: unused alias Unit │ 28 │ alias Arke.Core.Unit │ ~ │ └─ lib/mix/tasks/arke.export_data.ex:28:3 warning: variable "project" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 79 │ defp check_file(_arke_id,project, []), do: nil │ ~~~~~~~ │ └─ lib/mix/tasks/arke.seed_project.ex:79:28: Mix.Tasks.Arke.SeedProject.check_file/3 warning: variable "format" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 256 │ defp parse([],format, data), do: data │ ~~~~~~ │ └─ lib/mix/tasks/arke.seed_project.ex:256:17: Mix.Tasks.Arke.SeedProject.parse/3 warning: default values for the optional arguments in the private function handle_link/3 are never used │ 346 │ defp handle_link(_data,_project, _error \\ []) │ ~ │ └─ lib/mix/tasks/arke.seed_project.ex:346:8: Mix.Tasks.Arke.SeedProject (module) warning: this clause cannot match because a previous clause at line 311 matches the same pattern as this clause │ 311 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:311 warning: this clause cannot match because a previous clause at line 346 matches the same pattern as this clause │ 346 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:346 warning: this clause cannot match because a previous clause at line 370 matches the same pattern as this clause │ 370 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:370 warning: this clause cannot match because a previous clause at line 388 matches the same pattern as this clause │ 388 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:388 warning: this clause cannot match because a previous clause at line 404 matches the same pattern as this clause │ 404 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:404 warning: unused alias Parameter │ 402 │ alias Arke.Core.Parameter │ ~ │ └─ lib/arke/core/parameter.ex:402:3 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 388 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:388: Arke.Core.Parameter.Dynamic.handle_insert/4 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 404 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:404: Arke.Core.Parameter.Binary.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 388 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:388: Arke.Core.Parameter.Dynamic.import/1 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 404 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:404: Arke.Core.Parameter.Binary.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:388 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:388 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:388 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:388 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:388 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 388 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:388: Arke.Core.Parameter.Dynamic.import_units/5 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:404 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:404 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:404 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:404 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:404 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 404 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:404: Arke.Core.Parameter.Binary.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 370 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:370: Arke.Core.Parameter.Link.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 370 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:370: Arke.Core.Parameter.Link.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:370 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:370 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:370 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:370 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:370 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 370 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:370: Arke.Core.Parameter.Link.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 346 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:346: Arke.Core.Parameter.DateTime.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 346 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:346: Arke.Core.Parameter.DateTime.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:346 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:346 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:346 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:346 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:346 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 346 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:346: Arke.Core.Parameter.DateTime.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 311 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:311: Arke.Core.Parameter.Time.handle_insert/4 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 280 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:280: Arke.Core.Parameter.Date.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 311 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:311: Arke.Core.Parameter.Time.import/1 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 280 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:280: Arke.Core.Parameter.Date.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:311 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:311 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:311 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:311 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:311 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 311 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:311: Arke.Core.Parameter.Time.import_units/5 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:280 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:280 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:280 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:280 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:280 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 280 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:280: Arke.Core.Parameter.Date.import_units/5 warning: Arke.Boundary.ParameterManager.get_from_persistence/0 is undefined or private │ 34 │ Arke.Boundary.ParameterManager.get_from_persistence() │ ~ │ └─ lib/examples/starter.ex:34:36: Arke.Examples.Starter.init/0 warning: Arke.Core.Parameter.new/1 is undefined or private │ 44 │ parameter = Arke.Core.Parameter.new(p) │ ~ │ └─ lib/examples/starter.ex:44:41: Arke.Examples.Starter.init_arke_by_struct/2 warning: Arke.Boundary.ArkeManager.set_manager/2 is undefined or private │ 50 │ ArkeManager.set_manager(Arke.Core.Arke.new(args), :arke_system) │ ~ │ └─ lib/examples/starter.ex:50:17: Arke.Examples.Starter.init_arke_by_struct/2 warning: Arke.Core.Arke.new/1 is undefined or private │ 50 │ ArkeManager.set_manager(Arke.Core.Arke.new(args), :arke_system) │ ~ │ └─ lib/examples/starter.ex:50:44: Arke.Examples.Starter.init_arke_by_struct/2 └─ lib/examples/starter.ex:61:24: Arke.Examples.Starter.init_arke_by_persistence/0 warning: Arke.Boundary.ArkeManager.add_parameter/4 is undefined or private. Did you mean: * update_parameter/4 │ 78 │ ArkeManager.add_parameter(parent_id, :arke_system, child_id, data.metadata) │ ~ │ └─ lib/examples/starter.ex:78:19: Arke.Examples.Starter.init_arke_parameters_by_persistence/0 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 248 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:248: Arke.Core.Parameter.List.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 248 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:248: Arke.Core.Parameter.List.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:248 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:248 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:248 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:248 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:248 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 248 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:248: Arke.Core.Parameter.List.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 224 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:224: Arke.Core.Parameter.Dict.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 224 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:224: Arke.Core.Parameter.Dict.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:224 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:224 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:224 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:224 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:224 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 224 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:224: Arke.Core.Parameter.Dict.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 200 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:200: Arke.Core.Parameter.Boolean.handle_insert/4 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 170 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:170: Arke.Core.Parameter.Float.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 200 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:200: Arke.Core.Parameter.Boolean.import/1 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 170 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:170: Arke.Core.Parameter.Float.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:200 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:200 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:200 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:200 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:200 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 200 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:200: Arke.Core.Parameter.Boolean.import_units/5 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:170 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:170 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:170 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:170 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:170 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 170 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:170: Arke.Core.Parameter.Float.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 136 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:136: Arke.Core.Parameter.Integer.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 136 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:136: Arke.Core.Parameter.Integer.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:136 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:136 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:136 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:136 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:136 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 136 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:136: Arke.Core.Parameter.Integer.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 102 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:102: Arke.Core.Parameter.String.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 102 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:102: Arke.Core.Parameter.String.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:102 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/parameter.ex:102 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:102 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:102 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/parameter.ex:102 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 102 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/parameter.ex:102: Arke.Core.Parameter.String.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 18 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/link.ex:18: Arke.Core.Link.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 18 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/link.ex:18: Arke.Core.Link.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/link.ex:18 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/link.ex:18 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/link.ex:18 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/link.ex:18 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/link.ex:18 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 18 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/link.ex:18: Arke.Core.Link.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/project.ex:21: Arke.Core.Project.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/project.ex:21: Arke.Core.Project.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/project.ex:21 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/project.ex:21 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/project.ex:21 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/project.ex:21 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/project.ex:21 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/project.ex:21: Arke.Core.Project.import_units/5 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/group.ex:20: Arke.Core.Group.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/group.ex:20: Arke.Core.Group.import/1 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/file.ex:20: Arke.Core.File.handle_insert/4 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/group.ex:20 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/group.ex:20 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/group.ex:20 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/group.ex:20 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/group.ex:20 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/group.ex:20: Arke.Core.Group.import_units/5 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/file.ex:20: Arke.Core.File.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/file.ex:20 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/file.ex:20 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/file.ex:20 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/file.ex:20 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/file.ex:20 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 20 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/file.ex:20: Arke.Core.File.import_units/5 warning: Logger.warn/1 is undefined or private. However, there is a macro with the same name and arity. Be sure to require Logger if you intend to invoke this macro │ 69 │ Logger.warn("error while loading the image: #{msg}") │ ~ │ └─ lib/arke/core/file.ex:69:16: Arke.Core.File.on_struct_encode/4 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 373 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/system.ex:373: Arke.System.Arke.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 373 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/system.ex:373: Arke.System.Arke.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/system.ex:373 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/system.ex:373 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/system.ex:373 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/system.ex:373 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/system.ex:373 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 373 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/system.ex:373: Arke.System.Arke.import_units/5 warning: module attribute @impl was not set for function handle_call/3 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:17: Arke.Boundary.GroupManager (module) warning: module attribute @impl was not set for function handle_info/2 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:17: Arke.Boundary.GroupManager (module) warning: module attribute @impl was not set for function terminate/2 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:17: Arke.Boundary.GroupManager (module) warning: Tuple.append/2 is deprecated. Use insert_at instead │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/group_manager.ex:17: Arke.Boundary.GroupManager.call_nodes_manager/3 warning: module attribute @impl was not set for function handle_call/3 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 21 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:21: Arke.Boundary.ArkeManager (module) warning: module attribute @impl was not set for function handle_info/2 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 21 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:21: Arke.Boundary.ArkeManager (module) warning: module attribute @impl was not set for function terminate/2 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 21 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:21: Arke.Boundary.ArkeManager (module) warning: Tuple.append/2 is deprecated. Use insert_at instead │ 21 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/arke_manager.ex:21: Arke.Boundary.ArkeManager.call_nodes_manager/3 warning: ArkePostgres.Repo.insert_all/3 is undefined (module ArkePostgres.Repo is not available or is yet to be defined) │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/arke.ex:21: Arke.Core.Arke.handle_insert/4 warning: ArkeAuth.Guardian.get_member/1 is undefined (module ArkeAuth.Guardian is not available or is yet to be defined) │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/arke.ex:21: Arke.Core.Arke.import/1 warning: comparison between distinct types found: check_existing_units_for_import(project, arke, header, u, existing_units) == false given types: dynamic(true) == false where "arke" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/arke.ex:21 arke where "existing_units" (context Arke.System) was given the type: # type: empty_list() # from: lib/arke/core/arke.ex:21 existing_units = get_existing_units_for_import(project, arke, header, correct_units) where "header" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/arke.ex:21 header = parse_header_for_import(template_header, file_header) where "project" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/arke.ex:21 project where "u" (context Arke.System) was given the type: # type: dynamic() # from: lib/arke/core/arke.ex:21 u While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false typing violation found at: │ 21 │ use Arke.System │ ~~~~~~~~~~~~~~~ │ └─ lib/arke/core/arke.ex:21: Arke.Core.Arke.import_units/5 warning: Unit.update/2 is undefined (module Unit is not available or is yet to be defined). Did you mean: * Arke.Core.Unit.update/2 │ 45 │ unit = Unit.update(unit, %{parameters: parameters}) │ ~ │ └─ lib/arke/core/arke.ex:45:17: Arke.Core.Arke.on_update/2 warning: module attribute @impl was not set for function handle_call/3 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/parameter_manager.ex:17: Arke.Boundary.ParameterManager (module) warning: module attribute @impl was not set for function handle_info/2 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/parameter_manager.ex:17: Arke.Boundary.ParameterManager (module) warning: module attribute @impl was not set for function terminate/2 callback (specified in GenServer). This either means you forgot to add the "@impl true" annotation before the definition or that you are accidentally overriding this callback │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/parameter_manager.ex:17: Arke.Boundary.ParameterManager (module) warning: Tuple.append/2 is deprecated. Use insert_at instead │ 17 │ use Arke.Boundary.UnitManager │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke/boundary/parameter_manager.ex:17: Arke.Boundary.ParameterManager.call_nodes_manager/3 warning: Arke.DatetimeHandler.now/1 is undefined (module Arke.DatetimeHandler is not available or is yet to be defined) │ 291 │ :datetime => Arke.DatetimeHandler.now(:datetime) │ ~ │ └─ lib/arke/core/unit.ex:291:43: Arke.Core.Unit.update_encoded_unit_data/3 Generated arke app ==> arke_postgres Compiling 13 files (.ex) warning: variable "reason" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 34 │ %{message: message, reason: reason} = err │ ~ │ └─ lib/arke_postgres.ex:34:41: ArkePostgres.init/0 warning: variable "code" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 45 │ %{message: message, postgres: %{code: code, message: postgres_message}} = err │ ~ │ └─ lib/arke_postgres.ex:45:51: ArkePostgres.init/0 warning: variable "args" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 24 │ def start(type, args) do │ ~~~~ │ └─ lib/arke_postgres/application.ex:24:19: ArkePostgres.Application.start/2 warning: variable "type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 24 │ def start(type, args) do │ ~~~~ │ └─ lib/arke_postgres/application.ex:24:13: ArkePostgres.Application.start/2 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 131 │ defp handle_create(proj, arke, unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:131:28: ArkePostgres.handle_create/3 warning: variable "proj" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 131 │ defp handle_create(proj, arke, unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:131:22: ArkePostgres.handle_create/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 131 │ defp handle_create(proj, arke, unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:131:34: ArkePostgres.handle_create/3 warning: variable "unit" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used) │ 137 │ {:ok, unit} = handle_update(project, arke, unit) │ ~~~~ │ └─ lib/arke_postgres.ex:137:11: ArkePostgres.update/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 143 │ %{data: data, metadata: metadata} = unit │ ~~~~ │ └─ lib/arke_postgres.ex:143:17: ArkePostgres.handle_update/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 169 │ {:ok, unit} = handle_update_key(arke, old_unit, new_unit) │ ~~~~ │ └─ lib/arke_postgres.ex:169:11: ArkePostgres.update_key/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 175 │ %{data: data, metadata: %{project: project} = metadata} = new_unit │ ~~~~ │ └─ lib/arke_postgres.ex:175:17: ArkePostgres.handle_update_key/3 warning: variable "code" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 294 │ %{message: message, postgres: %{code: code, message: postgres_message}} = err │ ~ │ └─ lib/arke_postgres.ex:294:47: ArkePostgres.create_project/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 309 │ def delete_project(%{arke_id: :arke_project, id: id} = unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:309:58: ArkePostgres.delete_project/1 warning: default values for the optional arguments in the private function filter_primary_keys/2 are never used │ 230 │ defp filter_primary_keys( │ ~ │ └─ lib/arke_postgres.ex:230:8: ArkePostgres (module) warning: unused import Ecto.Adapters.SQL.Sandbox │ 20 │ import Ecto.Adapters.SQL.Sandbox │ ~ │ └─ lib/arke_postgres/application.ex:20:3 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 66 │ %{data: data, metadata: %{project: project} = metadata} = unit, │ ~~~~~~~~ │ └─ lib/arke_postgres/arke_unit.ex:66:55: ArkePostgres.ArkeUnit.update_key/4 warning: function pop_map/2 is unused │ 171 │ defp pop_map(data, key) do │ ~ │ └─ lib/arke_postgres/arke_unit.ex:171:8: ArkePostgres.ArkeUnit (module) warning: function pop_datetime/2 is unused │ 166 │ defp pop_datetime(data, key) do │ ~ │ └─ lib/arke_postgres/arke_unit.ex:166:8: ArkePostgres.ArkeUnit (module) warning: module attribute @record_fields was set but never used │ 20 │ @record_fields [:id, :data, :metadata, :inserted_at, :updated_at] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/arke_unit.ex:20: ArkePostgres.ArkeUnit (module) warning: unused alias ArkeManager │ 16 │ alias Arke.Boundary.{GroupManager, ArkeManager} │ ~ │ └─ lib/arke_postgres.ex:16:3 warning: unused alias GroupManager │ 16 │ alias Arke.Boundary.{GroupManager, ArkeManager} │ ~ │ └─ lib/arke_postgres.ex:16:3 warning: variable "project_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 65 │ def remove_arke_system(metadata, project_id) do │ ~~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:65:36: ArkePostgres.Query.remove_arke_system/2 warning: variable "unit_list" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 123 │ unit_list = │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:123:5: ArkePostgres.Query.get_project_record/0 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 216 │ defp base_query(%{arke: %{data: %{type: "table"}, id: id} = arke} = _arke_query, action), │ ~~ │ └─ lib/arke_postgres/query.ex:216:57: ArkePostgres.Query.base_query/2 warning: variable "action" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 261 │ defp table_query(%{id: id, data: data} = arke, action) do │ ~~~~~~ │ └─ lib/arke_postgres/query.ex:261:50: ArkePostgres.Query.table_query/2 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 261 │ defp table_query(%{id: id, data: data} = arke, action) do │ ~~~~ │ └─ lib/arke_postgres/query.ex:261:44: ArkePostgres.Query.table_query/2 warning: variable "arke_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 281 │ defp get_arke(project, %{arke_id: arke_id}, arke) when is_atom(arke), │ ~~~~~~~ │ └─ lib/arke_postgres/query.ex:281:37: ArkePostgres.Query.get_arke/3 warning: variable "arke_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 284 │ defp get_arke(project, %{arke_id: arke_id}, arke) when is_binary(arke), │ ~~~~~~~ │ └─ lib/arke_postgres/query.ex:284:37: ArkePostgres.Query.get_arke/3 warning: variable "arke_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 287 │ defp get_arke(_, %{arke_id: arke_id}, arke), do: arke │ ~~~~~~~ │ └─ lib/arke_postgres/query.ex:287:31: ArkePostgres.Query.get_arke/3 warning: variable "clause" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 398 │ defp parameter_condition(clause, parameter, value, operator, negate, logic, join_alias \\ nil) do │ ~~~~~~ │ └─ lib/arke_postgres/query.ex:398:28: ArkePostgres.Query.parameter_condition/7 warning: variable "logic" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 398 │ defp parameter_condition(clause, parameter, value, operator, negate, logic, join_alias \\ nil) do │ ~~~~~ │ └─ lib/arke_postgres/query.ex:398:72: ArkePostgres.Query.parameter_condition/7 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 614 │ defp get_value(%{id: id, arke_id: :string} = _parameter, value) when is_binary(value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:614:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 615 │ defp get_value(%{id: id, arke_id: :string} = _parameter, value), do: Kernel.inspect(value) │ ~~ │ └─ lib/arke_postgres/query.ex:615:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 617 │ defp get_value(%{id: id, arke_id: :integer} = _parameter, value) when is_number(value), │ ~~ │ └─ lib/arke_postgres/query.ex:617:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 627 │ defp get_value(%{id: id, arke_id: :integer} = parameter, value) when is_list(value), │ ~~ │ └─ lib/arke_postgres/query.ex:627:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 630 │ defp get_value(%{id: id, arke_id: :float} = _parameter, value) when is_number(value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:630:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 639 │ defp get_value(%{id: id, arke_id: :float} = parameter, value) when is_list(value), │ ~~ │ └─ lib/arke_postgres/query.ex:639:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 642 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, true), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:642:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 643 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "true"), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:643:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 644 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "True"), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:644:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 645 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, 1), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:645:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 646 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "1"), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:646:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 647 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, false), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:647:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 648 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "false"), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:648:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 649 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "False"), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:649:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 650 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, 0), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:650:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 651 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "0"), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:651:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 677 │ defp get_value(%{id: id, arke_id: :dict} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:677:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 678 │ defp get_value(%{id: id, arke_id: :list} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:678:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 679 │ defp get_value(%{id: id, arke_id: :link} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:679:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 680 │ defp get_value(%{id: id, arke_id: :dynamic} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:680:24: ArkePostgres.Query.get_value/2 warning: variable "value" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 681 │ defp get_value(%{id: id}, value), do: raise("Parameter(#{id}) value not valid") │ ~~~~~ │ └─ lib/arke_postgres/query.ex:681:29: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 711 │ defp get_nil_query(%{id: id} = _parameter, column, true, _join_alias), │ ~~ │ └─ lib/arke_postgres/query.ex:711:28: ArkePostgres.Query.get_nil_query/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 721 │ defp filter_query_by_operator(parameter, column, value, :eq), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:721:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 724 │ defp filter_query_by_operator(parameter, column, value, :contains), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:724:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 727 │ defp filter_query_by_operator(parameter, column, value, :icontains), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:727:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 730 │ defp filter_query_by_operator(parameter, column, value, :endswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:730:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 733 │ defp filter_query_by_operator(parameter, column, value, :iendswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:733:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 736 │ defp filter_query_by_operator(parameter, column, value, :startswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:736:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 739 │ defp filter_query_by_operator(parameter, column, value, :istartswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:739:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 742 │ defp filter_query_by_operator(parameter, column, value, :lte), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:742:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 745 │ defp filter_query_by_operator(parameter, column, value, :lt), do: dynamic([q], ^column < ^value) │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:745:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 746 │ defp filter_query_by_operator(parameter, column, value, :gt), do: dynamic([q], ^column > ^value) │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:746:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 748 │ defp filter_query_by_operator(parameter, column, value, :gte), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:748:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 751 │ defp filter_query_by_operator(parameter, column, value, :in), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:751:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 754 │ defp filter_query_by_operator(parameter, column, value, _), do: dynamic([q], ^column == ^value) │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:754:33: ArkePostgres.Query.filter_query_by_operator/4 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp get_where_field_by_direction/1" was previously defined (lib/arke_postgres/query.ex:798) │ 809 │ defp get_where_field_by_direction(:parent), │ ~ │ └─ lib/arke_postgres/query.ex:809:8 warning: missing `:on` in join, defaulting to `on: true`. lib/arke_postgres/query.ex:813: ArkePostgres.Query.get_link_query/7 warning: missing `:on` in join, defaulting to `on: true`. lib/arke_postgres/query.ex:838: ArkePostgres.Query.get_link_query/7 warning: this clause cannot match because a previous clause at line 801 matches the same pattern as this clause │ 809 │ defp get_where_field_by_direction(:parent), │ ~ │ └─ lib/arke_postgres/query.ex:809:8 warning: invalid association `parent_id` in schema ArkePostgres.ArkeLink: associated module ArkePostgres.ArkeUnit is not an Ecto schema lib/arke_postgres/tables/arke_link.ex:15: ArkePostgres.ArkeLink (module) warning: invalid association `child_id` in schema ArkePostgres.ArkeLink: associated module ArkePostgres.ArkeUnit is not an Ecto schema lib/arke_postgres/tables/arke_link.ex:15: ArkePostgres.ArkeLink (module) warning: module attribute @timestamps was set but never used │ 20 │ @timestamps ~w[inserted_at updated_at]a │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/tables/arke_schema.ex:20: ArkePostgres.Tables.ArkeSchema (module) warning: module attribute @timestamps was set but never used │ 20 │ @timestamps ~w[inserted_at updated_at]a │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/tables/arke_unit.ex:20: ArkePostgres.Tables.ArkeUnit (module) warning: unused alias ArkeManager │ 17 │ alias Arke.Boundary.ArkeManager │ ~ │ └─ lib/mix/tasks/arke_postgres.create_project.ex:17:3 warning: unused alias QueryManager │ 16 │ alias Arke.QueryManager │ ~ │ └─ lib/mix/tasks/arke_postgres.create_project.ex:16:3 warning: invalid association `arke_schema` in schema ArkePostgres.Tables.ArkeSchemaField: associated schema ArkePostgres.ArkeSchema does not exist lib/arke_postgres/tables/arke_schema_field.ex:15: ArkePostgres.Tables.ArkeSchemaField (module) warning: invalid association `arke_field` in schema ArkePostgres.Tables.ArkeSchemaField: associated schema ArkePostgres.ArkeField does not exist lib/arke_postgres/tables/arke_schema_field.ex:15: ArkePostgres.Tables.ArkeSchemaField (module) warning: module attribute @arke_schema_field_fields was set but never used │ 19 │ @arke_schema_field_fields ~w[arke_schema_id arke_parameter_id metadata]a │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/tables/arke_schema_field.ex:19: ArkePostgres.Tables.ArkeSchemaField (module) warning: unused import Ecto.Changeset │ 17 │ import Ecto.Changeset │ ~ │ └─ lib/arke_postgres/tables/arke_schema_field.ex:17:3 Generated arke_postgres app ==> nerves_compatibility_test Compiling 2 files (.ex) Generated nerves_compatibility_test app |nerves| Building OTP Release... * [Nerves] validating vm.args * skipping runtime configuration (config/runtime.exs not found) * creating _build/mangopi_mq_pro/rel/nerves_compatibility_test/releases/0.1.0/vm.args Updating base firmware image with Erlang release... Copying rootfs_overlay: /work/proj/_build/mangopi_mq_pro/nerves/rootfs_overlay Copying rootfs_overlay: /work/proj/rootfs_overlay Building /work/proj/_build/mangopi_mq_pro/nerves/images/nerves_compatibility_test.fw... Firmware UUID: brick-spy (20d74483-7b6a-53a7-9d36-c4d47bd5810c) Firmware built successfully! 🎉 Now you may install it to a MicroSD card using `mix burn` or upload it to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`. * Cleaning arke_postgres ==> nerves ==> nerves_compatibility_test Nerves environment MIX_TARGET: mangopi_mq_pro MIX_ENV: prod ==> arke_postgres Compiling 13 files (.ex) warning: variable "args" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 24 │ def start(type, args) do │ ~~~~ │ └─ lib/arke_postgres/application.ex:24:19: ArkePostgres.Application.start/2 warning: variable "reason" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 34 │ %{message: message, reason: reason} = err │ ~ │ └─ lib/arke_postgres.ex:34:41: ArkePostgres.init/0 warning: variable "type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 24 │ def start(type, args) do │ ~~~~ │ └─ lib/arke_postgres/application.ex:24:13: ArkePostgres.Application.start/2 warning: variable "code" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 45 │ %{message: message, postgres: %{code: code, message: postgres_message}} = err │ ~ │ └─ lib/arke_postgres.ex:45:51: ArkePostgres.init/0 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 131 │ defp handle_create(proj, arke, unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:131:28: ArkePostgres.handle_create/3 warning: variable "proj" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 131 │ defp handle_create(proj, arke, unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:131:22: ArkePostgres.handle_create/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 131 │ defp handle_create(proj, arke, unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:131:34: ArkePostgres.handle_create/3 warning: variable "unit" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used) │ 137 │ {:ok, unit} = handle_update(project, arke, unit) │ ~~~~ │ └─ lib/arke_postgres.ex:137:11: ArkePostgres.update/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 143 │ %{data: data, metadata: metadata} = unit │ ~~~~ │ └─ lib/arke_postgres.ex:143:17: ArkePostgres.handle_update/3 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 169 │ {:ok, unit} = handle_update_key(arke, old_unit, new_unit) │ ~~~~ │ └─ lib/arke_postgres.ex:169:11: ArkePostgres.update_key/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 175 │ %{data: data, metadata: %{project: project} = metadata} = new_unit │ ~~~~ │ └─ lib/arke_postgres.ex:175:17: ArkePostgres.handle_update_key/3 warning: variable "code" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 294 │ %{message: message, postgres: %{code: code, message: postgres_message}} = err │ ~ │ └─ lib/arke_postgres.ex:294:47: ArkePostgres.create_project/1 warning: variable "unit" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 309 │ def delete_project(%{arke_id: :arke_project, id: id} = unit) do │ ~~~~ │ └─ lib/arke_postgres.ex:309:58: ArkePostgres.delete_project/1 warning: default values for the optional arguments in the private function filter_primary_keys/2 are never used │ 230 │ defp filter_primary_keys( │ ~ │ └─ lib/arke_postgres.ex:230:8: ArkePostgres (module) warning: unused import Ecto.Adapters.SQL.Sandbox │ 20 │ import Ecto.Adapters.SQL.Sandbox │ ~ │ └─ lib/arke_postgres/application.ex:20:3 warning: variable "metadata" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 66 │ %{data: data, metadata: %{project: project} = metadata} = unit, │ ~~~~~~~~ │ └─ lib/arke_postgres/arke_unit.ex:66:55: ArkePostgres.ArkeUnit.update_key/4 warning: function pop_map/2 is unused │ 171 │ defp pop_map(data, key) do │ ~ │ └─ lib/arke_postgres/arke_unit.ex:171:8: ArkePostgres.ArkeUnit (module) warning: function pop_datetime/2 is unused │ 166 │ defp pop_datetime(data, key) do │ ~ │ └─ lib/arke_postgres/arke_unit.ex:166:8: ArkePostgres.ArkeUnit (module) warning: unused alias ArkeManager │ 16 │ alias Arke.Boundary.{GroupManager, ArkeManager} │ ~ │ └─ lib/arke_postgres.ex:16:3 warning: unused alias GroupManager │ 16 │ alias Arke.Boundary.{GroupManager, ArkeManager} │ ~ │ └─ lib/arke_postgres.ex:16:3 warning: module attribute @record_fields was set but never used │ 20 │ @record_fields [:id, :data, :metadata, :inserted_at, :updated_at] │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/arke_unit.ex:20: ArkePostgres.ArkeUnit (module) warning: variable "project_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 65 │ def remove_arke_system(metadata, project_id) do │ ~~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:65:36: ArkePostgres.Query.remove_arke_system/2 warning: variable "unit_list" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 123 │ unit_list = │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:123:5: ArkePostgres.Query.get_project_record/0 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 216 │ defp base_query(%{arke: %{data: %{type: "table"}, id: id} = arke} = _arke_query, action), │ ~~ │ └─ lib/arke_postgres/query.ex:216:57: ArkePostgres.Query.base_query/2 warning: variable "action" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 261 │ defp table_query(%{id: id, data: data} = arke, action) do │ ~~~~~~ │ └─ lib/arke_postgres/query.ex:261:50: ArkePostgres.Query.table_query/2 warning: variable "arke" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 261 │ defp table_query(%{id: id, data: data} = arke, action) do │ ~~~~ │ └─ lib/arke_postgres/query.ex:261:44: ArkePostgres.Query.table_query/2 warning: variable "arke_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 281 │ defp get_arke(project, %{arke_id: arke_id}, arke) when is_atom(arke), │ ~~~~~~~ │ └─ lib/arke_postgres/query.ex:281:37: ArkePostgres.Query.get_arke/3 warning: variable "arke_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 284 │ defp get_arke(project, %{arke_id: arke_id}, arke) when is_binary(arke), │ ~~~~~~~ │ └─ lib/arke_postgres/query.ex:284:37: ArkePostgres.Query.get_arke/3 warning: variable "arke_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 287 │ defp get_arke(_, %{arke_id: arke_id}, arke), do: arke │ ~~~~~~~ │ └─ lib/arke_postgres/query.ex:287:31: ArkePostgres.Query.get_arke/3 warning: variable "clause" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 398 │ defp parameter_condition(clause, parameter, value, operator, negate, logic, join_alias \\ nil) do │ ~~~~~~ │ └─ lib/arke_postgres/query.ex:398:28: ArkePostgres.Query.parameter_condition/7 warning: variable "logic" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 398 │ defp parameter_condition(clause, parameter, value, operator, negate, logic, join_alias \\ nil) do │ ~~~~~ │ └─ lib/arke_postgres/query.ex:398:72: ArkePostgres.Query.parameter_condition/7 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 614 │ defp get_value(%{id: id, arke_id: :string} = _parameter, value) when is_binary(value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:614:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 615 │ defp get_value(%{id: id, arke_id: :string} = _parameter, value), do: Kernel.inspect(value) │ ~~ │ └─ lib/arke_postgres/query.ex:615:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 617 │ defp get_value(%{id: id, arke_id: :integer} = _parameter, value) when is_number(value), │ ~~ │ └─ lib/arke_postgres/query.ex:617:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 627 │ defp get_value(%{id: id, arke_id: :integer} = parameter, value) when is_list(value), │ ~~ │ └─ lib/arke_postgres/query.ex:627:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 630 │ defp get_value(%{id: id, arke_id: :float} = _parameter, value) when is_number(value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:630:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 639 │ defp get_value(%{id: id, arke_id: :float} = parameter, value) when is_list(value), │ ~~ │ └─ lib/arke_postgres/query.ex:639:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 642 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, true), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:642:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 643 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "true"), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:643:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 644 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "True"), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:644:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 645 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, 1), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:645:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 646 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "1"), do: true │ ~~ │ └─ lib/arke_postgres/query.ex:646:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 647 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, false), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:647:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 648 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "false"), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:648:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 649 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "False"), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:649:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 650 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, 0), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:650:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 651 │ defp get_value(%{id: id, arke_id: :boolean} = _parameter, "0"), do: false │ ~~ │ └─ lib/arke_postgres/query.ex:651:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 677 │ defp get_value(%{id: id, arke_id: :dict} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:677:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 678 │ defp get_value(%{id: id, arke_id: :list} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:678:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 679 │ defp get_value(%{id: id, arke_id: :link} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:679:24: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 680 │ defp get_value(%{id: id, arke_id: :dynamic} = _parameter, value), do: value │ ~~ │ └─ lib/arke_postgres/query.ex:680:24: ArkePostgres.Query.get_value/2 warning: variable "value" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 681 │ defp get_value(%{id: id}, value), do: raise("Parameter(#{id}) value not valid") │ ~~~~~ │ └─ lib/arke_postgres/query.ex:681:29: ArkePostgres.Query.get_value/2 warning: variable "id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 711 │ defp get_nil_query(%{id: id} = _parameter, column, true, _join_alias), │ ~~ │ └─ lib/arke_postgres/query.ex:711:28: ArkePostgres.Query.get_nil_query/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 721 │ defp filter_query_by_operator(parameter, column, value, :eq), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:721:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 724 │ defp filter_query_by_operator(parameter, column, value, :contains), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:724:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 727 │ defp filter_query_by_operator(parameter, column, value, :icontains), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:727:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 730 │ defp filter_query_by_operator(parameter, column, value, :endswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:730:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 733 │ defp filter_query_by_operator(parameter, column, value, :iendswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:733:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 736 │ defp filter_query_by_operator(parameter, column, value, :startswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:736:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 739 │ defp filter_query_by_operator(parameter, column, value, :istartswith), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:739:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 742 │ defp filter_query_by_operator(parameter, column, value, :lte), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:742:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 745 │ defp filter_query_by_operator(parameter, column, value, :lt), do: dynamic([q], ^column < ^value) │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:745:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 746 │ defp filter_query_by_operator(parameter, column, value, :gt), do: dynamic([q], ^column > ^value) │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:746:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 748 │ defp filter_query_by_operator(parameter, column, value, :gte), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:748:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 751 │ defp filter_query_by_operator(parameter, column, value, :in), │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:751:33: ArkePostgres.Query.filter_query_by_operator/4 warning: variable "parameter" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 754 │ defp filter_query_by_operator(parameter, column, value, _), do: dynamic([q], ^column == ^value) │ ~~~~~~~~~ │ └─ lib/arke_postgres/query.ex:754:33: ArkePostgres.Query.filter_query_by_operator/4 warning: clauses with the same name and arity (number of arguments) should be grouped together, "defp get_where_field_by_direction/1" was previously defined (lib/arke_postgres/query.ex:798) │ 809 │ defp get_where_field_by_direction(:parent), │ ~ │ └─ lib/arke_postgres/query.ex:809:8 warning: missing `:on` in join, defaulting to `on: true`. lib/arke_postgres/query.ex:813: ArkePostgres.Query.get_link_query/7 warning: missing `:on` in join, defaulting to `on: true`. lib/arke_postgres/query.ex:838: ArkePostgres.Query.get_link_query/7 warning: this clause cannot match because a previous clause at line 801 matches the same pattern as this clause │ 809 │ defp get_where_field_by_direction(:parent), │ ~ │ └─ lib/arke_postgres/query.ex:809:8 warning: invalid association `parent_id` in schema ArkePostgres.ArkeLink: associated module ArkePostgres.ArkeUnit is not an Ecto schema lib/arke_postgres/tables/arke_link.ex:15: ArkePostgres.ArkeLink (module) warning: invalid association `child_id` in schema ArkePostgres.ArkeLink: associated module ArkePostgres.ArkeUnit is not an Ecto schema lib/arke_postgres/tables/arke_link.ex:15: ArkePostgres.ArkeLink (module) warning: module attribute @timestamps was set but never used │ 20 │ @timestamps ~w[inserted_at updated_at]a │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/tables/arke_schema.ex:20: ArkePostgres.Tables.ArkeSchema (module) warning: module attribute @timestamps was set but never used │ 20 │ @timestamps ~w[inserted_at updated_at]a │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/tables/arke_unit.ex:20: ArkePostgres.Tables.ArkeUnit (module) warning: unused alias ArkeManager │ 17 │ alias Arke.Boundary.ArkeManager │ ~ │ └─ lib/mix/tasks/arke_postgres.create_project.ex:17:3 warning: unused alias QueryManager │ 16 │ alias Arke.QueryManager │ ~ │ └─ lib/mix/tasks/arke_postgres.create_project.ex:16:3 warning: invalid association `arke_schema` in schema ArkePostgres.Tables.ArkeSchemaField: associated schema ArkePostgres.ArkeSchema does not exist lib/arke_postgres/tables/arke_schema_field.ex:15: ArkePostgres.Tables.ArkeSchemaField (module) warning: invalid association `arke_field` in schema ArkePostgres.Tables.ArkeSchemaField: associated schema ArkePostgres.ArkeField does not exist lib/arke_postgres/tables/arke_schema_field.ex:15: ArkePostgres.Tables.ArkeSchemaField (module) warning: module attribute @arke_schema_field_fields was set but never used │ 19 │ @arke_schema_field_fields ~w[arke_schema_id arke_parameter_id metadata]a │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/arke_postgres/tables/arke_schema_field.ex:19: ArkePostgres.Tables.ArkeSchemaField (module) warning: unused import Ecto.Changeset │ 17 │ import Ecto.Changeset │ ~ │ └─ lib/arke_postgres/tables/arke_schema_field.ex:17:3 Generated arke_postgres app ==> nerves_compatibility_test Generated nerves_compatibility_test app |nerves| Building OTP Release... * [Nerves] validating vm.args * skipping runtime configuration (config/runtime.exs not found) * creating _build/mangopi_mq_pro/rel/nerves_compatibility_test/releases/0.1.0/vm.args Updating base firmware image with Erlang release... Copying rootfs_overlay: /work/proj/_build/mangopi_mq_pro/nerves/rootfs_overlay Copying rootfs_overlay: /work/proj/rootfs_overlay Building /work/proj/_build/mangopi_mq_pro/nerves/images/nerves_compatibility_test.fw... Firmware UUID: fall-exhibit (3d5e5040-3949-5f4c-360b-09f939d13b91) Firmware built successfully! 🎉 Now you may install it to a MicroSD card using `mix burn` or upload it to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`.