stash/.dev-notes.md

3.3 KiB

Stash Development Notes

Project Status (as of last update)

Version

  • Current Version: 0.1.0-alpha.1

Core Components

  1. Main Script

    • Location: stash.scm
    • Status: Functional with recursive stashing support
    • Features: Command-line interface, recursive mode, help system
  2. Modules

    • Location: modules/stash/
    • Components:
      • help.scm: Help text and command documentation
      • colors.scm: Terminal color support
      • log.scm: Logging functionality
      • paths.scm: Path manipulation utilities
      • conflict.scm: Conflict resolution
      • file-ops.scm: File operations
      • package.scm: Package information
      • tree.scm: Directory tree handling

Guix Integration

  1. Channel Configuration

  2. Package Definition

    • Location: .guix-channel/stash/packages/stash.scm
    • Build System: GNU Build System
    • Dependencies: guile-3.0

Documentation

  1. README.md

    • Basic installation instructions
    • Key features
    • Usage examples
    • Recently updated with Guix installation method
  2. USER_GUIDE.md

    • Comprehensive installation guide
    • Shell configuration (Fish, Bash, Zsh)
    • Usage examples
    • Troubleshooting
    • Recently added with detailed setup instructions
  3. channels.scm.example

    • Example Guix channel configuration
    • Updated to use Codeberg repository

Development Environment

  • Build System: Copy Build System (for local development)
  • Test Environment: Created test-source/ directory with sample files
  • Shell Integration: Configured for Fish, Bash, and Zsh

Recent Changes

  1. Documentation Updates

    • Added USER_GUIDE.md with comprehensive setup instructions
    • Updated README.md with Guix installation method
    • Improved markdown formatting in documentation
    • Updated repository links to Codeberg
  2. Package System

    • Configured proper Guix channel distribution
    • Updated package definition for channel distribution
    • Added minimal-package.scm for local development
  3. Testing Improvements

    • Implemented comprehensive test suite for paths and tree modules
    • Fixed fold-tree implementation in tree module
    • Resolved module import conflicts
    • Fixed declarative module warnings
    • Added proper test coverage for path normalization
    • Improved test organization and clarity

Next Steps

  1. Documentation

    • Add API documentation for modules
    • Include more advanced usage examples
  2. Features

    • Enhance conflict resolution
    • Add backup functionality
    • Improve error reporting

Known Issues

No major issues currently. All previous warnings have been resolved:

  • Fixed warning about canonicalize-path override by renaming to normalize-path
  • Fixed read-string import conflict in conflict module
  • Fixed declarative module warning in test runner
  • Auto-compilation messages resolved with GUILE_AUTO_COMPILE=0

Repository Structure

  1. Root Directory

    • stash.scm: Main executable
    • run-tests.sh: Test runner script
    • .dev-notes.md: Development notes and tracking
    • README.md: Project overview
    • USER_GUIDE.md: Detailed user documentation
  2. Modules

    • modules/stash/: Core functionality modules
    • tests/: Test suite and helpers
    • .guix-channel/: Guix distribution configuration