Skip to content

1.5

Choose a tag to compare

@luk036 luk036 released this 17 Sep 02:23
· 6 commits to master since this release

Full Changelog: 1.4.11...1.5

Release Notes: py2cpp v1.5

Overview

This release introduces several enhancements to the py2cpp library, a header-only C++ library designed to bring Python-like features to modern C++. Key improvements include expanded unit test coverage, code optimizations, and updates to build configurations.

🚀 New Features & Improvements

1. Enhanced Unit Test Coverage

  • Added comprehensive unit tests for Boost Graph adaptors (test_nx2bg1.cpp):
    • GrAdaptor for graph operations
    • VertexView and EdgeView for graph traversal
    • AtlasView for neighbor iteration
  • Added tests for Python-like data structures:
    • py::dict methods including contains, get, items, copy, and len
    • py::enumerate and py::const_enumerate for iterable indexing
  • Extended tests for Fraction class in fractions.hpp:
    • Arithmetic operations (+, -, *, /)
    • Comparison operators (<, <=, >, >=, ==, !=)
    • In-place operations (+=, -=, *=, /=)

2. Code Optimizations

  • Performed code optimizations via Gemini CLI
  • Applied fix-format to ensure consistent code style

3. Build System Updates

  • Upgraded C++ standard from C++14 to C++17
  • Added Boost support in XMake configuration:
    • Included boost package dependency
    • Added Boost-specific test files to the build
  • Improved compiler flag handling for Linux and Windows platforms

🛠️ Development Workflow Improvements

  • Updated CMakeLists.txt to use C++17 standard
  • Enhanced XMake configuration for better cross-platform compatibility
  • Added [[maybe_unused]] attribute to silence compiler warnings in range-based loops

✅ Testing

  • All new tests pass successfully using the doctest framework
  • CI pipeline now includes Boost-based tests via XMake

📦 Dependencies

  • Added explicit dependency on Boost library for graph-related features
  • Maintained compatibility with fmt and doctest

🔧 Known Issues

  • None reported in this release

📄 Documentation

  • Documentation can still be generated via Doxygen using the provided CMake targets

Contributors

  • luk036 (all commits)

Full Commit Summary

  • b81445c: feat: Add more unit tests for boost
  • 5c26186: add more unit tests
  • dfbf36f: fix xmake compilation issue
  • ffb69b9: perform code optimization by Gemini CLI; apply fix-format