Skip to content

Releases: luk036/py2cpp

1.5

17 Sep 02:23

Choose a tag to compare

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

1.4.11

29 Mar 12:14

Choose a tag to compare

Release Notes: py2cpp v1.4.11

Overview

This release focuses on cleanup and maintenance, removing deprecated features and updating the project version.

Changes

  • Version Update: Bumped project version from 1.4.10 to 1.4.11 in CMakeLists.txt.
  • Removed Standalone Workflow: Renamed .github/workflows/standalone.yml to .github/workflows/standalone.bak, indicating deprecation.
  • Removed Greeter Module: Deleted the greeter feature, including:
    • include/py2cpp/greeter.h
    • source/greeter.cpp
    • test/source/greeter.old
  • CI Badge Cleanup: Removed the outdated "Style" workflow badge from README.md.
  • Build System Tweaks: Commented out standalone directory inclusion in all/CMakeLists.txt.

Contributors

  • luk036: Authored all commits in this release.

Full Details

For a complete diff, see the GitHub comparison.


Note: This release reduces codebase complexity by removing unused components.

new documentation build

01 Dec 05:52

Choose a tag to compare

1.4.10

new documentation

Update the third part libraries

27 Mar 05:42

Choose a tag to compare

1.4.9

set version 1.4.9

code cleanup for documentation

04 Aug 08:37

Choose a tag to compare

use latest ModernCppStarter as template

04 Aug 08:24

Choose a tag to compare

add at() and make it work

24 Jun 11:46

Choose a tag to compare

1.4.6

add at() method

add at() for compatability with standard

23 Jun 11:36

Choose a tag to compare

1.4.5

add at() for compatability

add Lict (Dict-like data structure by std::vector)

15 Jun 07:39

Choose a tag to compare

fix for py::enumerate

17 Mar 04:38

Choose a tag to compare

1.4.3

fix for py::enumerate