Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a92f6a8
add unit test for code coverage
Maxime-Cllt Aug 21, 2025
3a04dcb
add description in code
Maxime-Cllt Aug 21, 2025
26193eb
cargo clippy fix
Maxime-Cllt Aug 21, 2025
15732b4
refactor: improve code clarity and update dependencies for performance
Maxime-Cllt Sep 9, 2025
ffc1049
refactor: remove custom release-max profile for cleaner configuration
Maxime-Cllt Sep 9, 2025
ddc3cf5
ci: streamline CI configuration and add version badge update workflow
Maxime-Cllt Sep 18, 2025
5688fc6
chore: update Cargo.lock and Cargo.toml with new dependencies and ver…
Maxime-Cllt Sep 18, 2025
099c774
chore: update Cargo.lock and Cargo.toml with new dependencies and ver…
Maxime-Cllt Sep 18, 2025
426d6b5
chore: update dependencies in Cargo.lock and Cargo.toml, improve CI c…
Maxime-Cllt Sep 18, 2025
8189446
chore: update dependencies in Cargo.lock and Cargo.toml, improve CI c…
Maxime-Cllt Sep 18, 2025
e9d70b1
chore: update dependencies in Cargo.lock and Cargo.toml, improve CI c…
Maxime-Cllt Sep 18, 2025
1029a8e
chore: update dependencies in Cargo.lock and Cargo.toml, improve CI c…
Maxime-Cllt Sep 18, 2025
1b476a7
chore: update dependencies in Cargo.lock and Cargo.toml, improve CI c…
Maxime-Cllt Sep 18, 2025
8e0b424
chore: update CI configuration to run on Windows and simplify build/t…
Maxime-Cllt Sep 18, 2025
d3b5ae4
chore: update dependencies in Cargo.toml to latest versions and adjus…
Maxime-Cllt Sep 18, 2025
158a489
chore: clean up Cargo.lock by removing unused dependencies and updati…
Maxime-Cllt Sep 18, 2025
19b2b24
chore: update CI configuration to trigger on main and master branches
Maxime-Cllt Sep 18, 2025
0f32d23
Merge branch 'master' into v1.0.2
Maxime-Cllt Sep 18, 2025
72bba2b
chore: reorder imports and fix module visibility in multiple files
Maxime-Cllt Sep 29, 2025
238d320
chore: update CI configuration to include specific file paths for pus…
Maxime-Cllt Sep 29, 2025
fb4977d
chore: update version to 1.0.3 and adjust dependencies in Cargo files
Maxime-Cllt Sep 29, 2025
97969c8
bump version
Jan 2, 2026
feffb80
Merge remote-tracking branch 'origin/v1.0.3' into v1.0.3
Jan 2, 2026
d5592a9
refacto & optimize -3% perf
Jan 2, 2026
0765f8b
refacto & optimize -99% perf
Jan 2, 2026
863bb34
refacto & optimize -10% perf
Jan 2, 2026
1266afe
f128
Jan 2, 2026
974c572
feat: add new color schemes and ultra-high precision support for frac…
Maxime-Cllt Jan 2, 2026
58f1600
feat: enhance CI configuration to support multiple build variants and…
Maxime-Cllt Jan 2, 2026
0cf8b40
feat: optimize performance by enforcing inlining and refactoring pixe…
Maxime-Cllt Jan 2, 2026
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
59 changes: 36 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,21 @@ name: Rust CI

on:
push:
branches: [ "main" , "master"]
paths-ignore:
- '**.md'
- 'docs/**'
- 'LICENSE*'
- '.gitignore'
- '.github/dependabot.yml'
- 'images/**'
branches: [ "main" , "master" ]
paths:
- '**.rs'
- '**.toml'
- '**.lock'
- '.github/**'
- 'build/**'
pull_request:
branches: [ "main" , "master"]
paths-ignore:
- '**.md'
- 'LICENSE*'
- '.gitignore'
- '.github/dependabot.yml'
- 'assets/**'
branches: [ "main" , "master" ]
paths:
- '**.rs'
- '**.toml'
- '**.lock'
- '.github/**'
- 'build/**'
workflow_dispatch:

env:
Expand All @@ -26,25 +25,39 @@ env:

