Skip to content

Commit

Permalink
Release v0.10.0 (#1008)
Browse files Browse the repository at this point in the history
* Release v0.10.0

* Add note about cut/qcut changes
  • Loading branch information
philss authored Oct 23, 2024
1 parent d865544 commit 5ee26d5
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 9 deletions.
61 changes: 60 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,64 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [v0.10.0] - 2024-10-23

### Added

- Add support for the decimals data type.

Decimals dtypes are represented by the `{:decimal, precision, scale}` tuple,
where precision can be a positive integer from 0 to 38, and is the maximum number
of digits that can be represented by the decimal. The scale is the number of
digits after the decimal point.

With this addition, we also added the `:decimal` package as a new dependency.
The `Explorer.Series.from_list/2` function accepts decimal numbers from that
package as values - `%Decimal{}`.

This version has a small number of operations, but is a good foundation.

- Allow the usage of queries and lazy series outside callbacks and macros.
This is an improvement to functions that were originally designed to accept callbacks.
With this change you can now reuse lazy series across different "queries".
See the `Explorer.Query` docs for details.

The affected functions are:

* `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.

- Add "lazy read" support for Parquet and NDJSON from HTTP(s).

- Expose more options for `Explorer.Series.cut/3` and `Explorer.Series.qcut/3`.
These options were available in Polars, but not in our APIs.

### Fixed

- Fix creation of series where a `nil` value inside a list - for a `{:list, any()}` dtype -
could result in an incompatible dtype. This fix will prevent panics for list of lists with
`nil` entries.

- Fix `Explorer.DataFrame.dump_ndjson/2` when date time is in use.

- Fix `Explorer.Series.product/1` for lazy series.

- Accept `%FSS.HTTP.Entry{}` structs in functions like `Explorer.DataFrame.from_parquet/2`.

- Fix encode of binaries to terms from series of the `{:struct, any()}` dtype.
In case the inner fields of the struct had any binary (`:binary` dtype), it was
causing a panic.

### Changed

- Change the defaults of the functions `Explorer.Series.cut/3` and `Explorer.Series.qcut/3`
to not have "break points" column in the resultant dataframe.
So the `:include_breaks` is now `false` by default.

## [v0.9.2] - 2024-08-27

### Added
Expand Down Expand Up @@ -1105,7 +1163,8 @@ properly compare floats.

First release.

[Unreleased]: https://github.com/elixir-explorer/explorer/compare/v0.9.2...HEAD
[Unreleased]: https://github.com/elixir-explorer/explorer/compare/v0.10.0...HEAD
[v0.10.0]: https://github.com/elixir-explorer/explorer/compare/v0.9.2...v0.10.0
[v0.9.2]: https://github.com/elixir-explorer/explorer/compare/v0.9.1...v0.9.2
[v0.9.1]: https://github.com/elixir-explorer/explorer/compare/v0.9.0...v0.9.1
[v0.9.0]: https://github.com/elixir-explorer/explorer/compare/v0.8.3...v0.9.0
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Inside an Elixir script or [Livebook](https://livebook.dev):

```elixir
Mix.install([
{:explorer, "~> 0.9.0"}
{:explorer, "~> 0.10.0"}
])
```

Expand All @@ -71,15 +71,15 @@ Or in the `mix.exs` file of your application:
```elixir
def deps do
[
{:explorer, "~> 0.9.0"}
{:explorer, "~> 0.10.0"}
]
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.9.0", system_env: %{"EXPLORER_BUILD" => "1"}},
{:explorer, "~> 0.10.0", system_env: %{"EXPLORER_BUILD" => "1"}},
{:rustler, ">= 0.0.0"}
```

Expand Down Expand Up @@ -231,13 +231,13 @@ Rust is going to be installed in the first compilation of the project. Otherwise
install the correct version:

```sh
rustup toolchain install nightly-2024-06-24
rustup toolchain install nightly-2024-07-26
```

You can also use [asdf](https://asdf-vm.com/):

```sh
asdf install rust nightly-2024-06-24
asdf install rust nightly-2024-07-26
```

It's possible that you may need to install [`CMake`](https://cmake.org/) in order to build the project,
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ defmodule Explorer.MixProject do
use Mix.Project

@source_url "https://github.com/elixir-nx/explorer"
@version "0.10.0-dev"
@version "0.10.0"
@dev? String.ends_with?(@version, "-dev")
@force_build? System.get_env("EXPLORER_BUILD") in ["1", "true"]

Expand Down
4 changes: 2 additions & 2 deletions notebooks/exploring_explorer.livemd
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

```elixir
Mix.install([
{:explorer, "~> 0.9.0"},
{:kino, "~> 0.13.0"}
{:explorer, "~> 0.10.0"},
{:kino, "~> 0.14.0"}
])
```

Expand Down

0 comments on commit 5ee26d5

Please sign in to comment.