github graph-algorithms/edge-addition-planarity-suite Version_4.0.1.0
Version 4.0.1.0

one day ago

Overview

In this maintenance release of the Edge Addition Planarity Suite project, we focused on the code developer/adopter experience. The code has been scoured to find and remediate any compile-time and run-time issues. The default settings in the VS Code configuration have been changed to treat pedantic-and-beyond warnings as errors, and all existing warnings were remediated. A few very minor memory leaks were found in the planarity application layer and fixed, and none were found in the graph library and algorithm implementations. All command-line and menu-driven endpoints were thoroughly tested with address sanitizer tooling. GitHub workflows have been contributed, by developers in one of our adopting projects (Digraphs), that automatically test compilation as well as pedantic-and-beyond warning compliance, check spelling, and apply multiple address sanitization tooling. The project code has also been tested for pedantic-and-beyond warning compliance with gcc-15 on Debian 13 “Sid” prerelease.

Summary of commits contributing to 4.0.1.0 release
  1. c3a2450 - PR #150 by @Joseph-Edwards - Specify pkgconfigdir; confirmed that adding this line to Makefile.am doesn't change where the libplanarity.pc shows up (i.e. /usr/local/lib/pkgconfig/)
  2. 2aa7fc6 - PR #151 by @Joseph-Edwards - This commit adds some workflows that:
    • check for compiler warnings
    • check that the tests pass using a variety of different clang and gcc versions
    • check that the tests pass on the operating systems Alpine, Cygwin, macOS, Ubuntu with aarch64, and Ubuntu with arm
    • run various sanitisers
    • checks for spelling mistakes.
  3. 71b28b8 - PR #148 by @james-d-mitchell - Added definition of --enable-compile-warnings flag to configure.ac to allow one to enable compiler warnings when building using autotools, and adds missing ax_require_defined.m4 file from autoconf-archive, in addition to copies of ax_append_flag.m4, ax_check_compile_flag.m4, ax_compiler_flags_cflags.m4, and ax_require_defined.m4
  4. 34a0421 - PR #149 by @james-d-mitchell - Fixes compiler warnings for -Wincompatible-pointer-types-discards-qualifiers and -Wnewline-eof
  5. 7ca159c - PR #155 by @wbkboyer - Fixes spelling errors surfaced by spelling.yml GitHub Actions workflow
  6. 36c4409 - PR #157 by @Joseph-Edwards - Adds debian, msys, and msys-arm jobs to os.yml GitHub Actions workflow, fixed cygwin job steps
  7. 068fa6d - PR #159 by @wbkboyer - Updated VSCode default build configurations in devEnvSetupAndDefaults/.vscode/tasks.json to include explicit list of compiler flags used with clang and gcc when one uses the autotools build pipeline to make the distribution with --enable-compile-warnings, where the list of compiler flags supplied to clang is a proper subset of those supplied to gcc
  8. 1f58cfc - PR #156 by @wbkboyer - Update .github/workflows/compile-warnings.yml so that the Configure step includes the --enable-compile-warnings flag
  9. e7af706 - PR #162 by @wbkboyer - Instead of commenting out extern definition of _IsolateMinorE2() ( defined in graphIsolator.c), added #ifndef USE_MERGEBLOCKER. This function is called in _RunExtraK33Tests() only when USE_MERGEBLOCKER is not defined, which ensures we can compile and run when not using the merge blocker optimization in the $K_{3,3}$ search.
  10. 815c75f - PR #163 by @wbkboyer - Added G6ReadIteratorP and G6WriteIteratorP typedefs, updated all function signatures to use these new aliases, and ensured all declarations use these rather than G6ReadIterator * and G6WriteIterator * . Finally, ensured that these changes to the various function signatures didn't cause backwards compatibility issues with the planarity wrapper executable.
  11. 9bbe1b8 - PR #164 by @wbkboyer - Bumped version numbers since these changes added interfaces: in configure.ac, LT_CURRENT and LT_AGE were incremented, and the AC_INIT was updated to match values in c/graphLib.h, in which GP_PROJECTVERSION_MAINT was incremented (new interface), and the GP_LIBPLANARITYVERSION_CURRENT and GP_LIBPLANARITYVERSION_AGE were updated to match configure.ac. Restored beginG6(Read|Write)Iteration(From|To)G6(String|FilePath) functions in g6-(read|write)-iterator.c/.h, which create the appropriate strOrFileP and callbeginG6(Read|Write)Iteration(From|To)G6StrOrFile. The only notable difference is that beginG6WriteIterationToString() now only has a single parameter, the G6WriteIteratorP; this is because we never want to pass a pointer-pointer to memory to use for the strOrFileP's internal theStr when ioMode is WRITETEXT - it should be allocated and owned by the strOrFileP entirely until you sf_takeTheStr(). Updated testAllGraphs() in c/planarityApp/planarityTestAllGraphs.c so that it calls beginG6ReadIterationFromG6FilePath(). Updated RandomGraphs() in c/planarityApp/planarityRandomGraphs.c so that we either beginG6WriteIterationToG6FilePath() for outfileName (if we get to RandomGraphs() via command-line, e.g. planarity -r -p 100 1000 n100.k1000.g6) or theFileName (if we get to RandomGraphs() via the menu-driven system after Reconfigure() to output all generated random graphs to .g6)
  12. d587d6b - PR #166 by @wbkboyer - c/graphLib/io/g6-(read|write)-iterator.c/.h - Strengthened validation and error messaging of _isG6ReadIteratorAllocated() and _isG6WriteIteratorAllocated(). c/graphLib/io/g6-read-iterator.c/.h - Added macro G6ReadIteratorContentsExhausted() which will indicate that one should no longer try to read from the G6ReadIterator (sentinel variable contentsExhausted added to G6ReadIterator struct is set in readGraphUsingG6ReadIterator() when sf_fgets() returns NULL). c/graphLib/io/g6-write-iterator.c - Removed unnecessary call to _isG6WriteIteratorAllocated() in writeGraphUsingG6WriteIterator() (since _encodeAdjMatAsG6() immediately calls it), and removed some spaces in _WriteGraphToG6StrOrFile() to bring the exitCode tests up beneath the preceding calls. c/planarityApp/planarityTestAllGraphs.c - Updated testAllGraphs() so that it references theGraph rather than accessing pG6ReadIterator->currGraph, since we already have this external pointer. Also added FIXME statements regarding access of struct members, that we should have "getter" macros.
  13. bdb71a1 - PR #170 by @wbkboyer - Fixed minor memory leaks in planarityApp layer
  14. 4b0090 - PR #182 by @wbkboyer - Fixed memory leaks found by AddressSanitizer, updated TestSupport/planaritytesting/planarity_testAllGraphs_orchestrator.py so that one may optionally -w(rite) out stdout/stderr to logfiles per graph input slice file, added homeomorph search test graphs to c/samples, updated TestSupport/planaritytesting/leaksorchestrator/planarity_leaks_orchestrator.py so that the SpecificGraph() test no longer requires .g6 input file (since that restriction isn’t imposed at planarityApp layer), removed calls to reinitialize the copy of the current graph from the end of the loops of the RandomGraphs() and TestAllGraphs() flows, updated $K_{2,3}$, $K_{3,3}$, and $K_4$ homeomorph search function overrides for EmbedPostprocess so that when the result is OK, must make sure to cache theGraph->embedFlags and whether theGraph->internalFlags has FLAGS_ZEROBASEDIO set before gp_ReinitializeGraph() and restore after so that the correct override for CheckEmbeddingIntegrity is performed.
  15. c10f90f - PR #184 by @john-boyer-phd - Addressed all warnings emitted during the course of the GitHub Actions jobs when --enable-compile-warnings was turned on. Updated default VSCode tasks.json build configurations for all platforms to enable the same platform-specific warnings that occur when we --enable-compile-warnings (although specific instances of warnings are intentionally ignored using #pragma GCC diagnostic push/ignore/pop pattern), and updated MSVC cl build configuration to ignore specific warnings (with comments in the code justifying the ignore).

Full Changelog: Version_4.0.0.0...Version_4.0.1.0

New Contributors

SHA256 hashes

  • planarity-4.0.1.0.tar.gz : B80DE8B5E6CBBE00684C614CF7D040BB10F7C0AD6F850FD2D10C2E533C6026F5
  • planarity-4.0.1.0.Windows-Intel.zip : B6BA29CA0EDC51E1C82D5628E0FAF81E1914726B1AD277E4F68C5FCE13680F4A
  • planarity-4.0.1.0.MacOS-Silicon.zip : 01467f2befb2ec9afcd1723a922f9460db7a232ae34be6220473720748be22b3

Don't miss a new edge-addition-planarity-suite release

NewReleases is sending notifications on new releases.