bearcat_phoenix

Build log

nerves_system_x86_64

bearcat_phoenix 0.1.1 · fail · run bearcat_phoenix-0.1.1-1790059582344
692 of 692 lines
1Resolving Hex dependencies...2Resolution completed in 0.723s3Unchanged:4  bearcat_phoenix 0.1.15  circular_buffer 1.1.06  csv 2.0.07  elixir_make 0.10.08  httpotion 3.0.3 RETIRED!9    (deprecated) Not really maintained, please check out Tesla10  ibrowse 4.5.011  interactive_cmd 0.1.412  jason 1.4.513  mime 1.6.014  nerves 1.15.015  nerves_discovery 0.1.516  nerves_logging 0.2.417  nerves_runtime 0.13.1318  nerves_system_bbb 2.30.219  nerves_system_br 1.34.420  nerves_system_mangopi_mq_pro 0.17.221  nerves_system_qemu_aarch64 0.4.222  nerves_system_rpi 2.1.223  nerves_system_rpi0 2.1.224  nerves_system_rpi0_2 2.1.225  nerves_system_rpi2 2.1.226  nerves_system_rpi3 2.1.227  nerves_system_rpi4 2.1.228  nerves_system_rpi5 2.1.229  nerves_system_x86_64 1.34.230  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.131  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.132  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.133  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.134  nerves_toolchain_x86_64_nerves_linux_musl 15.3.135  nerves_uevent 0.1.736  parallel_stream 1.0.637  plug 1.4.5 VULNERABLE!38    EEF-CVE-2026-56813 (LOW)39    aka: CVE-2026-56813, GHSA-wpmj-jh88-rpgm40    Cookie attribute injection in Plug.Conn.Cookies.encode/241    https://osv.dev/vulnerability/EEF-CVE-2026-568134243    EEF-CVE-2026-56814 (MEDIUM)44    aka: CVE-2026-56814, GHSA-95qv-c9g9-rm6345    Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)46    https://osv.dev/vulnerability/EEF-CVE-2026-568144748    EEF-CVE-2026-8468 (HIGH)49    aka: CVE-2026-8468, GHSA-468c-vq7p-gh6450    Unbounded buffer accumulation in multipart header parsing causes denial of service in plug51    https://osv.dev/vulnerability/EEF-CVE-2026-846852  poison 3.1.053  property_table 0.3.454  ring_logger 0.11.755  shoehorn 0.9.356  tablet 0.3.357  toolshed 0.5.058  uboot_env 1.0.259* Getting bearcat_phoenix (Hex package)60* Getting nerves (Hex package)61* Getting shoehorn (Hex package)62* Getting ring_logger (Hex package)63* Getting toolshed (Hex package)64* Getting nerves_runtime (Hex package)65* Getting nerves_system_bbb (Hex package)66* Getting nerves_system_mangopi_mq_pro (Hex package)67* Getting nerves_system_qemu_aarch64 (Hex package)68* Getting nerves_system_rpi (Hex package)69* Getting nerves_system_rpi0 (Hex package)70* Getting nerves_system_rpi0_2 (Hex package)71* Getting nerves_system_rpi2 (Hex package)72* Getting nerves_system_rpi3 (Hex package)73* Getting nerves_system_rpi4 (Hex package)74* Getting nerves_system_rpi5 (Hex package)75* Getting nerves_system_x86_64 (Hex package)76* Getting nerves_system_br (Hex package)77* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)78* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)79* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)80* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)81* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)82* Getting nerves_logging (Hex package)83* Getting nerves_uevent (Hex package)84* Getting uboot_env (Hex package)85* Getting elixir_make (Hex package)86* Getting property_table (Hex package)87* Getting circular_buffer (Hex package)88* Getting interactive_cmd (Hex package)89* Getting jason (Hex package)90* Getting nerves_discovery (Hex package)91* Getting tablet (Hex package)92* Getting csv (Hex package)93* Getting httpotion (Hex package)94* Getting plug (Hex package)95* Getting poison (Hex package)96* Getting mime (Hex package)97* Getting ibrowse (Hex package)98* Getting parallel_stream (Hex package)99Found retired packages, see above for details100Found packages with security advisories, see above for details101==> jason102Compiling 10 files (.ex)103Generated jason app104==> tablet105Compiling 2 files (.ex)106Generated tablet app107==> elixir_make108Compiling 8 files (.ex)109Generated elixir_make app110==> nerves_discovery111Compiling 5 files (.ex)112Generated nerves_discovery app113==> interactive_cmd114Compiling 1 file (.ex)115Generated interactive_cmd app116==> nerves117HOST_CC port.o118HOST_LD port119Compiling 55 files (.ex)120Generated nerves app121==> nerves_compatibility_test122123Nerves environment124  MIX_TARGET:   x86_64125  MIX_ENV:      prod126127Checking for prebuilt Nerves artifacts...128    warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes129    │130 18 │         preferred_cli_env: ["coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test]131    │                             ~132    │133    └─ /work/proj/deps_x86_64/csv/mix.exs:18:29134135    warning: String.strip/1 is deprecated. Use String.trim/1 instead136    │137  4 │   @version File.read!("VERSION") |> String.strip138    │                                            ~139    │140    └─ /work/proj/deps_x86_64/poison/mix.exs:4:44: Poison.Mixfile (module)141142    warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes143    │144 17 │         preferred_cli_env: ["coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test]145    │                             ~146    │147    └─ /work/proj/deps_x86_64/parallel_stream/mix.exs:17:29148149  Found nerves_system_x86_64 in cache150    /home/nerves/.nerves/artifacts/nerves_system_x86_64-portable-1.34.2151  Found nerves_toolchain_x86_64_nerves_linux_musl in cache152    /home/nerves/.nerves/artifacts/nerves_toolchain_x86_64_nerves_linux_musl-linux_x86_64-15.3.1153==> nerves154    warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes155    │156 18 │         preferred_cli_env: ["coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test]157    │                             ~158    │159    └─ /work/proj/deps_x86_64/csv/mix.exs:18:29160161    warning: String.strip/1 is deprecated. Use String.trim/1 instead162    │163  4 │   @version File.read!("VERSION") |> String.strip164    │                                            ~165    │166    └─ /work/proj/deps_x86_64/poison/mix.exs:4:44: Poison.Mixfile (module)167168    warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes169    │170 17 │         preferred_cli_env: ["coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test]171    │                             ~172    │173    └─ /work/proj/deps_x86_64/parallel_stream/mix.exs:17:29174175==> nerves_compatibility_test176177Nerves environment178  MIX_TARGET:   x86_64179  MIX_ENV:      prod180181==> plug182Compiling 1 file (.erl)183warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"184  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2185  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1186  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5187  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2188  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4189  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2190191Compiling 44 files (.ex)192     warning: using single-quoted strings to represent charlists is deprecated.193     Use ~c"" if you indeed want a charlist or use "" instead.194     You may run "mix format --migrate" to change all single-quoted195     strings to use the ~c sigil and fix this warning.196     │197 230 │     generated? = :erlang.system_info(:otp_release) >= '19'198     │                                                       ~199     │200     └─ lib/plug/builder.ex:230:55201202     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead203     │204 422 │       when not state in @unsent do205     │                      ~206     │207     └─ lib/plug/conn.ex:422:22208209     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead210     │211 446 │       when not state in @unsent do212     │                      ~213     │214     └─ lib/plug/conn.ex:446:22215216     warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead217     │218 506 │       when not state in @unsent do219     │                      ~220     │221     └─ lib/plug/conn.ex:506:22222223      warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead224      │225 1045 │   def put_session(%Conn{state: state}, _key, _value) when not state in @unsent,226      │                                                                     ~227      │228      └─ lib/plug/conn.ex:1045:69229230      warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead231      │232 1069 │   def delete_session(%Conn{state: state}, _key) when not state in @unsent,233      │                                                                ~234      │235      └─ lib/plug/conn.ex:1069:64236237      warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead238      │239 1101 │   def configure_session(%Conn{state: state}, _opts) when not state in @unsent,240      │                                                                    ~241      │242      └─ lib/plug/conn.ex:1101:68243244      warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead245      │246 1123 │       when not state in @unsent do247      │                      ~248      │249      └─ lib/plug/conn.ex:1123:22250251    warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead252    │253  6 │   custom_statuses = Application.get_env(:plug, :statuses, %{})254    │                                 ~255    │256    └─ lib/plug/conn/status.ex:6:33: Plug.Conn.Status (module)257258    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead259    │260 65 │     mask(left, right, <<acc::binary, x ^^^ y>>)261    │                                        ~262    │263    └─ lib/plug/crypto.ex:65:40264265    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead266    │267 87 │     masked_compare(left, right, mask, acc ||| (x ^^^ (y ^^^ z)))268    │                                                  ~269    │270    └─ lib/plug/crypto.ex:87:50271272    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead273    │274 87 │     masked_compare(left, right, mask, acc ||| (x ^^^ (y ^^^ z)))275    │                                                         ~276    │277    └─ lib/plug/crypto.ex:87:57278279     warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead280     │281 108 │     secure_compare(left, right, acc ||| (x ^^^ y))282     │                                            ~283     │284     └─ lib/plug/crypto.ex:108:44285286    warning: use Bitwise is deprecated. import Bitwise instead287    │288  6 │   use Bitwise289    │   ~~~~~~~~~~~290    │291    └─ lib/plug/crypto.ex:6: Plug.Crypto (module)292293    warning: use Bitwise is deprecated. import Bitwise instead294    │295 13 │   use Bitwise296    │   ~~~~~~~~~~~297    │298    └─ lib/plug/crypto/key_generator.ex:13: Plug.Crypto.KeyGenerator (module)299300    warning: the variable "max_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator301    │302 59 │     <<bin::binary-size(max_length), _::binary>> = key303    │                        ~304    │305    └─ lib/plug/crypto/key_generator.ex:59:24: Plug.Crypto.KeyGenerator.generate/7306307    warning: unused require Bitwise308    │309 71 │   require Bitwise310    │   ~311    │312    └─ lib/plug/csrf_protection.ex:71:3313314    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead315    │316  4 │   if Application.get_env(:plug, :mimes) do317    │                  ~318    │319    └─ lib/plug/mime.ex:4:18: Plug.MIME (module)320321    warning: unused require Logger322    │323 32 │   require Logger324    │   ~325    │326    └─ lib/plug/request_id.ex:32:3327328     warning: calling super for GenServer callback handle_info/2 is deprecated329     │330 166 │     super(msg, state)331     │     ~332     │333     └─ lib/plug/upload.ex:166:5: Plug.Upload.handle_info/2334335    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead336    │337 37 │         reraise e, System.stacktrace338    │                           ~339    │340    └─ lib/plug/parsers/multipart.ex:37:27: Plug.Parsers.MULTIPART.parse/5341    └─ lib/plug/parsers/multipart.ex:39:73: Plug.Parsers.MULTIPART.parse/5342343    warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead344    │345 12 │       worker(Plug.Upload, [])346    │       ~347    │348    └─ lib/plug/supervisor.ex:12:7: Plug.Supervisor.init/1349350    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead351    │352 16 │     supervise(children, strategy: :one_for_one)353    │     ~354    │355    └─ lib/plug/supervisor.ex:16:5: Plug.Supervisor.init/1356357     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)358     │359 210 │       if Code.ensure_compiled?(module) and function_exported?(module, :init, 1) do360     │               ~361     │362     └─ lib/plug/parsers.ex:210:15: Plug.Parsers.convert_parsers/2363364    warning: MIME.valid?/1 is deprecated. Use MIME.extensions(type) != [] instead365    │366 27 │     MIME.valid?(type)367    │          ~368    │369    └─ lib/plug/mime.ex:27:10: Plug.MIME.valid?/1370371    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead372    │373 82 │     __catch__(conn, kind, reason, reason, System.stacktrace, handle_errors)374    │                                                  ~375    │376    └─ lib/plug/error_handler.ex:82:50: Plug.ErrorHandler.__catch__/4377378     warning: Code.get_docs/2 is deprecated. Code.get_docs/2 always returns nil as its outdated documentation is no longer stored on BEAM files. Use Code.fetch_docs/1 instead379     │380 288 │     with docs when is_list(docs) <- Code.get_docs(module, :docs),381     │                                          ~382     │383     └─ lib/plug/debugger.ex:288:42: Plug.Debugger.get_doc/4384385     warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead386     │387 309 │           "#{kind} " <> Macro.to_string(code, &clause_match/2)388     │                               ~389     │390     └─ lib/plug/debugger.ex:309:31: Plug.Debugger.get_clauses/3391392     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead393     │394 115 │     __catch__(conn, kind, reason, System.stacktrace, opts)395     │                                          ~396     │397     └─ lib/plug/debugger.ex:115:42: Plug.Debugger.__catch__/4398399    warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead400    │401 44 │     signature  = :crypto.hmac(:sha, key, plain_text)402    │                          ~403    │404    └─ lib/plug/crypto/message_verifier.ex:44:26: Plug.Crypto.MessageVerifier.hmac_sha1_sign/2405    └─ lib/plug/crypto/message_verifier.ex:52:29: Plug.Crypto.MessageVerifier.hmac_sha1_verify/2406    └─ lib/plug/crypto/message_verifier.ex:74:26: Plug.Crypto.MessageVerifier.hmac_sha2_sign/3407    └─ lib/plug/crypto/message_verifier.ex:82:29: Plug.Crypto.MessageVerifier.hmac_sha2_verify/2408409     warning: the following pattern will never match:410411         docs when is_list(docs) <- Code.get_docs(module, :docs)412413     because the right-hand side has type:414415         dynamic(nil)416417     where "docs" was given the type:418419         # type: empty_list() or non_empty_list(term(), term())420         # from: lib/plug/debugger.ex:288:20421         is_list(docs)422423     where "module" was given the type:424425         # type: dynamic()426         # from: lib/plug/debugger.ex:287:16427         module428429     type warning found at:430     │431 288 │     with docs when is_list(docs) <- Code.get_docs(module, :docs),432     │          ~433     │434     └─ lib/plug/debugger.ex:288:10: Plug.Debugger.get_doc/4435436    warning: :crypto.block_encrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_init + crypto:crypto_update + crypto:crypto_final instead437    │438 60 │     {cipher_text, cipher_tag} = :crypto.block_encrypt(:aes_gcm, key, iv, {aad, plain_text})439    │                                         ~440    │441    └─ lib/plug/crypto/message_encryptor.ex:60:41: Plug.Crypto.MessageEncryptor.aes128_gcm_encrypt/3442    └─ lib/plug/crypto/message_encryptor.ex:107:41: Plug.Crypto.MessageEncryptor.aes_gcm_key_wrap/3443    └─ lib/plug/crypto/message_encryptor.ex:299:13: Plug.Crypto.MessageEncryptor.encrypt_legacy/4444    └─ lib/plug/crypto/message_encryptor.ex:317:27: Plug.Crypto.MessageEncryptor.aes256_cbc_hmac_sha1_encrypt/3445446    warning: :crypto.block_decrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_init + crypto:crypto_update + crypto:crypto_final instead447    │448 82 │             :crypto.block_decrypt(:aes_gcm, key, iv, {aad, cipher_text, cipher_tag})449    │                     ~450    │451    └─ lib/plug/crypto/message_encryptor.ex:82:21: Plug.Crypto.MessageEncryptor.aes128_gcm_decrypt/3452    └─ lib/plug/crypto/message_encryptor.ex:123:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3453    └─ lib/plug/crypto/message_encryptor.ex:125:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3454    └─ lib/plug/crypto/message_encryptor.ex:127:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3455    └─ lib/plug/crypto/message_encryptor.ex:306:13: Plug.Crypto.MessageEncryptor.decrypt_legacy/4456    └─ lib/plug/crypto/message_encryptor.ex:334:17: Plug.Crypto.MessageEncryptor.aes256_cbc_hmac_sha1_decrypt/3457458     warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead459     │460 268 │     cipher_tag = Base.url_encode64(:crypto.hmac(:sha, sign_secret, cipher_text))461     │                                            ~462     │463     └─ lib/plug/crypto/message_encryptor.ex:268:44: Plug.Crypto.MessageEncryptor.encode_legacy_token/3464     └─ lib/plug/crypto/message_encryptor.ex:283:40: Plug.Crypto.MessageEncryptor.decode_legacy_token/2465466    warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead467    │468 78 │     &:crypto.hmac(digest, secret, &1)469    │              ~470    │471    └─ lib/plug/crypto/key_generator.ex:78:14: Plug.Crypto.KeyGenerator.mac_fun/2472473    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead474    │475 21 │     stack   = System.stacktrace476    │                      ~477    │478    └─ lib/plug/conn/wrapper_error.ex:21:22: Plug.Conn.WrapperError.reraise/3479    └─ lib/plug/conn/wrapper_error.ex:26:40: Plug.Conn.WrapperError.reraise/3480481    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead482    │483 21 │         stack = System.stacktrace()484    │                        ~485    │486    └─ lib/plug/adapters/cowboy/handler.ex:21:24: Plug.Adapters.Cowboy.Handler.upgrade/4487    └─ lib/plug/adapters/cowboy/handler.ex:26:24: Plug.Adapters.Cowboy.Handler.upgrade/4488    └─ lib/plug/adapters/cowboy/handler.ex:30:24: Plug.Adapters.Cowboy.Handler.upgrade/4489490    warning: a struct for Plug.Conn is expected on struct update:491492        %Plug.Conn{493          conn494          | adapter: {Plug.Adapters.Test.Conn, state},495            host: uri.host || conn.host || "www.example.com",496            method: method,497            owner: owner,498            path_info: split_path(uri.path),499            port: uri.port || 80,500            peer: {{127, 0, 0, 1}, 111_317},501            remote_ip: conn.remote_ip || {127, 0, 0, 1},502            req_headers: req_headers,503            request_path: uri.path,504            query_string: query,505            body_params: body_params || %Plug.Conn.Unfetched{aspect: :body_params},506            params: params || %Plug.Conn.Unfetched{aspect: :params},507            scheme: String.to_atom(String.downcase(uri.scheme || "http"))508        }509510    but got type:511512        dynamic(%{..., req_headers: term()})513514    where "conn" was given the type:515516        # type: dynamic(%{..., req_headers: term()})517        # from: lib/plug/adapters/test/conn.ex:15:48518        body_or_params(body_or_params, query, conn.req_headers)519520    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"521522    type warning found at:523    │524 19 │     %Plug.Conn{conn |525    │     ~526    │527    └─ lib/plug/adapters/test/conn.ex:19:5: Plug.Adapters.Test.Conn.conn/4528529    warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead530    │531 46 │       Enum.partition(cowboy_options, &is_tuple(&1) and tuple_size(&1) == 2)532    │            ~533    │534    └─ lib/plug/adapters/cowboy.ex:46:12: Plug.Adapters.Cowboy.args/4535536Generated plug app537==> parallel_stream538Compiling 11 files (.ex)539    warning: Stream.chunk/4 is deprecated. Use Stream.chunk_every/4 instead540    │541 16 │     |> Stream.chunk(chunk_size, chunk_size, [])542    │               ~543    │544    └─ lib/parallel_stream/producer.ex:16:15: ParallelStream.Producer.build!/4545546Generated parallel_stream app547==> csv548Compiling 10 files (.ex)549    warning: outdented heredoc line. The contents inside the heredoc should be indented at the same level as the closing """. The following is forbidden:550551        def text do552          """553        contents554          """555        end556557    Instead make sure the contents are indented as much as the heredoc closing:558559        def text do560          """561          contents562          """563        end564565    The current heredoc line is indented too little566    │567 66 │ not terminate.\\n\\nEscape sequences are allowed to span up to 1000 lines. \568    │        ~569    │570    └─ lib/csv.ex:66:8571572    warning: default arguments in protocol definitions is deprecated573    │574 11 │   def encode(data, env \\ [])575    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~576    │577    └─ lib/csv/encoding/encode.ex:11: CSV.Encode (module)578579    warning: protocols can only define functions without implementation via def/1, found: encode/1580    │581  1 │ defprotocol CSV.Encode do582    │ ~~~~~~~~~~~~~~~~~~~~~~~~~583    │584    └─ lib/csv/encoding/encode.ex:1: CSV.Encode (module)585586    warning: String.strip/1 is deprecated. Use String.trim/1 instead587    │588 78 │       true -> field |> String.strip589    │                               ~590    │591    └─ lib/csv/decoding/parser.ex:78:31: CSV.Decoding.Parser.strip/2592593Generated csv app594==> bearcat_phoenix595Compiling 3 files (.ex)596    warning: unused import Plug.Conn597    │598  2 │   import Plug.Conn599    │   ~600    │601    └─ lib/bearcat_phoenix.ex:2:3602603    warning: unused require BearcatPhoenix.Client.Course604    │605  3 │   require BearcatPhoenix.Client.Course606    │   ~607    │608    └─ lib/bearcat_phoenix.ex:3:3609610    warning: unused require BearcatPhoenix.Client.Report611    │612  4 │   require BearcatPhoenix.Client.Report613    │   ~614    │615    └─ lib/bearcat_phoenix.ex:4:3616617    warning: Poison.decode/1 is undefined (module Poison is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)618    │619  8 │       Poison.decode(response.body)620    │              ~621    │622    └─ lib/bearcat_phoenix.ex:8:14: BearcatPhoenix.parse_response/1623624    warning: Plug.Conn.Query.encode/1 is undefined (module Plug.Conn.Query is not available or is yet to be defined)625    │626 15 │     Plug.Conn.Query.encode(params)627    │                     ~628    │629    └─ lib/bearcat_phoenix.ex:15:21: BearcatPhoenix.encode_params/1630631both :extra_applications and :applications was found in your mix.exs. You most likely want to remove the :applications key, as all applications are derived from your dependencies632Generated bearcat_phoenix app633==> nerves_compatibility_test634Compiling 2 files (.ex)635Generated nerves_compatibility_test app636|nerves| Building OTP Release...637638* [Nerves] validating vm.args639* skipping runtime configuration (config/runtime.exs not found)640* creating _build/x86_64/rel/nerves_compatibility_test/releases/0.1.0/vm.args641Updating base firmware image with Erlang release...642Copying rootfs_overlay: /work/proj/_build/x86_64/nerves/rootfs_overlay643Copying rootfs_overlay: /work/proj/rootfs_overlay644Building /work/proj/_build/x86_64/nerves/images/nerves_compatibility_test.fw...645Firmware UUID: net-resist (9bc1b96f-b66a-5018-3b98-d8f5fecc7b17)646Firmware built successfully! 🎉647648Now you may install it to a MicroSD card using `mix burn` or upload it649to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`.650651==> nerves652    warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes653    │654 18 │         preferred_cli_env: ["coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test]655    │                             ~656    │657    └─ /work/proj/deps_x86_64/csv/mix.exs:18:29658659    warning: String.strip/1 is deprecated. Use String.trim/1 instead660    │661  4 │   @version File.read!("VERSION") |> String.strip662    │                                            ~663    │664    └─ /work/proj/deps_x86_64/poison/mix.exs:4:44: Poison.Mixfile (module)665666    warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes667    │668 17 │         preferred_cli_env: ["coveralls": :test, "coveralls.detail": :test, "coveralls.post": :test]669    │                             ~670    │671    └─ /work/proj/deps_x86_64/parallel_stream/mix.exs:17:29672673==> nerves_compatibility_test674675Nerves environment676  MIX_TARGET:   x86_64677  MIX_ENV:      prod678679==> bearcat_phoenix680Compiling 3 files (.ex)681    error: module Plug.Conn is not loaded and could not be found682    │683  2 │   import Plug.Conn684    │   ^685    │686    └─ lib/bearcat_phoenix.ex:2:3: BearcatPhoenix (module)687688689== Compilation error in file lib/bearcat_phoenix.ex ==690** (CompileError) lib/bearcat_phoenix.ex: cannot compile module BearcatPhoenix (errors have been logged)691692could not compile dependency :bearcat_phoenix, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile bearcat_phoenix --force", update it with "mix deps.update bearcat_phoenix" or clean it with "mix deps.clean bearcat_phoenix"