Skip to content

Release PyGAD 3.8.1 - #380

Merged
ahmedfgad merged 3 commits into
masterfrom
github-actions
Oct 11, 2026
Merged

ahmedfgad merged 3 commits into
masterfrom
github-actions

Conversation

@ahmedfgad

Copy link
Copy Markdown
Owner

PyGAD 3.8.1

Release Date: October 11, 2026.

  1. Random and adaptive mutation clip generated values to NumPy integer type limits before casting, fixing overflow errors and wraparound with types such as numpy.uint8 and numpy.int8. The same rule covers additive and replacement mutation, None gene-space entries, constraint candidates, and duplicate repair. Clipping applies only to explicitly requested NumPy integer types. See issue #379 and Conversion and Rounding Rules.
  2. Python int conversion of candidate arrays and population columns uses explicit signed 64-bit storage across NumPy versions and platforms, fixing large-integer conversion and initialization failures on Windows with NumPy 1.x. Integer range sampling and bounded operators use the same storage limits. Parent selection and crossover share array allocation, preserving large integers throughout the lifecycle. Per-gene Python int elements keep their scalar type, and explicitly requested NumPy types keep their widths. Supplied Python int population values must fit in signed 64-bit storage; use gene_type=object for larger supplied integers. See Conversion and Rounding Rules.
  3. Regression tests cover integer mutation limits, exact large-integer storage, initialization, constraints, duplicate repair, parent selection, crossover, and NSGA-III population growth. Windows CI checks both NumPy 1.24.4 and the latest NumPy release without version-specific implementation branches. The 16 pre-existing Windows failures with NumPy 1.24.4 are fixed, and no higher NumPy minimum is required. The pygad.helper and pygad.utils submodule versions are 1.4.6 and 1.5.8.

@github-actions

Copy link
Copy Markdown

📊 Change summary

15 files changed · +403 / −51 lines

pie showData
    title Lines changed per file (454 total)
    "tests/test_python_int_storage.py" : 149
    "tests/test_mutation_integer_limits.py" : 143
    "pygad/helper/misc.py" : 51
    ".github/workflows/main.yml" : 45
    "pygad/utils/crossover.py" : 25
    "pygad/utils/parent_selection.py" : 10
    "docs/source/releases.md" : 8
    "docs/source/index.md" : 6
    "docs/source/pygad.md" : 4
    "docs/source/gene_values.md" : 3
    "README.md" : 2
    "pygad/_version.py" : 2
    "pygad/helper/__init__.py" : 2
    "pygad/utils/__init__.py" : 2
    "tests/test_nsga3_population_growth.py" : 2
Loading
Per-file breakdown
File + − total
tests/test_python_int_storage.py 149 0 149
tests/test_mutation_integer_limits.py 143 0 143
pygad/helper/misc.py 36 15 51
.github/workflows/main.yml 45 0 45
pygad/utils/crossover.py 5 20 25
pygad/utils/parent_selection.py 2 8 10
docs/source/releases.md 8 0 8
docs/source/index.md 4 2 6
docs/source/pygad.md 3 1 4
docs/source/gene_values.md 3 0 3
README.md 1 1 2
pygad/_version.py 1 1 2
pygad/helper/__init__.py 1 1 2
pygad/utils/__init__.py 1 1 2
tests/test_nsga3_population_growth.py 1 1 2
Total (15 files) 403 51 454

@ahmedfgad
ahmedfgad merged commit 079bf39 into master Oct 11, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant