This document describes the organization of the HyperSDK repository and the changes made to improve structure and maintainability.
hypersdk/
├── build/ # Build artifacts (gitignored)
│ ├── hyperctl # hyperctl binary
│ ├── hyperexport # hyperexport binary
│ └── hypervisord # hypervisord binary
├── cmd/ # Command-line applications
│ ├── hyperctl/ # Interactive TUI
│ ├── hyperexport/ # Export tool
│ └── hypervisord/ # Daemon service
├── config/ # Config package (Go source)
├── daemon/ # Daemon implementation
├── demos/ # Demo scripts and recordings
│ ├── README.md
│ ├── RECORDING-GUIDE.md
│ └── *.sh # Demo scripts
├── docs/ # Documentation
│ ├── 00-INDEX.md # Documentation index
│ ├── getting-started.md # Quick start guide
│ ├── project-summary.md # Architecture overview
│ ├── test-results.md # Test coverage
│ ├── README.md # Docs overview
│ ├── ROADMAP.md # Future plans
│ ├── NEW-FEATURES.md # Feature changelog
│ ├── api.md # API reference
│ ├── user-guides/ # Step-by-step guides
│ ├── features/ # Feature documentation
│ └── api/ # API references
├── examples/ # Configuration examples
│ ├── README.md
│ ├── example-vm-export.yaml
│ ├── example-vm-export.json
│ ├── example-batch-export.yaml
│ └── example-batch-export.json
├── logger/ # Logger package
├── man/ # Man pages
├── progress/ # Progress reporting
├── providers/ # Cloud provider implementations
│ └── vsphere/ # vSphere provider
├── systemd/ # systemd service files
├── web/ # Web UI (future)
├── .github/ # GitHub workflows
├── .git/ # Git repository
├── .gitignore # Git ignore rules
├── config.yaml.example # Example configuration
├── Dockerfile # Container build
├── go.mod # Go module definition
├── go.sum # Go dependency checksums
├── hypersdk.spec # RPM spec file
├── install.sh # Installation script
├── LICENSE # LGPL-3.0 license
├── Makefile # Build automation
├── README.md # Project overview
└── test_rpmbuild.sh # RPM build test script
Removed:
hyperctl (duplicate, kept in build/)hyperexport (duplicate, kept in build/)hypervisord (duplicate, kept in build/)coverage.out (test artifact)Result: Cleaner root with only essential project files.
Moved to docs/:
getting-started.md → docs/getting-started.mdproject-summary.md → docs/project-summary.mdtest-results.md → docs/test-results.mdUpdated References:
docs/00-INDEX.md - Updated all documentation linksREADME.md - Updated documentation sectionResult: All documentation now in docs/ directory for better organization.
Added:
coverage.out - Explicit coverage file ignoreResult: Better coverage of temporary build artifacts.
Should Contain:
Should NOT Contain:
build/ directory)docs/ directory).gitignore)docs/)Organization:
00-INDEX.md - Central documentation cataloggetting-started.md - New user guideproject-summary.md - System designtest-results.md - Test coverageuser-guides/ - Step-by-step tutorialsfeatures/ - Feature documentationapi/ - API referencesNaming Conventions:
01-, 02-, etc..md extension for all markdown filesbuild/)Contains:
hyperctl, hyperexport, hypervisord)Note: This directory is gitignored - do not commit contents.
examples/)Contains:
Guidelines:
demos/)Contains:
Guidelines:
docs/ subdirectory04-new-guide.md)docs/00-INDEX.md to include the new documentREADME.md if it’s important# Remove all build artifacts
make clean
# Or manually
rm -rf build/*
rm -f coverage.out
When moving documentation:
docs/00-INDEX.md linksREADME.md referencesgrep -r "old-file.md" .| File | Purpose | Location |
|---|---|---|
| README.md | Project overview | Root |
| LICENSE | License text | Root |
| Makefile | Build automation | Root |
| go.mod | Go dependencies | Root |
| config.yaml.example | Config template | Root |
| Document | Purpose | Location |
|---|---|---|
| 00-INDEX.md | Doc catalog | docs/ |
| getting-started.md | Quick start | docs/ |
| project-summary.md | Architecture | docs/ |
| test-results.md | Test coverage | docs/ |
| README.md | Docs overview | docs/ |
# Build all binaries (outputs to build/)
make build
# Build specific binary
make hyperctl
# Clean build artifacts
make clean
# Run tests
make test
# Run tests with coverage
make coverage
When contributing to HyperSDK:
make clean && make build worksThis documentation is licensed under LGPL-3.0-or-later, the same as the project.