Skip to content

Prepare code for Elixir 1.18 #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Mar 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build CI

on:
push:
branches: ["*"]
pull_request:
branches: ["*"]

jobs:
build:
runs-on: ${{ matrix.os }}
name: Build as in prod
env:
MIX_ENV: prod
strategy:
matrix:
os: ["ubuntu-22.04"]
elixir: ["1.18", "1.16", "1.14.5"]
otp: ["27", "26", "25"]
exclude:
- elixir: "1.18"
otp: "25"
- elixir: "1.16"
otp: "27"
- elixir: "1.14.5"
otp: "27"
- elixir: "1.14.5"
otp: "26"
steps:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp }}
elixir-version: ${{ matrix.elixir }}
- uses: actions/cache@v3
with:
path: deps
key: ${{ matrix.os }}-otp_${{ matrix.otp }}-elixir_${{ matrix.elixir }}-mix_${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ matrix.os }}-otp_${{ matrix.otp }}-elixir_${{ matrix.elixir }}-mix_
- run: mix deps.get
- run: mix compile --warnings-as-errors
17 changes: 17 additions & 0 deletions .github/workflows/build_elixir_latest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# ' ' suffix for the badge status
name: "Build 1.18/27 "

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'

jobs:
elixir_otp_latest:
uses: ./.github/workflows/build_reusable.yml
with:
elixir-version: 1.18
otp-version: 27
17 changes: 17 additions & 0 deletions .github/workflows/build_elixir_old.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# ' ' suffix for the badge status
name: "Build 1.14/25 "

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'

jobs:
elixir_otp_latest:
uses: ./.github/workflows/build_reusable.yml
with:
elixir-version: 1.14.5
otp-version: 25
17 changes: 17 additions & 0 deletions .github/workflows/build_elixir_recent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# ' ' suffix for the badge status
name: "Build 1.16/26 "

on:
push:
branches:
- '*'
pull_request:
branches:
- '*'

jobs:
elixir_otp_latest:
uses: ./.github/workflows/build_reusable.yml
with:
elixir-version: 1.16
otp-version: 26
30 changes: 30 additions & 0 deletions .github/workflows/build_reusable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Build CI Reusable

on:
workflow_call:
inputs:
elixir-version:
required: true
type: string
otp-version:
required: true
type: string

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ inputs.elixir-version }}
otp-version: ${{ inputs.otp-version }}

- name: Install dependencies
run: mix deps.get

- name: Run compilation with warnings as errors
run: mix compile --warnings-as-errors
20 changes: 13 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
name: Lint
strategy:
matrix:
os: ["ubuntu-20.04"]
elixir: ["1.15"]
os: ["ubuntu-22.04"]
elixir: ["1.16", "1.18"]
otp: ["26"]
steps:
- uses: actions/checkout@v3
Expand All @@ -40,11 +40,17 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-20.04"]
elixir: ["1.15", "1.14", "1.13"]
otp: ["26", "25", "24"]
os: ["ubuntu-22.04"]
elixir: ["1.18", "1.16", "1.14.5"]
otp: ["27", "26", "25"]
exclude:
- elixir: "1.13"
- elixir: "1.18"
otp: "25"
- elixir: "1.16"
otp: "27"
- elixir: "1.14.5"
otp: "27"
- elixir: "1.14.5"
otp: "26"
steps:
- uses: actions/checkout@v3
Expand All @@ -59,5 +65,5 @@ jobs:
restore-keys: ${{ matrix.os }}-otp_${{ matrix.otp }}-elixir_${{ matrix.elixir }}-mix_
- run: mix deps.get --only test
- run: mix deps.compile
- run: mix compile
- run: mix compile --warnings-as-errors
- run: mix test
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,5 @@ anaconda-mode/
# for gh-pages
!dist/
/docs/all.json
/docs/
/.idea/
16 changes: 0 additions & 16 deletions .sourcelevel.yml

This file was deleted.

2 changes: 2 additions & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
elixir 1.18.2-otp-27
erlang 27.2.3
45 changes: 44 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,51 @@
# CHANGELOG

## v0.2.7 (2025-03-05)

**Enhancements:**

- Support for Elixir 1.18 (removing warnings).

**News:**

- Removed GitHub pages (/docs/) as hexdocs.pm is the official documentation site.
- Bumping versions to all dev/test dependencies.
- Improving CI pipelines and fixing HTML-generated docs (badges).
- Removing unneeded docs tasks.

**Acknowledgments:**

