From 4a230dad84a5795bd1bb203b5fafb82ade04100b Mon Sep 17 00:00:00 2001 From: Alex Koutmos Date: Sun, 5 Jul 2026 18:35:30 -0500 Subject: [PATCH 1/5] Getting ready for 0.12.0 release --- CHANGELOG.md | 150 ++++++++++-------- README.md | 12 +- {sponsors => images}/amplified.png | Bin .../explorer-exdoc.png | Bin explorer.png => images/explorer.png | Bin mix.exs | 41 +++-- mix.lock | 37 ++--- 7 files changed, 137 insertions(+), 103 deletions(-) rename {sponsors => images}/amplified.png (100%) rename explorer-exdoc.png => images/explorer-exdoc.png (100%) rename explorer.png => images/explorer.png (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index f24dd05bd..3a23967f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,33 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [v0.12.0] - 2026-07-05 + ### Updated - * Updated `Decimal` dependency requirement to mitigate [CVE-2026-32686](https://www.cve.org/CVERecord?id=CVE-2026-32686) DoS. Versions [2.4.0](https://github.com/ericmj/decimal/blob/main/CHANGELOG.md#v240-2026-05-07) and [3.1.0](https://github.com/ericmj/decimal/blob/main/CHANGELOG.md#v310-2026-05-08) both contain the fix. +- Updated `Decimal` dependency requirement to `~> 3.1` to mitigate [CVE-2026-32686](https://www.cve.org/CVERecord?id=CVE-2026-32686) DoS. +- Updated `Rustler` dependency requirement to `~> 0.38` to mitigate `Req` and `Mint` vulnerabilities: + - [EEF-CVE-2026-49753](https://osv.dev/vulnerability/EEF-CVE-2026-49753) + - [EEF-CVE-2026-48861](https://osv.dev/vulnerability/EEF-CVE-2026-48861) + - [EEF-CVE-2026-48862](https://osv.dev/vulnerability/EEF-CVE-2026-48862) + - [EEF-CVE-2026-49754](https://osv.dev/vulnerability/EEF-CVE-2026-49754) + - [EEF-CVE-2026-49756](https://osv.dev/vulnerability/EEF-CVE-2026-49756) + - [EEF-CVE-2026-49755](https://osv.dev/vulnerability/EEF-CVE-2026-49755) ### Backwards incompatible changes - * Support for transparent transfers with `FLAME` is removed, instead use `load_ipc`/`dump_ipc` to explicitly transfer dataframe across nodes - * Support for the `FSS` library is deprecated, instead pass `s3://` URLs with credentials +- Support for transparent transfers with `FLAME` is removed, instead use `load_ipc`/`dump_ipc` to explicitly transfer dataframe across nodes +- Support for the `FSS` library is deprecated, instead pass `s3://` URLs with credentials ## [v0.11.1] - 2025-08-17 ### Added - * `Explorer.DataFrame.dump_ipc_schema` - * `Explorer.DataFrame.dump_ipc_record_batch` - * `Explorer.Series.cumulative_count` - * `:stable` option for `Explorer.DataFrame.group_by` +- `Explorer.DataFrame.dump_ipc_schema` +- `Explorer.DataFrame.dump_ipc_record_batch` +- `Explorer.Series.cumulative_count` +- `:stable` option for `Explorer.DataFrame.group_by` ### Fixed - * Fix printing lazy data frame with new default print options (as of v0.11.0) - * Remove print from dataframe test - * Fix mutate docs formatting +- Fix printing lazy data frame with new default print options (as of v0.11.0) +- Remove print from dataframe test +- Fix mutate docs formatting ### New Contributors - * @WolfDan made their first contribution in https://github.com/elixir-explorer/explorer/pull/1103 +- @WolfDan made their first contribution in https://github.com/elixir-explorer/explorer/pull/1103 ### Full Changelog @@ -43,51 +52,51 @@ https://github.com/elixir-explorer/explorer/compare/v0.11.0...v0.11.1 ### Added - - `Explorer.DataFrame.estimated_size/1` - Estimates memory size of a DataFrame - - `Explorer.DataFrame.to_table_string/2` - Represents a DataFrame as a string - for printing - - `Explorer.Series.degrees/1` - Converts radians to degrees - - `Explorer.Series.radians/1` - Converts degrees to radians - - `:quote_style` option to CSV functions +- `Explorer.DataFrame.estimated_size/1` - Estimates memory size of a DataFrame +- `Explorer.DataFrame.to_table_string/2` - Represents a DataFrame as a string + for printing +- `Explorer.Series.degrees/1` - Converts radians to degrees +- `Explorer.Series.radians/1` - Converts degrees to radians +- `:quote_style` option to CSV functions ### Fixed - - Fix bug where `:region` was incorrectly required in `%FSS.S3.Entry{}` - - Fix trigonometric functions to not raise on f32 - - Fix warning from `:table_rex` dependency when printing - - Fix formatting of `Explorer.DataFrame.mutate_with/2` options - - `Explorer.Series.fill_missing/2` now works for all integer and float dtypes - - `Explorer.Series.frequencies/1` now works for `{:list, _}` dtype - - Fix inefficiency with categorization - - Fix typespecs - * `Explorer.DataFrame.select/2` - * `Explorer.DataFrame.ungroup/1` - * `Explorer.Series` functions that may return lazy series +- Fix bug where `:region` was incorrectly required in `%FSS.S3.Entry{}` +- Fix trigonometric functions to not raise on f32 +- Fix warning from `:table_rex` dependency when printing +- Fix formatting of `Explorer.DataFrame.mutate_with/2` options +- `Explorer.Series.fill_missing/2` now works for all integer and float dtypes +- `Explorer.Series.frequencies/1` now works for `{:list, _}` dtype +- Fix inefficiency with categorization +- Fix typespecs + - `Explorer.DataFrame.select/2` + - `Explorer.DataFrame.ungroup/1` + - `Explorer.Series` functions that may return lazy series ### Changed - - Printing a DataFrame looks different - * Adds a row of `…` to indicate there are hidden rows. Includes a new option - `limit_dots: :bottom | :split` to specify how to do this. - * Drops the row separators except when composite dtypes are present. - * Allows you to pass through valid options to `TableRex.render!/2`. This - gives you a little more flexibility in case you don't like the defaults. - - `Explorer.DataFrame.print/1` now documents its default `:limit` of 5 rows - - `Explorer.DataFrame.concat_rows/1` has improved error messages - - Accessing a DataFrame with a range now raises if the range is out of bounds +- Printing a DataFrame looks different + - Adds a row of `…` to indicate there are hidden rows. Includes a new option + `limit_dots: :bottom | :split` to specify how to do this. + - Drops the row separators except when composite dtypes are present. + - Allows you to pass through valid options to `TableRex.render!/2`. This + gives you a little more flexibility in case you don't like the defaults. +- `Explorer.DataFrame.print/1` now documents its default `:limit` of 5 rows +- `Explorer.DataFrame.concat_rows/1` has improved error messages +- Accessing a DataFrame with a range now raises if the range is out of bounds ### New Contributors - - @szajbus made their first contribution in - https://github.com/elixir-explorer/explorer/pull/1030 - - @viniciussbs made their first contribution in - https://github.com/elixir-explorer/explorer/pull/1037 - - @pejrich made their first contribution in - https://github.com/elixir-explorer/explorer/pull/1040 - - @jdbarillas made their first contribution in - https://github.com/elixir-explorer/explorer/pull/1049 - - @petrkozorezov made their first contribution in - https://github.com/elixir-explorer/explorer/pull/1083 +- @szajbus made their first contribution in + https://github.com/elixir-explorer/explorer/pull/1030 +- @viniciussbs made their first contribution in + https://github.com/elixir-explorer/explorer/pull/1037 +- @pejrich made their first contribution in + https://github.com/elixir-explorer/explorer/pull/1040 +- @jdbarillas made their first contribution in + https://github.com/elixir-explorer/explorer/pull/1049 +- @petrkozorezov made their first contribution in + https://github.com/elixir-explorer/explorer/pull/1083 ### Full Changelog @@ -97,7 +106,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 ### Fixed -- Fix creation of series of `{:list, {:decimal, ...}}` containing empty lists. +- Fix creation of series of `{:list, {:decimal, ...}}` containing empty lists. - Use `i128` for `:coef` field in the Rust code. @@ -151,10 +160,10 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 The affected functions are: - * `Explorer.DataFrame.filter_with/2` - * `Explorer.DataFrame.mutate_with/2` - * `Explorer.DataFrame.sort_with/2` - * `Explorer.DataFrame.summarise_with/2` + - `Explorer.DataFrame.filter_with/2` + - `Explorer.DataFrame.mutate_with/2` + - `Explorer.DataFrame.sort_with/2` + - `Explorer.DataFrame.summarise_with/2` - Allow accessing the dataframe inside query. @@ -311,7 +320,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Add functions to work with strings and regexes. - Some of the functions have the prefix "re_", because they accept a string that + Some of the functions have the prefix "re\_", because they accept a string that represents a regular expression. There is an important detail: we do not accept Elixir regexes, because we cannot @@ -461,6 +470,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Add support for more integer dtypes. This change introduces new signed and unsigned integer dtypes: + - `{:s, 8}`, `{:s, 16}`, `{:s, 32}` - `{:u, 8}`, `{:u, 16}`, `{:u, 32}`, `{:u, 64}`. @@ -611,16 +621,16 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 The following operations are possible now: - * `date - date` - * `date + duration` - * `date - duration` - * `duration + date` - * `duration * integer` - * `duration * float` - * `duration / integer` - * `duration / float` - * `integer * duration` - * `float * duration` + - `date - date` + - `date + duration` + - `date - duration` + - `duration + date` + - `duration * integer` + - `duration * float` + - `duration / integer` + - `duration / float` + - `integer * duration` + - `float * duration` - Support lazy dataframes on `Explorer.DataFrame.print/2`. @@ -708,10 +718,12 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 and helped to build this feature! - Add the following functions to `Explorer.Series`: + - [`window_median/3`](https://hexdocs.pm/explorer/Explorer.Series.html#window_median/3) - [`substring/3`](https://hexdocs.pm/explorer/Explorer.Series.html#substring/3) - Add duration dtypes. This is adds the following dtypes: + - `{:duration, :nanosecond}` - `{:duration, :microsecond}` - `{:duration, :millisecond}` @@ -739,11 +751,13 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Change `:datetime` dtype to be `{:datetime, time_unit}`, where time unit can be the following: + - `:millisecond` - `:microsecond` - `:nanosecond` - Rename the following `Series` functions: + - `trim/1` to `strip/2` - `trim_leading/1` to `lstrip/2` - `trim_trailing/1` to `rstrip/2` @@ -810,7 +824,6 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Fix the `:infer_schema_length` option of `Explorer.DataFrame.from_csv/2` when passing `nil`. Now it's possible to take into account the entire file to infer the schema. - ### Deprecated - Deprecate `Explorer.Series.to_date/1` and `Explorer.Series.to_time/1` in favor of @@ -1004,6 +1017,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Add `Series.day_of_week/1`. - Allow `Series.fill_missing/2` to: + - receive `:infinity` and `:neg_infinity` values. - receive date and datetime values. - receive binary values. @@ -1018,6 +1032,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Add support for Nx's serialize and deserialize. - Add the following function implementations for the Polars' Lazy dataframe backend: + - `arrange_with` - `concat_columns` - `concat_rows` @@ -1118,6 +1133,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 are implemented as macros. The following new macros were added: + - `filter/2` - `mutate/2` - `summarise/2` @@ -1205,7 +1221,7 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Add compression as an option to write parquet files. - Add count metadata to `DataFrame` table reader. - Add `DataFrame.filter_with/2`, `DataFrame.summarise_with/2`, `DataFrame.mutate_with/2` and -`DataFrame.arrange_with/2`. They all accept a `DataFrame` and a function, and they all work with + `DataFrame.arrange_with/2`. They all accept a `DataFrame` and a function, and they all work with a new concept called "lazy series". Lazy Series is an opaque representation of a series that can be @@ -1218,12 +1234,12 @@ https://github.com/elixir-explorer/explorer/compare/v0.10.1...v0.11.0 - Bump version requirement of the `table` dependency to `~> 0.1.2`, and raise for non-tabular values. - Normalize how columns are handled. This changes some functions to accept one column or -a list of columns, ranges, indexes and callbacks selecting columns. + a list of columns, ranges, indexes and callbacks selecting columns. - Rename `DataFrame.filter/2` to `DataFrame.mask/2`. - Rename `Series.filter/2` to `Series.mask/2`. - Rename `take/2` from both `Series` and `DataFrame` to `slice/2`. `slice/2` now they accept ranges as well. - Raise an error if `DataFrame.pivot_wider/4` has float columns as IDs. This is because we can´t -properly compare floats. + properly compare floats. - Change `DataFrame.distinct/2` to accept columns as argument instead of receiving it as option. ### Fixed diff --git a/README.md b/README.md index 82376dc8f..df97aa112 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

Explorer

+Explorer ![CI](https://github.com/elixir-nx/explorer/actions/workflows/ci.yml/badge.svg) -[![Documentation](http://img.shields.io/badge/hex.pm-docs-green.svg?style=flat)](https://hexdocs.pm/explorer) +[![Documentation](https://img.shields.io/badge/hex.pm-docs-green.svg?style=flat)](https://explorer.hexdocs.pm/) [![Package](https://img.shields.io/hexpm/v/explorer.svg)](https://hex.pm/packages/explorer) @@ -66,7 +66,7 @@ Inside an Elixir script or [Livebook](https://livebook.dev): ```elixir Mix.install([ - {:explorer, "~> 0.11.1"} + {:explorer, "~> 0.12.0"} ]) ``` @@ -75,7 +75,7 @@ Or in the `mix.exs` file of your application: ```elixir def deps do [ - {:explorer, "~> 0.11.1"} + {:explorer, "~> 0.12.0"} ] end ``` @@ -83,7 +83,7 @@ end Explorer will download a precompiled version of its native code upon installation. You can force a local build by setting the environment variable `EXPLORER_BUILD=1` and including `:rustler` as a dependency: ```elixir - {:explorer, "~> 0.11.1", system_env: %{"EXPLORER_BUILD" => "1"}}, + {:explorer, "~> 0.12.0", system_env: %{"EXPLORER_BUILD" => "1"}}, {:rustler, ">= 0.0.0"} ``` @@ -306,4 +306,4 @@ of `ObjectStore` does not compile on it. ## Sponsors -Amplified +Amplified diff --git a/sponsors/amplified.png b/images/amplified.png similarity index 100% rename from sponsors/amplified.png rename to images/amplified.png diff --git a/explorer-exdoc.png b/images/explorer-exdoc.png similarity index 100% rename from explorer-exdoc.png rename to images/explorer-exdoc.png diff --git a/explorer.png b/images/explorer.png similarity index 100% rename from explorer.png rename to images/explorer.png diff --git a/mix.exs b/mix.exs index 5dec87917..b0d801330 100644 --- a/mix.exs +++ b/mix.exs @@ -18,12 +18,12 @@ defmodule Explorer.MixProject do package: package(), deps: deps(), docs: docs(), - preferred_cli_env: [ci: :test, "localstack.setup": :test], aliases: [ "rust.lint": ["cmd cargo clippy --manifest-path=native/explorer/Cargo.toml -- -Dwarnings"], "rust.fmt": ["cmd cargo fmt --manifest-path=native/explorer/Cargo.toml --all"], "localstack.setup": ["cmd ./test/support/setup-localstack.sh"], - ci: ["format", "rust.fmt", "rust.lint", "test"] + ci: ["format", "rust.fmt", "rust.lint", "test"], + docs: ["docs", ©_files/1] ] ] end @@ -35,6 +35,10 @@ defmodule Explorer.MixProject do ] end + def cli do + [preferred_envs: [ci: :test, "localstack.setup": :test]] + end + defp elixirc_paths(:test), do: ~w(lib test/support) defp elixirc_paths(_), do: ~w(lib) @@ -44,12 +48,12 @@ defmodule Explorer.MixProject do {:rustler_precompiled, "~> 0.7"}, {:table, "~> 0.1.2"}, {:table_rex, "~> 4.1"}, - {:decimal, "~> 2.4 or ~> 3.1"}, + {:decimal, "~> 3.1"}, ## Optional - {:adbc, "~> 0.1", optional: true}, + {:adbc, "~> 0.12", optional: true}, {:nx, "~> 0.4", optional: true}, - {:rustler, "~> 0.36.0", optional: not (@dev? or @force_build?)}, + {:rustler, "~> 0.38", optional: not (@dev? or @force_build?)}, ## Test {:bypass, "~> 2.1", only: :test}, @@ -57,15 +61,15 @@ defmodule Explorer.MixProject do {:tz, "~> 0.26", only: :test}, ## Dev - {:ex_doc, "~> 0.24", only: :dev}, - {:benchee, "~> 1.1", only: :dev} + {:ex_doc, "~> 0.40", only: :dev}, + {:benchee, "~> 1.5", only: :dev} ] end defp docs do [ - main: "Explorer", - logo: "explorer-exdoc.png", + main: "readme", + logo: "images/explorer-exdoc.png", source_ref: "v#{@version}", source_url: @source_url, groups_for_modules: [ @@ -104,11 +108,23 @@ defmodule Explorer.MixProject do "Functions: Shape": &(&1[:type] == :shape), "Functions: Window": &(&1[:type] == :window) ], - extras: ["notebooks/exploring_explorer.livemd", "CHANGELOG.md"], + extras: ["README.md", "notebooks/exploring_explorer.livemd", "CHANGELOG.md"], skip_undefined_reference_warnings_on: ["CHANGELOG.md"] ] end + defp copy_files(_) do + # Set up directory structure + File.mkdir_p!("./doc/images") + + # Copy over image files + "./images/" + |> File.ls!() + |> Enum.each(fn image_file -> + File.cp!("./images/#{image_file}", "./doc/images/#{image_file}") + end) + end + defp package do [ files: [ @@ -119,14 +135,15 @@ defmodule Explorer.MixProject do "mix.exs", "CHANGELOG.md", "README.md", - "LICENSE" + "LICENSE", + "images" ], licenses: ["MIT"], links: %{ "GitHub" => @source_url, "Changelog" => "#{@source_url}/blob/v#{@version}/CHANGELOG.md" }, - maintainers: ["Christopher Grainger", "Philip Sampaio", "José Valim"] + maintainers: ["Christopher Grainger", "Philip Sampaio", "José Valim", "Alexander Koutmos"] ] end end diff --git a/mix.lock b/mix.lock index 08a7f867f..2c8b9053f 100644 --- a/mix.lock +++ b/mix.lock @@ -1,46 +1,47 @@ %{ - "adbc": {:hex, :adbc, "0.7.8", "b3161e0a746aec53479eb59fee8591ac177f15578fca2a5ab86ff897c34b2ec0", [:make, :mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:cc_precompiler, "~> 0.1.8 or ~> 0.2", [hex: :cc_precompiler, repo: "hexpm", optional: false]}, {:decimal, "~> 2.1", [hex: :decimal, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.8", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "24a00725de5a543442036a15e9fc9313500305699da2c230ee14fd6e6d719f4a"}, + "adbc": {:hex, :adbc, "0.12.1", "64f04b2d4787f30b2ce1b9c5ff2f7ee393e611fbb8a8829fab402b767c133fa5", [:make, :mix], [{:cc_precompiler, "~> 0.1.8 or ~> 0.2", [hex: :cc_precompiler, repo: "hexpm", optional: false]}, {:decimal, "~> 2.1 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.9", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:fine, "~> 0.1.0", [hex: :fine, repo: "hexpm", optional: false]}, {:pythonx, "~> 0.4.0", [hex: :pythonx, repo: "hexpm", optional: true]}, {:table, "~> 0.1.2", [hex: :table, repo: "hexpm", optional: false]}], "hexpm", "99a4f46e8af1c9dfc94c804c9f1d9e6c1923845a90af089765ea278d876da904"}, "aws_signature": {:hex, :aws_signature, "0.3.2", "adf33bc4af00b2089b7708bf20e3246f09c639a905a619b3689f0a0a22c3ef8f", [:rebar3], [], "hexpm", "b0daf61feb4250a8ab0adea60db3e336af732ff71dd3fb22e45ae3dcbd071e44"}, - "benchee": {:hex, :benchee, "1.3.1", "c786e6a76321121a44229dde3988fc772bca73ea75170a73fd5f4ddf1af95ccf", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}, {:statistex, "~> 1.0", [hex: :statistex, repo: "hexpm", optional: false]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "76224c58ea1d0391c8309a8ecbfe27d71062878f59bd41a390266bf4ac1cc56d"}, + "benchee": {:hex, :benchee, "1.5.1", "b95cbc36c4b98969a5c592a246e171041eb683c56bad1cb4f49a3b081ba66087", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}, {:statistex, "~> 1.1", [hex: :statistex, repo: "hexpm", optional: false]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a539301f8dfd4efc5c5123bfb9d47ebde20092a863a5b5b16c2a60d2243dfce7"}, "bypass": {:hex, :bypass, "2.1.0", "909782781bf8e20ee86a9cabde36b259d44af8b9f38756173e8f5e2e1fabb9b1", [:mix], [{:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "d9b5df8fa5b7a6efa08384e9bbecfe4ce61c77d28a4282f79e02f1ef78d96b80"}, - "castore": {:hex, :castore, "1.0.12", "053f0e32700cbec356280c0e835df425a3be4bc1e0627b714330ad9d0f05497f", [:mix], [], "hexpm", "3dca286b2186055ba0c9449b4e95b97bf1b57b47c1f2644555879e659960c224"}, - "cc_precompiler": {:hex, :cc_precompiler, "0.1.10", "47c9c08d8869cf09b41da36538f62bc1abd3e19e41701c2cea2675b53c704258", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "f6e046254e53cd6b41c6bacd70ae728011aa82b2742a80d6e2214855c6e06b22"}, + "castore": {:hex, :castore, "1.0.19", "6903cabdfd9d1af46454126e7c8385186659dd33ecfb74a885cae52221ad6109", [:mix], [], "hexpm", "3669e6cab13f54c2df26b3e6833745d647f35b6e30d8ddd5975df0d5c842ca98"}, + "cc_precompiler": {:hex, :cc_precompiler, "0.1.11", "8c844d0b9fb98a3edea067f94f616b3f6b29b959b6b3bf25fee94ffe34364768", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"}, "complex": {:hex, :complex, "0.6.0", "b0130086a7a8c33574d293b2e0e250f4685580418eac52a5658a4bd148f3ccf1", [:mix], [], "hexpm", "0a5fa95580dcaf30fcd60fe1aaf24327c0fe401e98c24d892e172e79498269f9"}, "cowboy": {:hex, :cowboy, "2.10.0", "ff9ffeff91dae4ae270dd975642997afe2a1179d94b1887863e43f681a203e26", [:make, :rebar3], [{:cowlib, "2.12.1", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "3afdccb7183cc6f143cb14d3cf51fa00e53db9ec80cdcd525482f5e99bc41d6b"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, "cowlib": {:hex, :cowlib, "2.12.1", "a9fa9a625f1d2025fe6b462cb865881329b5caff8f1854d1cbc9f9533f00e1e1", [:make, :rebar3], [], "hexpm", "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0"}, - "decimal": {:hex, :decimal, "2.4.1", "6c0fbede12fb122ba685e9ab41c6a40c129e322b3aa192f9e072e61f3a6ffaf2", [:mix], [], "hexpm", "7e618897933a8455f19a727d7c5e50a2c071a544b700e5e724298ecb4340187f"}, - "deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"}, + "decimal": {:hex, :decimal, "3.1.1", "430d87b04011ce6cbd4fd205be758311a81f87d552d40904abd00f015935b1d0", [:mix], [], "hexpm", "c5f25f2ced74a0587d03e6023f595db8e924c9d3922c8c8ffd9edfc4498cf1f6"}, + "deep_merge": {:hex, :deep_merge, "1.0.2", "476aa7ea61c54de96220051b998d893869069094da65b96101aebf79416f8a1e", [:mix], [], "hexpm", "737a53cdc9758fedbb608bdc213969e65729466c4ef3cd8e8726d0335dff116c"}, "dll_loader_helper_beam": {:hex, :dll_loader_helper_beam, "1.2.2", "b86f97ec8fc64770c87468e41969eb309d87b29dd5a439b667e5954f85f8f65a", [:rebar3], [], "hexpm", "0e6119edde0ef5e42b4fe22d7dc71b7462e08573cee977c01a26ec5d9cd94a9a"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, - "elixir_make": {:hex, :elixir_make, "0.9.0", "6484b3cd8c0cee58f09f05ecaf1a140a8c97670671a6a0e7ab4dc326c3109726", [:mix], [], "hexpm", "db23d4fd8b757462ad02f8aa73431a426fe6671c80b200d9710caf3d1dd0ffdb"}, - "ex_doc": {:hex, :ex_doc, "0.39.1", "e19d356a1ba1e8f8cfc79ce1c3f83884b6abfcb79329d435d4bbb3e97ccc286e", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "8abf0ed3e3ca87c0847dfc4168ceab5bedfe881692f1b7c45f4a11b232806865"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.45", "cba8369ab2a1342e419bc2760eec731b17be828941dcf494045d44766227e1d5", [:mix], [], "hexpm", "d3ec045bf122965db20c0bdb420e19ee1415843135327124918473feb4b328e8"}, + "elixir_make": {:hex, :elixir_make, "0.10.0", "16577e2583a79bb79237bbff349619ef5d80afffc07eac6e4faf0d00e2ddaf7d", [:mix], [], "hexpm", "dc1f09fb7fa68866b886abd5f0f3c83553b1a19a52359a899e92af1bb3b31982"}, + "ex_doc": {:hex, :ex_doc, "0.40.3", "4a972ffe64bc07dc605af487e98fc19b72a4185f55ca031b94c0552d6071c1d9", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "2756e357742fecd9749b489b85d67c9ce99c465f2e75728d9e6dc8d704b973de"}, "finch": {:hex, :finch, "0.19.0", "c644641491ea854fc5c1bbaef36bfc764e3f08e7185e1f084e35e0672241b76d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fc5324ce209125d1e2fa0fcd2634601c52a787aff1cd33ee833664a5af4ea2b6"}, + "fine": {:hex, :fine, "0.1.6", "4bf7151493443c454aac9f2fa2f34f5fefd0346a83fb5586a016c4a135c63247", [:mix], [], "hexpm", "5638eb4495488e885ebec167fa57973e5c35e1a50c344eb7666c90ec1c4e3b12"}, "flame": {:hex, :flame, "0.5.2", "d46c4daa19b8921b71e0e57dc69edc01ce1311b1976c160192b05d4253b336e8", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, ">= 0.0.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "82560ebef6ab3c277875493d0c93494740c930db0b1a3ff1a570eee9206cc6c0"}, "fss": {:hex, :fss, "0.1.1", "9db2344dbbb5d555ce442ac7c2f82dd975b605b50d169314a20f08ed21e08642", [:mix], [], "hexpm", "78ad5955c7919c3764065b21144913df7515d52e228c09427a004afe9c1a16b0"}, "hpax": {:hex, :hpax, "1.0.2", "762df951b0c399ff67cc57c3995ec3cf46d696e41f0bba17da0518d94acd4aac", [:mix], [], "hexpm", "2f09b4c1074e0abd846747329eaa26d535be0eb3d189fa69d812bfb8bfefd32f"}, - "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, - "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, + "jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"}, + "makeup": {:hex, :makeup, "1.2.2", "882d46dc0905e9ff7abf2aab61a7e6b3dcc555533977d8a23b06019e6c89ac94", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "9a1a24e5b343b8ae16abea0822c10a6f75da27af7fa802ada5251f7579bfccfa"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, - "makeup_erlang": {:hex, :makeup_erlang, "1.0.2", "03e1804074b3aa64d5fad7aa64601ed0fb395337b982d9bcf04029d68d51b6a7", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"}, - "mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"}, + "makeup_erlang": {:hex, :makeup_erlang, "1.1.0", "835f7e60792e08824cda445639555d7bf1bbbddb1b60b306e33cb6f6db24dc74", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "1cd6780fb1dd1a03979abaed0fe82712b0625118fd5257d3ebbf73f960c73c3c"}, + "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "mint": {:hex, :mint, "1.6.2", "af6d97a4051eee4f05b5500671d47c3a67dac7386045d87a904126fd4bbcea2e", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "5ee441dffc1892f1ae59127f74afe8fd82fda6587794278d924e4d90ea3d63f9"}, "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, "nx": {:hex, :nx, "0.9.2", "17563029c01bf749aad3c31234326d7665abd0acc33ee2acbe531a4759f29a8a", [:mix], [{:complex, "~> 0.5", [hex: :complex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "914d74741617d8103de8ab1f8c880353e555263e1c397b8a1109f79a3716557f"}, - "plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"}, + "plug": {:hex, :plug, "1.20.2", "adbee2441232412e37fbb357fd5e4cd533fdd253b29f2e1992262b0f1fb01462", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b16baf55877d60891002ffc1ce0b3ff7d6f30a38a23e02e4d4293c4ac266f136"}, "plug_cowboy": {:hex, :plug_cowboy, "2.6.1", "9a3bbfceeb65eff5f39dab529e5cd79137ac36e913c02067dba3963a26efe9b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613"}, - "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, + "plug_crypto": {:hex, :plug_crypto, "2.1.1", "19bda8184399cb24afa10be734f84a16ea0a2bc65054e23a62bb10f06bc89491", [:mix], [], "hexpm", "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"}, "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, "req": {:hex, :req, "0.5.8", "50d8d65279d6e343a5e46980ac2a70e97136182950833a1968b371e753f6a662", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "d7fc5898a566477e174f26887821a3c5082b243885520ee4b45555f5d53f40ef"}, - "rustler": {:hex, :rustler, "0.36.0", "1decf059c60ec75911241325517c391717a9ad07d43e9a5ffda9d5c9ddd12936", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:req, "~> 0.5", [hex: :req, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "03808c7d289da01da29d8d2fe19d07cae9f3d2f05ebaed87f0820a4dcfabe9d5"}, + "rustler": {:hex, :rustler, "0.38.0", "7a8906998ff0d28e3021c0a73264abcda719bda344b2e58307c6805b0f87c9b4", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "704c03c1bf66be12b031c5a389347b91c81c5cb819a24b068b0de36fe4a5652a"}, "rustler_precompiled": {:hex, :rustler_precompiled, "0.8.2", "5f25cbe220a8fac3e7ad62e6f950fcdca5a5a5f8501835d2823e8c74bf4268d5", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "63d1bd5f8e23096d1ff851839923162096364bac8656a4a3c00d1fff8e83ee0a"}, - "statistex": {:hex, :statistex, "1.0.0", "f3dc93f3c0c6c92e5f291704cf62b99b553253d7969e9a5fa713e5481cd858a5", [:mix], [], "hexpm", "ff9d8bee7035028ab4742ff52fc80a2aa35cece833cf5319009b52f1b5a86c27"}, + "statistex": {:hex, :statistex, "1.1.1", "73612aa7f79e53c30569be065fd121e380f1cf57bc4c2da5b41be9246da18df9", [:mix], [], "hexpm", "310c4b49b34adf683de3103639006bed233ab54c08a4add65a531448e653857c"}, "stream_data": {:hex, :stream_data, "1.1.2", "05499eaec0443349ff877aaabc6e194e82bda6799b9ce6aaa1aadac15a9fdb4d", [:mix], [], "hexpm", "129558d2c77cbc1eb2f4747acbbea79e181a5da51108457000020a906813a1a9"}, "table": {:hex, :table, "0.1.2", "87ad1125f5b70c5dea0307aa633194083eb5182ec537efc94e96af08937e14a8", [:mix], [], "hexpm", "7e99bc7efef806315c7e65640724bf165c3061cdc5d854060f74468367065029"}, "table_rex": {:hex, :table_rex, "4.1.0", "fbaa8b1ce154c9772012bf445bfb86b587430fb96f3b12022d3f35ee4a68c918", [:mix], [], "hexpm", "95932701df195d43bc2d1c6531178fc8338aa8f38c80f098504d529c43bc2601"}, - "telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"}, + "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, "toml": {:hex, :toml, "0.7.0", "fbcd773caa937d0c7a02c301a1feea25612720ac3fa1ccb8bfd9d30d822911de", [:mix], [], "hexpm", "0690246a2478c1defd100b0c9b89b4ea280a22be9a7b313a8a058a2408a2fa70"}, "tz": {:hex, :tz, "0.28.1", "717f5ffddfd1e475e2a233e221dc0b4b76c35c4b3650b060c8e3ba29dd6632e9", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:mint, "~> 1.6", [hex: :mint, repo: "hexpm", optional: true]}], "hexpm", "bfdca1aa1902643c6c43b77c1fb0cb3d744fd2f09a8a98405468afdee0848c8a"}, } From 9c12cbeaf9940b8b1e4073305af55bd2141c1c32 Mon Sep 17 00:00:00 2001 From: Alex Koutmos Date: Sun, 5 Jul 2026 18:43:54 -0500 Subject: [PATCH 2/5] Running mix format --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index b0d801330..548856a25 100644 --- a/mix.exs +++ b/mix.exs @@ -113,7 +113,7 @@ defmodule Explorer.MixProject do ] end - defp copy_files(_) do + defp copy_files(_) do # Set up directory structure File.mkdir_p!("./doc/images") From 0cb0b78946a02005d58d47994bb99d3f24816e48 Mon Sep 17 00:00:00 2001 From: Alex Koutmos Date: Sun, 5 Jul 2026 18:47:14 -0500 Subject: [PATCH 3/5] Bumping Elixir version --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 548856a25..d31683c92 100644 --- a/mix.exs +++ b/mix.exs @@ -13,7 +13,7 @@ defmodule Explorer.MixProject do description: "Series (one-dimensional) and dataframes (two-dimensional) for fast data exploration in Elixir", version: @version, - elixir: "~> 1.14", + elixir: "~> 1.15", elixirc_paths: elixirc_paths(Mix.env()), package: package(), deps: deps(), From d1f05c20cf647131fa10d5780407c9356a46ca44 Mon Sep 17 00:00:00 2001 From: Alex Koutmos Date: Sun, 5 Jul 2026 18:49:14 -0500 Subject: [PATCH 4/5] Bumping Elixir version --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c9606c09c..4fcd24504 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: matrix: include: - otp_version: 25.3 - elixir_version: 1.14 + elixir_version: 1.15 - otp_version: "27.2" elixir_version: 1.18 From ee87dfb69c7e76accc89e91dd5231afc7c294b7c Mon Sep 17 00:00:00 2001 From: Alex Koutmos Date: Sun, 5 Jul 2026 19:07:04 -0500 Subject: [PATCH 5/5] Fixing tests --- test/support/generator.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/support/generator.ex b/test/support/generator.ex index 235baee09..e42356b7a 100644 --- a/test/support/generator.ex +++ b/test/support/generator.ex @@ -297,8 +297,8 @@ defmodule Explorer.Generator do date: constant(:date), datetime: tuple({constant(:datetime), time_unit(), constant("Etc/UTC")}), decimal: - bind(integer(0..37), fn scale -> - bind(integer((scale + 1)..38), fn precision -> + bind(integer(0..16), fn scale -> + bind(integer((scale + 1)..16), fn precision -> tuple({constant(:decimal), constant(precision), constant(scale)}) end) end),