diff --git a/Makefile b/Makefile index 621a2ec7..26e1d83e 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,8 @@ PROJECTS := farmbot_celery_script \ farmbot_core \ farmbot_ext \ farmbot_firmware \ - farmbot_os + farmbot_os \ + farmbot_telemetry all: help @@ -52,4 +53,4 @@ deps: @for project in $(PROJECTS) ; do \ echo Fetching deps: $$project ; \ cd $$project && mix deps.get && cd .. ; \ - done \ No newline at end of file + done diff --git a/farmbot_celery_script/mix.exs b/farmbot_celery_script/mix.exs index 6ae2ea71..9441f4ac 100644 --- a/farmbot_celery_script/mix.exs +++ b/farmbot_celery_script/mix.exs @@ -47,6 +47,7 @@ defmodule FarmbotCeleryScript.MixProject do # Run "mix help deps" to learn about dependencies. defp deps do [ + {:farmbot_telemetry, path: "../farmbot_telemetry", env: Mix.env()}, {:jason, "~> 1.1"}, {:timex, "~> 3.4"}, {:excoveralls, "~> 0.10", only: [:test], targets: [:host]}, diff --git a/farmbot_celery_script/mix.lock b/farmbot_celery_script/mix.lock index 82af3379..961f1d3f 100644 --- a/farmbot_celery_script/mix.lock +++ b/farmbot_celery_script/mix.lock @@ -16,6 +16,7 @@ "nimble_parsec": {:hex, :nimble_parsec, "0.2.2", "d526b23bdceb04c7ad15b33c57c4526bf5f50aaa70c7c141b4b4624555c68259", [:mix], [], "hexpm"}, "parse_trans": {:hex, :parse_trans, "3.3.0", "09765507a3c7590a784615cfd421d101aec25098d50b89d7aa1d66646bc571c1", [:rebar3], [], "hexpm"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, "timex": {:hex, :timex, "3.6.1", "efdf56d0e67a6b956cc57774353b0329c8ab7726766a11547e529357ffdc1d56", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5 or ~> 1.0.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, "tzdata": {:hex, :tzdata, "1.0.1", "f6027a331af7d837471248e62733c6ebee86a72e57c613aa071ebb1f750fc71a", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm"}, diff --git a/farmbot_core/mix.exs b/farmbot_core/mix.exs index e3ab1a70..30ce803e 100644 --- a/farmbot_core/mix.exs +++ b/farmbot_core/mix.exs @@ -57,6 +57,7 @@ defmodule FarmbotCore.MixProject do [ {:farmbot_celery_script, path: "../farmbot_celery_script", env: Mix.env()}, {:farmbot_firmware, path: "../farmbot_firmware", env: Mix.env()}, + {:farmbot_telemetry, path: "../farmbot_telemetry", env: Mix.env()}, {:elixir_make, "~> 0.6", runtime: false}, {:sqlite_ecto2, "~> 2.3"}, {:timex, "~> 3.4"}, diff --git a/farmbot_core/mix.lock b/farmbot_core/mix.lock index 57918acc..3d044b1c 100644 --- a/farmbot_core/mix.lock +++ b/farmbot_core/mix.lock @@ -39,6 +39,7 @@ "sqlite_ecto2": {:hex, :sqlite_ecto2, "2.3.1", "fe58926854c3962c4c8710bd1070dd4ba3717ba77250387794cb7a65f77006aa", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "2.2.9", [hex: :ecto, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: false]}, {:sqlitex, "~> 1.4", [hex: :sqlitex, repo: "hexpm", optional: false]}], "hexpm"}, "sqlitex": {:hex, :sqlitex, "1.4.3", "a50f12d6aeb25f4ebb128453386c09bbba8f5abd3c7713dc5eaa92f359926ac5", [:mix], [{:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:esqlite, "~> 0.2.4", [hex: :esqlite, repo: "hexpm", optional: false]}], "hexpm"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, "timex": {:hex, :timex, "3.6.1", "efdf56d0e67a6b956cc57774353b0329c8ab7726766a11547e529357ffdc1d56", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5 or ~> 1.0.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, "tzdata": {:hex, :tzdata, "1.0.1", "f6027a331af7d837471248e62733c6ebee86a72e57c613aa071ebb1f750fc71a", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm"}, diff --git a/farmbot_ext/mix.exs b/farmbot_ext/mix.exs index 9c122d29..a3ba0e0f 100644 --- a/farmbot_ext/mix.exs +++ b/farmbot_ext/mix.exs @@ -34,6 +34,7 @@ defmodule FarmbotExt.MixProject do defp deps do [ {:farmbot_core, path: "../farmbot_core", env: Mix.env()}, + {:farmbot_telemetry, path: "../farmbot_telemetry", env: Mix.env()}, {:tesla, "~> 1.2"}, {:hackney, "~> 1.15"}, {:uuid, "~> 1.1"}, diff --git a/farmbot_ext/mix.lock b/farmbot_ext/mix.lock index a9c826fd..c4805132 100644 --- a/farmbot_ext/mix.lock +++ b/farmbot_ext/mix.lock @@ -39,6 +39,7 @@ "sqlite_ecto2": {:hex, :sqlite_ecto2, "2.3.1", "fe58926854c3962c4c8710bd1070dd4ba3717ba77250387794cb7a65f77006aa", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "2.2.9", [hex: :ecto, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: false]}, {:sqlitex, "~> 1.4", [hex: :sqlitex, repo: "hexpm", optional: false]}], "hexpm"}, "sqlitex": {:hex, :sqlitex, "1.5.1", "0242c9a7602180b4f974315e6776c48d4ba211e9f4c5774dc886f15dc1a2edb3", [:mix], [{:decimal, "~> 1.7", [hex: :decimal, repo: "hexpm", optional: false]}, {:esqlite, "~> 0.3.0", [hex: :esqlite, repo: "hexpm", optional: false]}], "hexpm"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, "tesla": {:hex, :tesla, "1.2.1", "864783cc27f71dd8c8969163704752476cec0f3a51eb3b06393b3971dc9733ff", [:mix], [{:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "~> 4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}], "hexpm"}, "timex": {:hex, :timex, "3.5.0", "b0a23167da02d0fe4f1a4e104d1f929a00d348502b52432c05de875d0b9cffa5", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, "tzdata": {:hex, :tzdata, "0.5.20", "304b9e98a02840fb32a43ec111ffbe517863c8566eb04a061f1c4dbb90b4d84c", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, diff --git a/farmbot_firmware/mix.exs b/farmbot_firmware/mix.exs index ea21f70e..b4eede2a 100644 --- a/farmbot_firmware/mix.exs +++ b/farmbot_firmware/mix.exs @@ -42,6 +42,7 @@ defmodule FarmbotFirmware.MixProject do # Run "mix help deps" to learn about dependencies. defp deps do [ + {:farmbot_telemetry, path: "../farmbot_telemetry", env: Mix.env()}, {:circuits_uart, "~> 1.3"}, {:excoveralls, "~> 0.10", only: [:test], targets: [:host]}, {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], targets: [:host], runtime: false}, diff --git a/farmbot_firmware/mix.lock b/farmbot_firmware/mix.lock index 5f9b0169..dc2f3ee4 100644 --- a/farmbot_firmware/mix.lock +++ b/farmbot_firmware/mix.lock @@ -37,6 +37,7 @@ "sqlite_ecto2": {:hex, :sqlite_ecto2, "2.3.1", "fe58926854c3962c4c8710bd1070dd4ba3717ba77250387794cb7a65f77006aa", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "2.2.9", [hex: :ecto, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: false]}, {:sqlitex, "~> 1.4", [hex: :sqlitex, repo: "hexpm", optional: false]}], "hexpm"}, "sqlitex": {:hex, :sqlitex, "1.4.3", "a50f12d6aeb25f4ebb128453386c09bbba8f5abd3c7713dc5eaa92f359926ac5", [:mix], [{:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:esqlite, "~> 0.2.4", [hex: :esqlite, repo: "hexpm", optional: false]}], "hexpm"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, "timex": {:hex, :timex, "3.4.2", "d74649c93ad0e12ce5b17cf5e11fbd1fb1b24a3d114643e86dba194b64439547", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, "tzdata": {:hex, :tzdata, "0.5.19", "7962a3997bf06303b7d1772988ede22260f3dae1bf897408ebdac2b4435f4e6a", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm"}, diff --git a/farmbot_os/mix.exs b/farmbot_os/mix.exs index 05cc1ffc..eceeb507 100644 --- a/farmbot_os/mix.exs +++ b/farmbot_os/mix.exs @@ -69,6 +69,7 @@ defmodule FarmbotOS.MixProject do defp deps do [ # Farmbot stuff + {:farmbot_telemetry, path: "../farmbot_telemetry", env: Mix.env()}, {:farmbot_core, path: "../farmbot_core", env: Mix.env()}, {:farmbot_ext, path: "../farmbot_ext", env: Mix.env()}, diff --git a/farmbot_os/mix.lock b/farmbot_os/mix.lock index 1fceb081..fdfbbb61 100644 --- a/farmbot_os/mix.lock +++ b/farmbot_os/mix.lock @@ -77,6 +77,7 @@ "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.5", "6eaf7ad16cb568bb01753dbbd7a95ff8b91c7979482b95f38443fe2c8852a79b", [:make, :mix, :rebar3], [], "hexpm"}, "system_registry": {:hex, :system_registry, "0.8.2", "df791dc276652fcfb53be4dab823e05f8269b96ac57c26f86a67838dbc0eefe7", [:mix], [], "hexpm"}, "table_rex": {:hex, :table_rex, "2.0.0", "712783cbc2decb4d644d2ab8ad9315294f960c41b2cf0539308164922e352084", [:mix], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, "tesla": {:hex, :tesla, "1.3.0", "f35d72f029e608f9cdc6f6d6fcc7c66cf6d6512a70cfef9206b21b8bd0203a30", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "~> 4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 0.4", [hex: :mint, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.3", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm"}, "timex": {:hex, :timex, "3.5.0", "b0a23167da02d0fe4f1a4e104d1f929a00d348502b52432c05de875d0b9cffa5", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, "toolshed": {:hex, :toolshed, "0.2.10", "31e33f3bfbd88085a5f34844930a75e579940417873eb8a5c25b9525ad1a1372", [:mix], [{:nerves_runtime, "~> 0.8", [hex: :nerves_runtime, repo: "hexpm", optional: true]}], "hexpm"}, diff --git a/farmbot_telemetry/.formatter.exs b/farmbot_telemetry/.formatter.exs new file mode 100644 index 00000000..d2cda26e --- /dev/null +++ b/farmbot_telemetry/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/farmbot_telemetry/.gitignore b/farmbot_telemetry/.gitignore new file mode 100644 index 00000000..490ea820 --- /dev/null +++ b/farmbot_telemetry/.gitignore @@ -0,0 +1,24 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where third-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +farmbot_telemetry-*.tar + diff --git a/farmbot_telemetry/README.md b/farmbot_telemetry/README.md new file mode 100644 index 00000000..71138b79 --- /dev/null +++ b/farmbot_telemetry/README.md @@ -0,0 +1,21 @@ +# FarmbotTelemetry + +**TODO: Add description** + +## Installation + +If [available in Hex](https://hex.pm/docs/publish), the package can be installed +by adding `farmbot_telemetry` to your list of dependencies in `mix.exs`: + +```elixir +def deps do + [ + {:farmbot_telemetry, "~> 0.1.0"} + ] +end +``` + +Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc) +and published on [HexDocs](https://hexdocs.pm). Once published, the docs can +be found at [https://hexdocs.pm/farmbot_telemetry](https://hexdocs.pm/farmbot_telemetry). + diff --git a/farmbot_telemetry/lib/farmbot_telemetry.ex b/farmbot_telemetry/lib/farmbot_telemetry.ex new file mode 100644 index 00000000..dce95f0c --- /dev/null +++ b/farmbot_telemetry/lib/farmbot_telemetry.ex @@ -0,0 +1,18 @@ +defmodule FarmbotTelemetry do + @moduledoc """ + Documentation for FarmbotTelemetry. + """ + + @doc """ + Hello world. + + ## Examples + + iex> FarmbotTelemetry.hello() + :world + + """ + def hello do + :world + end +end diff --git a/farmbot_telemetry/lib/farmbot_telemetry/application.ex b/farmbot_telemetry/lib/farmbot_telemetry/application.ex new file mode 100644 index 00000000..ce3fe81a --- /dev/null +++ b/farmbot_telemetry/lib/farmbot_telemetry/application.ex @@ -0,0 +1,19 @@ +defmodule FarmbotTelemetry.Application do + # See https://hexdocs.pm/elixir/Application.html + # for more information on OTP Applications + @moduledoc false + + use Application + + def start(_type, _args) do + children = [ + # Starts a worker by calling: FarmbotTelemetry.Worker.start_link(arg) + # {FarmbotTelemetry.Worker, arg} + ] + + # See https://hexdocs.pm/elixir/Supervisor.html + # for other strategies and supported options + opts = [strategy: :one_for_one, name: FarmbotTelemetry.Supervisor] + Supervisor.start_link(children, opts) + end +end diff --git a/farmbot_telemetry/mix.exs b/farmbot_telemetry/mix.exs new file mode 100644 index 00000000..32f1be69 --- /dev/null +++ b/farmbot_telemetry/mix.exs @@ -0,0 +1,44 @@ +defmodule FarmbotTelemetry.MixProject do + use Mix.Project + @version Path.join([__DIR__, "..", "VERSION"]) |> File.read!() |> String.trim() + @elixir_version Path.join([__DIR__, "..", "ELIXIR_VERSION"]) |> File.read!() |> String.trim() + + def project do + [ + app: :farmbot_telemetry, + version: @version, + elixir: @elixir_version, + elixirc_options: [warnings_as_errors: true, ignore_module_conflict: true], + version: "0.1.0", + elixir: "~> 1.9", + start_permanent: Mix.env() == :prod, + preferred_cli_env: [ + test: :test, + coveralls: :test, + "coveralls.circle": :test, + "coveralls.detail": :test, + "coveralls.post": :test, + "coveralls.html": :test + ], + deps: deps() + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger], + mod: {FarmbotTelemetry.Application, []} + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + {:telemetry, "~> 0.4.0"}, + {:excoveralls, "~> 0.10", only: [:test], targets: [:host]}, + {:dialyxir, "~> 1.0.0-rc.3", only: [:dev], targets: [:host], runtime: false}, + {:ex_doc, "~> 0.19", only: [:dev], targets: [:host], runtime: false} + ] + end +end diff --git a/farmbot_telemetry/mix.lock b/farmbot_telemetry/mix.lock new file mode 100644 index 00000000..dde6bade --- /dev/null +++ b/farmbot_telemetry/mix.lock @@ -0,0 +1,20 @@ +%{ + "certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"}, + "dialyxir": {:hex, :dialyxir, "1.0.0-rc.7", "6287f8f2cb45df8584317a4be1075b8c9b8a69de8eeb82b4d9e6c761cf2664cd", [:mix], [{:erlex, ">= 0.2.5", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm"}, + "earmark": {:hex, :earmark, "1.4.2", "3aa0bd23bc4c61cf2f1e5d752d1bb470560a6f8539974f767a38923bb20e1d7f", [:mix], [], "hexpm"}, + "erlex": {:hex, :erlex, "0.2.5", "e51132f2f472e13d606d808f0574508eeea2030d487fc002b46ad97e738b0510", [:mix], [], "hexpm"}, + "ex_doc": {:hex, :ex_doc, "0.21.2", "caca5bc28ed7b3bdc0b662f8afe2bee1eedb5c3cf7b322feeeb7c6ebbde089d6", [:mix], [{:earmark, "~> 1.3.3 or ~> 1.4", [hex: :earmark, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}], "hexpm"}, + "excoveralls": {:hex, :excoveralls, "0.11.2", "0c6f2c8db7683b0caa9d490fb8125709c54580b4255ffa7ad35f3264b075a643", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm"}, + "hackney": {:hex, :hackney, "1.15.2", "07e33c794f8f8964ee86cebec1a8ed88db5070e52e904b8f12209773c1036085", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.5", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"}, + "idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"}, + "jason": {:hex, :jason, "1.1.2", "b03dedea67a99223a2eaf9f1264ce37154564de899fd3d8b9a21b1a6fd64afe7", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm"}, + "makeup": {:hex, :makeup, "1.0.0", "671df94cf5a594b739ce03b0d0316aa64312cee2574b6a44becb83cd90fb05dc", [:mix], [{:nimble_parsec, "~> 0.5.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, + "makeup_elixir": {:hex, :makeup_elixir, "0.14.0", "cf8b7c66ad1cff4c14679698d532f0b5d45a3968ffbcbfd590339cb57742f1ae", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm"}, + "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm"}, + "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm"}, + "nimble_parsec": {:hex, :nimble_parsec, "0.5.1", "c90796ecee0289dbb5ad16d3ad06f957b0cd1199769641c961cfe0b97db190e0", [:mix], [], "hexpm"}, + "parse_trans": {:hex, :parse_trans, "3.3.0", "09765507a3c7590a784615cfd421d101aec25098d50b89d7aa1d66646bc571c1", [:rebar3], [], "hexpm"}, + "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.5", "6eaf7ad16cb568bb01753dbbd7a95ff8b91c7979482b95f38443fe2c8852a79b", [:make, :mix, :rebar3], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, + "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm"}, +} diff --git a/farmbot_telemetry/test/farmbot_telemetry_test.exs b/farmbot_telemetry/test/farmbot_telemetry_test.exs new file mode 100644 index 00000000..4e5a3b9a --- /dev/null +++ b/farmbot_telemetry/test/farmbot_telemetry_test.exs @@ -0,0 +1,8 @@ +defmodule FarmbotTelemetryTest do + use ExUnit.Case + doctest FarmbotTelemetry + + test "greets the world" do + assert FarmbotTelemetry.hello() == :world + end +end diff --git a/farmbot_telemetry/test/test_helper.exs b/farmbot_telemetry/test/test_helper.exs new file mode 100644 index 00000000..869559e7 --- /dev/null +++ b/farmbot_telemetry/test/test_helper.exs @@ -0,0 +1 @@ +ExUnit.start() diff --git a/support/mix.tasks.farmbot.coveralls.ex b/support/mix.tasks.farmbot.coveralls.ex index 7b6fc581..45a3c973 100644 --- a/support/mix.tasks.farmbot.coveralls.ex +++ b/support/mix.tasks.farmbot.coveralls.ex @@ -3,7 +3,7 @@ defmodule Mix.Tasks.Farmbot.Coveralls do Mix Task to report the coverage for all of the individual projects that make up the repository. """ - + use Mix.Task Module.register_attribute(__MODULE__, :projects, accumulate: true) @projects :farmbot_celery_script @@ -11,6 +11,7 @@ defmodule Mix.Tasks.Farmbot.Coveralls do @projects :farmbot_ext @projects :farmbot_firmware @projects :farmbot_os + @projects :farmbot_telemetry def run(args) do @projects @@ -46,10 +47,10 @@ defmodule Mix.Tasks.Farmbot.Coveralls do end) else _ -> Mix.raise(""" - Could not read coverage JSON from #{coverage_file}. + Could not read coverage JSON from #{coverage_file}. Make sure to run `mix coveralls.json` in each project's parent directory. """) end end -end \ No newline at end of file +end