- Andrew Bruce (@camelpunch) for notifying about 1.18 warnings and starting as a reviewer.

## v0.2.6 (2024-01-18)

**Enhancements:**

- Improving a parsing case for the PNM format. If its signature is not fully formed, it skips parsing the size.

**News:**

- Adding `styler` to format and solve credo styling issues automatically.

## v0.2.5 (2024-06-09)

**News:**

- Added CI pipelines (test, lint, build).
- Formatting code with `mix format`.
- Bumping versions to all dev/test dependencies.

**Types:**

- Rest case for `seems?/2` returns a boolean (`false`) instead of `nil`.

**Acknowledgments:**

- Matthew Johnston (@warmwaffles) for all these changes and starting as a reviewer/contributor.

## v0.2.4 (2018-11-24)

**Enhancements**
**Enhancements:**

- By request of a GitHub user: support for another variant of webp
- Studied and integrated the webpVP8X format (bitstream animated)
Expand Down
3 changes: 2 additions & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# CONTRIBUTORS

nozalr <[email protected]>
- Raúl (@rNoz) <[email protected]>
- Matthew Johnston (@warmwaffles)
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

# ExImageInfo

[![Elixir](https://img.shields.io/badge/made_in-elixir-9900cc.svg?style=flat-square)](http://elixir-lang.org) [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/Group4Layers/ex_image_info/master/LICENSE.md) <a class="no-underline" href="https://github.com/Group4Layers/ex_image_info"><img src="https://img.shields.io/badge/coverage-98.4%25-green.svg" alt="Coverage"></a> <a class="no-underline" href="https://github.com/Group4Layers/ex_image_info"><img src="https://img.shields.io/badge/tests-54%2F54-green.svg" alt="Tests"></a>
[![Elixir](https://img.shields.io/badge/made_in-elixir-9900cc.svg?style=flat-square)](http://elixir-lang.org) [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/Group4Layers/ex_image_info/master/LICENSE.md) [![Coverage](https://img.shields.io/badge/coverage-98.4%25-green.svg)](https://github.com/Group4Layers/ex_image_info) [![Tests](https://img.shields.io/badge/tests-58%2F58-green.svg)](https://github.com/Group4Layers/ex_image_info)

ExImageInfo is an Elixir library to parse images (binaries) and get the dimensions (size), detected mime-type and overall validity for a set of image formats. It is the fastest and supports multiple formats.

Online tools: [![Build Status](https://travis-ci.org/Group4Layers/ex_image_info.svg?branch=master)](https://travis-ci.org/Group4Layers/ex_image_info) [![Coverage Status](https://coveralls.io/repos/github/Group4Layers/ex_image_info/badge.svg?branch=master)](https://coveralls.io/github/Group4Layers/ex_image_info?branch=master) [![SourceLevel](https://app.sourcelevel.io/github/Group4Layers/-/ex_image_info.svg)](https://app.sourcelevel.io/github/Group4Layers/-/ex_image_info) [![Inline docs](http://inch-ci.org/github/Group4Layers/ex_image_info.svg)](http://inch-ci.org/github/Group4Layers/ex_image_info)
Status: [![Elixir 1.18 / OTP 27](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_latest.yml/badge.svg)](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_latest.yml) [![Elixir 1.16 / OTP 26](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_recent.yml/badge.svg)](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_recent.yml) [![Elixir 1.14 / OTP 25](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_old.yml/badge.svg)](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_old.yml) [![Coverage Status](https://coveralls.io/repos/github/Group4Layers/ex_image_info/badge.svg?branch=master)](https://coveralls.io/github/Group4Layers/ex_image_info?branch=master) [![Inline docs](http://inch-ci.org/github/Group4Layers/ex_image_info.svg)](http://inch-ci.org/github/Group4Layers/ex_image_info)

### [GitHub repo](https://github.com/Group4Layers/ex_image_info) &nbsp;&nbsp; [Docs](https://group4layers.github.io/ex_image_info) &nbsp;&nbsp; [Hex.pm package](https://hex.pm/packages/ex_image_info)
### [GitHub repo](https://github.com/Group4Layers/ex_image_info) · [Docs](https://hexdocs.pm/ex_image_info/ExImageInfo.html) · [Hex.pm package](https://hex.pm/packages/ex_image_info)

## Table of Contents

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.2.6
0.2.7
17 changes: 0 additions & 17 deletions docs/.build

This file was deleted.

85 changes: 0 additions & 85 deletions docs/404.html

This file was deleted.

Loading
Loading