stash/.dev-notes.md

119 lines
3.3 KiB
Markdown

# 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
- Location: `.guix-channel/`
- Status: Configured for distribution
- URL: <https://codeberg.org/glenneth/stash>
- Branch: main
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