Skip to content

v0.2.0 - Basic CLI Scaffolding

Compare
Choose a tag to compare
@NickSeagull NickSeagull released this 27 Jul 10:33
· 4 commits to main since this release
b410aa7

This release lays the foundation for building CLI applications in NeoHaskell using an Elm-inspired architecture. It introduces a basic scaffolding for CLI apps and significantly expands the core library functionality.

Key Features

  1. CLI Application Architecture:

    • Introduced a Platform module that provides an Elm-like architecture for CLI apps
    • Added Command and Html modules to support this architecture
    • Implemented a main event loop and rendering system using the brick library
  2. Enhanced Core Library:

    • Added Channel, Var, and ConcurrentVar modules for improved concurrency support
    • Introduced AsyncIO for asynchronous operations
    • Expanded Array module with new functions like flatMap and forEach
    • Added Version module with parsing and quasiquoting capabilities
  3. Improved Type System:

    • Introduced Unknown type for dynamic typing scenarios
    • Added Record module for working with extensible records
  4. New Modules:

    • Json and Yaml modules for data serialization and deserialization
    • OptionsParser module for CLI argument parsing
    • Console module with debugging capabilities
  5. Trait System Enhancements:

    • Reorganized and expanded trait modules (e.g., Appendable, Applicable, Combinable)
    • Introduced ToText trait for consistent string conversion
  6. Project Structure:

    • Restructured the project layout for better organization
    • Added a basic project configuration file (project.yaml)
  7. Development Environment:

    • Updated devenv.nix for an improved development setup
    • Added CodeRabbit configuration for code review automation

Breaking Changes

  • Significant changes to the core library structure and module names
  • Altered behavior of some existing functions to align with the new architecture

Notes

This release focuses on establishing the foundational architecture for NeoHaskell CLI applications. While it introduces many new features, it's important to note that the API is still in flux and may undergo further changes in future releases.