From 398f9045a310b1090d67c3b5c6cc18a5a9a9afd9 Mon Sep 17 00:00:00 2001 From: Jason Axelson Date: Mon, 1 Jan 2024 09:33:17 -1000 Subject: [PATCH 1/2] Bump version to 0.12 --- CHANGELOG.md | 11 +++++++++-- README.md | 18 ++++++++++++------ mix.exs | 2 +- mix.lock | 6 +++--- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccd22ee..b4bbe92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ -## Unreleased +## 0.12 +This is a major update that adds support for Cairo and makes Cairo the default renderer: * Added Cairo support - @ringlej -* Restructure C code - @ringlej +* Restructured C code - @ringlej + +Note: for Nerves setups you may need additional configuration for your display +to work as expected. If you're using an RPI3 you may want to add an `erlinit` +configuration so that your IEx output isn't displayed on the screen. To do so in your `config/target.exs` add: +# From: https://hexdocs.pm/nerves/1.10.5/connecting-to-a-nerves-target.html#hdmi-cable +`config :nerves, :erlinit, ctty: "ttyAMA0"` ## 0.11.0 Very minor fixes diff --git a/README.md b/README.md index 01adcaf..9d41d37 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,13 @@ This driver replaces both `:scenic_driver_glfw` and `:scenic_driver_nerves_rpi` ## Installation -If [available in Hex](https://hex.pm/docs/publish), the package can be installed -by adding `scenic_driver_local` to your list of dependencies in `mix.exs`: +scenic_driver_local can be installed by adding `scenic_driver_local` to your +list of dependencies in `mix.exs`: ```elixir def deps do [ - {:scenic_driver_local, "~> 0.11.0"} + {:scenic_driver_local, "~> 0.12.0"} ] end ``` @@ -35,9 +35,9 @@ Example: There are quite a few new options as well. It uses `NimbleOptions` to confirm them, so look at the `Scenic.Driver.Local` module for details. -## Targets +## Targets (Nerves) -This driver figures out what underlying graphics technology to use depending on what your MIX_TARGET is set to. +This driver figures out what underlying graphics technology to use depending on what your `MIX_TARGET` environment variable is set to. For example, for apps running on a Mac/PC/Linux, it is usually set to `host`, which causes the driver to use `cairo-gtk` as the underlying tech. @@ -47,7 +47,10 @@ Previous versions of `scenic_driver_local` would use `bcm` (Broadcom Manager) fo You can explicitly use thes by setting `SCENIC_LOCAL_TARGET=bcm` or `SCENIC_LOCAL_TARGET=drm`, **but these options are being deprecated**. Please try the default of `SCENIC_LOCAL_TARGET=cairo-fb` as this should work universally on any Nerves target. -`cairo-fb` will require that your `nerves_system_*` has the `cairo` library selected. +`cairo-fb` will require that your `nerves_system_*` has the `cairo` library +selected via the `BR2_PACKAGE_CAIRO=y` buildroot configuration. If you're using +one of the official nerves systems then `BR2_PACKAGE_CAIRO=y` is configured by +default if you're using 1.25.0 or greater. ## Prerequisites @@ -106,6 +109,9 @@ Lastly, install the GLEW package. Find the packaged `include` folder and extract Once these components have been installed, you should be able to build the `scenic_driver_local` driver. +### Installing on Nerves + +See the "Targets" section above ## Documentation diff --git a/mix.exs b/mix.exs index 93c9c0f..9a28944 100644 --- a/mix.exs +++ b/mix.exs @@ -2,7 +2,7 @@ defmodule Scenic.Driver.Local.MixProject do use Mix.Project @app_name :scenic_driver_local - @version "0.11.0" + @version "0.12.0" @github "https://github.com/ScenicFramework/scenic_driver_local" def project do diff --git a/mix.lock b/mix.lock index 542e87e..92a147d 100644 --- a/mix.lock +++ b/mix.lock @@ -3,7 +3,7 @@ "credo": {:hex, :credo, "1.7.2", "fdee3a7cb553d8f2e773569181f0a4a2bb7d192e27e325404cc31b354f59d68c", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "dd15d6fbc280f6cf9b269f41df4e4992dee6615939653b164ef951f60afcb68e"}, "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"}, "earmark_parser": {:hex, :earmark_parser, "1.4.39", "424642f8335b05bb9eb611aa1564c148a8ee35c9c8a8bba6e129d51a3e3c6769", [:mix], [], "hexpm", "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"}, - "elixir_make": {:hex, :elixir_make, "0.6.3", "bc07d53221216838d79e03a8019d0839786703129599e9619f4ab74c8c096eac", [:mix], [], "hexpm", "f5cbd651c5678bcaabdbb7857658ee106b12509cd976c2c2fca99688e1daf716"}, + "elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"}, "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "ex_doc": {:hex, :ex_doc, "0.31.0", "06eb1dfd787445d9cab9a45088405593dd3bb7fe99e097eaa71f37ba80c7a676", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.1", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "5350cafa6b7f77bdd107aa2199fe277acf29d739aba5aee7e865fc680c62a110"}, "ex_image_info": {:hex, :ex_image_info, "0.2.4", "610002acba43520a9b1cf1421d55812bde5b8a8aeaf1fe7b1f8823e84e762adb", [:mix], [], "hexpm", "fd1a7e02664e3b14dfd3b231d22fdd48bd3dd694c4773e6272b3a6228f1106bc"}, @@ -14,8 +14,8 @@ "makeup": {:hex, :makeup, "1.1.1", "fa0bc768698053b2b3869fa8a62616501ff9d11a562f3ce39580d60860c3a55e", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "5dc62fbdd0de44de194898b6710692490be74baa02d9d108bc29f007783b0b48"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.3", "d684f4bac8690e70b06eb52dad65d26de2eefa44cd19d64a8095e1417df7c8fd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "b78dc853d2e670ff6390b605d807263bf606da3c82be37f9d7f68635bd886fc9"}, - "nimble_options": {:hex, :nimble_options, "0.4.0", "c89babbab52221a24b8d1ff9e7d838be70f0d871be823165c94dd3418eea728f", [:mix], [], "hexpm", "e6701c1af326a11eea9634a3b1c62b475339ace9456c1a23ec3bc9a847bca02d"}, + "nimble_options": {:hex, :nimble_options, "0.5.2", "42703307b924880f8c08d97719da7472673391905f528259915782bb346e0a1b", [:mix], [], "hexpm", "4da7f904b915fd71db549bcdc25f8d56f378ef7ae07dc1d372cbe72ba950dce0"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, - "scenic": {:hex, :scenic, "0.11.1", "9cabc40a1362de76b25c9b243503251c9e9287816fab88b539c55e8debdb6513", [:make, :mix], [{:elixir_make, "~> 0.6.2", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:ex_image_info, "~> 0.2.4", [hex: :ex_image_info, repo: "hexpm", optional: false]}, {:font_metrics, "~> 0.5.0", [hex: :font_metrics, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.3.4 or ~> 0.4.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:truetype_metrics, "~> 0.6", [hex: :truetype_metrics, repo: "hexpm", optional: false]}], "hexpm", "86845290002bb61ac34ab24573dfd0f15f1d17bb24fa68767af65601eaae5153"}, + "scenic": {:hex, :scenic, "0.11.2", "5d29aac74ee85899651716af47f72d167d064939fc2b4e514cd7c43810293cda", [:make, :mix], [{:elixir_make, "~> 0.7.7", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:ex_image_info, "~> 0.2.4", [hex: :ex_image_info, repo: "hexpm", optional: false]}, {:font_metrics, "~> 0.5.0", [hex: :font_metrics, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.3.4 or ~> 0.4.0 or ~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:truetype_metrics, "~> 0.6", [hex: :truetype_metrics, repo: "hexpm", optional: false]}], "hexpm", "6f846cfe8457163d28ad6b8b147d251bd15524c249ddad3e75608cbdb739beaa"}, "truetype_metrics": {:hex, :truetype_metrics, "0.6.1", "9119a04dc269dd8f63e85e12e4098f711cb7c5204a420f4896f40667b9e064f6", [:mix], [{:font_metrics, "~> 0.5", [hex: :font_metrics, repo: "hexpm", optional: false]}], "hexpm", "5711d4a3e4fc92eb073326fbe54208925d35168dc9b288c331ee666a8a84759b"}, } From e2f0fb34bf1c8881bdfc402654da4a9b5cc8a866 Mon Sep 17 00:00:00 2001 From: Jason Axelson Date: Mon, 1 Jan 2024 09:37:15 -1000 Subject: [PATCH 2/2] Also test against elixir 1.16/OTP 26.2 --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a701a70..c82d97f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,8 @@ jobs: include: - elixir: '1.12.3' otp: '24.2' + - elixir: '1.16.0' + otp: '26.2' steps: - uses: actions/checkout@v3