Skip to content

Releases: se2p/pynguin

Release Pynguin 0.45.0

29 Jan 11:06

Choose a tag to compare

  • Improve logging with master-worker architecture (cf. GitHub PR #136, #139)
  • Improve the temporary activation/deactivation of the tracer (cf. GitHub PR #137)
  • Fix fitness computation (cf. GitHub PR #138)
  • Fix infinite mutation loop in EnumPrimitiveStatement and ClassPrimitiveStatement (cf. GitHub PR #140)
  • Fix crash due to OSError during subprocess result reception
  • Fixes for Local Search

Release Pynguin 0.44.0

17 Nov 19:58

Choose a tag to compare

  • Remove unnecessary log messages in case of test execution timeouts (cf. GitHub PR #113)
  • Remove unused exceptions, classes, and arguments (cf. GitHub PR #114)
  • Conditional coverage (cf. GitHub PR #115, #121)
  • Prevent destructors from being explicitly called during test generation (cf. GitHub PR #117)
  • Add support for Python3.14 (cf. GitHub PR #120)
  • Remove the temporary hack caused by the bytecode library (cf. GitHub PR #122)
  • Handle InvalidInput when formatting module with black (cf. GitHub PR #124)
  • Fix configuration write (cf. GitHub PR #125)
  • Fix "tracing aborted" in coverage report (cf. GitHub PR #126)
  • Add local search (fix bugs in cf. GitHub PR #127)
  • Fix reload module (cf. GitHub PR #128)
  • Fix deprecated typing (cf. GitHub PR #129)
  • Add master-worker architecture (cf. GitHub PR #130)
  • Add execution recorder (cf. GitHub PR #132)
  • Add faker and fandango string generation
  • Enhance TypeTracing for string subtypes
  • Fix TypeError with NoneType (cf. GitHub Issue #53)
  • Add test suite/case minimization with multiple fitness functions
  • Add LLM type inference
  • Adjust optional dependencies to use --extras instead of --with
  • Add Executed and CrashRevealingSize runtime variables
  • Add before-execution execution recorder
  • Improve LLM assertion parsing
  • Replace isort with ruff-format
  • Improve DynaMOSA parameters

Pynguin 0.43.0

01 Sep 12:54

Choose a tag to compare

  • Add experimental support for Python 3.11, 3.12, and 3.13 (cf. GitHub PR #110, Issue #84)
  • Improve subprocess performance (cf. GitHub PR #110)
  • Refactor instrumentation, control-flow graph, tracing, and DynamicSlicer (cf. GitHub PR #110)
  • Fix object_addersses not reset after each test execution (cf. GitHub PR #110)
  • Fix use of CODE_OBJECT_ID_KEY for modules operating on their docstring (cf. GitHub PR #110)
  • Fix edge cases in dynamic slicer (cf. GitHub PR #110)

Pynguin 0.42.0

28 Aug 10:36

Choose a tag to compare

  • Add Test Case & Test Suite Minimization and Crashing Test Minimization
  • Add an error if module is not found (cf. GitHub Issue #95),
    not imported (cf. GitHub Issue #104) or if a coroutine (async) was found
  • Set crash_path to output_path by default for subprocess-execution
  • Fix crash when creation of coverage report failed
  • Fix crash when report_dir does not exist (cf. GitHub Issue #105)
  • Add export of used requirements as requirements.txt to output_path for Docker
  • Add a heuristic for deciding if subprocess-execution should be used

Pynguin 0.41.0

23 May 11:22

Choose a tag to compare

  • Fix subject_properties aren't registered when running Pynguin on an imported module
  • Update documentation (Codestyle, Code Overview)
  • Add LLM-Agent guidelines
  • Add PynguinML mode: Parsing and test generation for libraries which require tensor inputs based on API constraints
  • Add LLM capabilities: Prompting, parsing, and the LLMOSAAlgorithm
  • Add subprocess execution (cf. GitHub Issue #82): Executing test cases in subprocess adds an overhead but makes Pynguin more crash resistant
  • Refactor TestCaseExecutor and Observer (cf. GitHub Issue #90): Restructuring observers into main-thread and remote variants to support safe subprocess execution, better performance, and introducing batch test execution and improved error handling for unexposed modules and timeouts
  • Refactor Tracer (cf. GitHub Issue #89): Proxy tracer to allow for subprocess instrumentation without costly reinstrumentation
  • Add MaxMemoryStoppingCondition: Graceful termination in case of exceeding a memory threshold
  • Add probabilistic TypeTracing
  • Add minimal LLM mode: Minimal LLM test generator using GPT-4o
  • Fixes for isinstance for getmembers, importing the SUT, SystemExit in the SUT, loggers of the SUT, and crashes in SUT
  • Fix bugs related to UnionTypes, lambda parsing, yield statements, getmembers of SUT, import of SUT, and SystemExit in SUT
  • Improve string distance using left-aligned character distance

Pynguin 0.40.0

06 Dec 07:59

Choose a tag to compare

  • Provide a (normalised) area under curve for timeline output variables.

    Variables for statistics that produce a timeline, e.g., coverage development over time imply in interesting property: while the final coverage of two distinct runs/configurations might be equal, one might have a faster coverage increase than the other, thus could be considered better. The area under curve, i.e., the integral over the development function allows to access this property easily.

  • Add the ability to write the logging to a log file and not only STDOUT.

  • Add an auto-deploy action to GitHub to push releases to PyPI.

  • Fix a typo in the documentation (cf. GitHub issue #75).

  • Switch to ruff-format.

Pynguin 0.39.0

21 Jun 09:30

Choose a tag to compare

  • Fix a bug in the handling of infinite loops in global scope (thanks to @BergLucas in #65)

Pynguin 0.38.0

21 Jun 09:20

Choose a tag to compare

  • Remove the dependency to our custom MutPy fork by integrating the relevant code into Pynguin directly (thanks to @BergLucas in #64)

Pynguin 0.37.0

14 Jun 18:00

Choose a tag to compare

  • Add possibility to control number of mutations in MOSA.
  • Compute the area under curve if Pynguin traces the overage over time; area under curve can be interpreted as the integral over the coverage function, which is computed via trapezoidal approximation.
  • Fix the assertion generation for floats (thanks to @BergLucas in #70)
  • Fix assertion and invalid function call (thanks to @BergLucas in #72)

Pynguin 0.36.0

02 Apr 13:19

Choose a tag to compare

  • Remove unused code
  • Fix ruff warnings
  • Add sequence variable for type-evolution tracking
  • Add CLI options to ignore methods and modules from analysis (see #62)