jobs:
check:
name: Check, Build and Test
name: Check, Build and Test (${{ matrix.features }})
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
features:
- "default"
- "f128"
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
# Cache key based on Cargo.lock and source files
key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}
# Cache key based on Cargo.lock, source files, and features
key: ${{ matrix.features }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/*.rs') }}

- name: Build project
- name: Build project (default features)
if: matrix.features == 'default'
run: cargo build --workspace --verbose

- name: Run tests
run: cargo test --all-features --workspace --verbose
- name: Build project (with f128)
if: matrix.features == 'f128'
run: cargo build --workspace --features f128 --verbose

- name: Run tests (default features)
if: matrix.features == 'default'
run: cargo test --workspace --verbose

- name: Run tests (with f128)
if: matrix.features == 'f128'
run: cargo test --workspace --features f128 --verbose
71 changes: 54 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,19 +186,24 @@ jobs:

build-and-upload:
needs: [ get-version, create-tag ]
name: Build & Release for ${{ matrix.target }} on ${{ matrix.os }}
name: Build & Release for ${{ matrix.target }} (${{ matrix.variant }}) on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# - { os: ubuntu-latest, target: x86_64-unknown-linux-gnu, cross: false }

- { os: windows-latest, target: x86_64-pc-windows-msvc, cross: false }
- { os: windows-latest, target: aarch64-pc-windows-msvc, cross: false }

- { os: macos-latest, target: x86_64-apple-darwin, cross: false }
- { os: macos-latest, target: aarch64-apple-darwin, cross: false }
# - { os: ubuntu-latest, target: x86_64-unknown-linux-gnu, cross: false, variant: "standard" }
# - { os: ubuntu-latest, target: x86_64-unknown-linux-gnu, cross: false, variant: "f128" }

- { os: windows-latest, target: x86_64-pc-windows-msvc, cross: false, variant: "standard" }
- { os: windows-latest, target: x86_64-pc-windows-msvc, cross: false, variant: "f128" }
- { os: windows-latest, target: aarch64-pc-windows-msvc, cross: false, variant: "standard" }
- { os: windows-latest, target: aarch64-pc-windows-msvc, cross: false, variant: "f128" }

- { os: macos-latest, target: x86_64-apple-darwin, cross: false, variant: "standard" }
- { os: macos-latest, target: x86_64-apple-darwin, cross: false, variant: "f128" }
- { os: macos-latest, target: aarch64-apple-darwin, cross: false, variant: "standard" }
- { os: macos-latest, target: aarch64-apple-darwin, cross: false, variant: "f128" }
steps:
- name: Fetch Repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -231,36 +236,68 @@ jobs:
with:
target: ${{ matrix.target }}

- name: Build the binary
- name: Build the binary (standard)
if: matrix.variant == 'standard'
run: |
cargo build --release --target ${{ matrix.target }}

- name: Rename binary (Linux & macOS)
if: ${{ matrix.os != 'windows-latest' }}
- name: Build the binary (f128)
if: matrix.variant == 'f128'
run: |
cargo build --release --target ${{ matrix.target }} --features f128

- name: Rename binary (Linux & macOS - standard)
if: ${{ matrix.os != 'windows-latest' && matrix.variant == 'standard' }}
run: |
mv target/${{ matrix.target }}/release/Fractals-rs target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}

- name: Rename binary (Windows)
if: ${{ matrix.os == 'windows-latest' }}
- name: Rename binary (Linux & macOS - f128)
if: ${{ matrix.os != 'windows-latest' && matrix.variant == 'f128' }}
run: |
mv target/${{ matrix.target }}/release/Fractals-rs target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}-f128

- name: Rename binary (Windows - standard)
if: ${{ matrix.os == 'windows-latest' && matrix.variant == 'standard' }}
run: |
mv target/${{ matrix.target }}/release/Fractals-rs.exe target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}.exe

- name: Upload release binary (Windows)
if: ${{ matrix.os == 'windows-latest' }}
- name: Rename binary (Windows - f128)
if: ${{ matrix.os == 'windows-latest' && matrix.variant == 'f128' }}
run: |
mv target/${{ matrix.target }}/release/Fractals-rs.exe target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}-f128.exe

- name: Upload release binary (Windows - standard)
if: ${{ matrix.os == 'windows-latest' && matrix.variant == 'standard' }}
uses: actions/upload-artifact@v4
with:
name: Fractals-rs-${{ matrix.target }}.exe
path: target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}.exe
compression-level: '9'

- name: Upload release binary (Linux & macOS)
if: ${{ matrix.os != 'windows-latest' }}
- name: Upload release binary (Windows - f128)
if: ${{ matrix.os == 'windows-latest' && matrix.variant == 'f128' }}
uses: actions/upload-artifact@v4
with:
name: Fractals-rs-${{ matrix.target }}-f128.exe
path: target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}-f128.exe
compression-level: '9'

- name: Upload release binary (Linux & macOS - standard)
if: ${{ matrix.os != 'windows-latest' && matrix.variant == 'standard' }}
uses: actions/upload-artifact@v4
with:
name: Fractals-rs-${{ matrix.target }}
path: target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}
compression-level: '9'

- name: Upload release binary (Linux & macOS - f128)
if: ${{ matrix.os != 'windows-latest' && matrix.variant == 'f128' }}
uses: actions/upload-artifact@v4
with:
name: Fractals-rs-${{ matrix.target }}-f128
path: target/${{ matrix.target }}/release/Fractals-rs-${{ matrix.target }}-f128
compression-level: '9'

upload-release:
name: Create GitHub Release
runs-on: ubuntu-latest
Expand Down
Loading