Skip to content

Conversation

@moehoshio
Copy link

[neko-function/1.0.7] New Recipe Submission

Recipe Information

  • Recipe name: neko-function
  • Version: 1.0.7
  • Homepage: https://github.com/moehoshio/NekoFunction
  • License: MIT OR Apache-2.0
  • Description: A comprehensive modern C++ utility library that provides practical functions for common programming tasks

Key Features

  • Utilities Module (header-only): String processing, time handling (ISO 8601), Base64 encoding/decoding, random generation, validation, operators (pipe, fallback, optional chaining), memory and lambda utilities
  • Hash Module (requires OpenSSL): Cryptographic hash functions (MD5, SHA1, SHA256, SHA512)
  • UUID Module (v4 always available, v3 requires OpenSSL): UUID generation
  • Archive Management (requires minizip-ng): ZIP archive creation/extraction with encryption support
  • File Type Detection (header-only): Magic number and extension-based file type detection
  • C++20 Module Support: Optional module interface

Recipe Options

The recipe provides the following options:

  • enable_hash (default: False): Enable hash support (adds OpenSSL dependency)
  • enable_archive (default: False): Enable archive support (adds minizip-ng dependency)
  • enable_module (default: False): Enable C++20 module support

Package Type

The recipe intelligently sets the package type:

  • header-library: When both enable_hash and enable_archive are False (default)
  • library: When either enable_hash or enable_archive is True

Dependencies

Required

  • NekoSchema: Currently auto-fetched via CMake FetchContent (will be added as Conan dependency once available in ConanCenter)

Conditional (based on options)

  • openssl (>=3.0): Required when enable_hash=True
  • minizip-ng (>=4.0): Required when enable_archive=True

Testing

This recipe has been extensively tested and verified through automated integration package management testing. The testing methodology includes:

  1. Local Installation: Recipe is installed via Conan in local mode (conan create)
  2. Minimal Build Unit: A minimal compilation unit (tests/conan/test.cpp) is created and built
  3. Functional Testing: The test executable validates core functionality

Test Platforms

  • Windows (MSVC)
  • Linux (GCC/Clang)
  • macOS (AppleClang)

The testing ensures that:

  • Recipe builds successfully with Conan
  • CMake find_package(NekoFunction) succeeds
  • Neko::Function target is properly exported and linkable
  • All enabled options function correctly
  • Proper header-only vs library packaging based on options

Additional Notes

  • The recipe uses CMake FetchContent to automatically fetch NekoSchema until it becomes available in ConanCenter
  • Header-only components work with minimal dependencies
  • Feature-dependent components are properly gated by options
  • The library provides both traditional headers and optional C++20 module support
  • Proper target name mapping for minizip-ng is configured
  • All tests pass in CI/CD environments

Checklist

  • Recipe follows Conan 2.x conventions
  • Package builds successfully on all supported platforms
  • All options are properly tested
  • Dependencies are correctly declared
  • CMake integration works correctly
  • Test package is provided and working
  • License information is accurate
  • Version is correctly specified
  • conandata.yml includes source URL and hash
  • Automated integration tests pass
  • Recipe is compatible with ConanCenter hooks

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