Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
24

11 changes: 11 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 100,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "lf"
}

81 changes: 76 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,49 @@ npm run test:ui
- Update **type definitions** in `src/types/` as needed
- Include **code examples** for new features

### Generating API Documentation

The API documentation is generated from JSDoc comments using [TypeDoc](https://typedoc.org/):

```bash
# Generate documentation
npm run docs

# Watch mode - regenerate on file changes
npm run docs:watch
```

Documentation is output to `docs/api/`. Open `docs/api/index.html` in your browser to view.

### JSDoc Guidelines

All public APIs should have JSDoc comments with:

- **Description** - Brief description of what the function/class does
- **@param** - Description of each parameter
- **@returns** - Description of the return value
- **@throws** - Description of errors that may be thrown
- **@example** - Usage examples (optional but recommended)

Example:

```typescript
/**
* Load files from URLs with progress tracking
*
* @param urls - Array of file URLs to load
* @param onProgress - Optional callback for progress updates
* @returns Promise that resolves to array of loaded files
* @throws {Error} If any file fails to load
*/
export async function loadFilesFromUrls(
urls: string[],
onProgress?: (progress: LoadProgress) => void
): Promise<InitFileEntry[]> {
// Implementation...
}
```

## Reporting Issues

### Bug Reports
Expand Down Expand Up @@ -269,12 +312,40 @@ git commit -m "docs: update installation guide"

Releases are **fully automated** using [release-please](https://github.com/googleapis/release-please):

1. **Merge PRs to main** with conventional commits
2. **release-please bot** creates a Release PR automatically
3. **Review and merge** the Release PR
4. **GitHub release** is created automatically with artifacts
### How It Works

1. **Write code** with conventional commit messages
2. **Merge PR to main** - that's it!
3. **release-please bot** automatically:
- Creates/updates a "Release PR" with version bump and changelog
- When you merge the Release PR, it creates a GitHub release
- Builds and uploads artifacts automatically

### Creating a Release

After merging PRs to main, release-please automatically creates a **Release PR**:

1. **Check for Release PR** - Look for a PR titled "chore(main): release X.Y.Z"
2. **Review the Release PR** - Check version number and auto-generated changelog
3. **Merge the Release PR** - This triggers the GitHub release creation

### Versioning

DosKit follows [Semantic Versioning](https://semver.org/):

- **MAJOR** (X.0.0): Breaking changes, incompatible API changes
- **MINOR** (0.X.0): New features, backwards compatible
- **PATCH** (0.0.X): Bug fixes, backwards compatible

### Manual Release (Emergency Only)

If you need to create a release manually:

See [docs/RELEASE-PROCESS.md](docs/RELEASE-PROCESS.md) for detailed information.
1. Update version in `package.json`
2. Update `CHANGELOG.md` manually
3. Commit: `git commit -m "chore: release X.Y.Z"`
4. Tag: `git tag vX.Y.Z`
5. Push: `git push origin main --tags`

## Questions?

Expand Down
10 changes: 5 additions & 5 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> **Mission**: Preserve and celebrate vintage DOS demoscene productions, audio applications, and legacy software through modern web technology.

**Current Status**: Foundation Complete (v0.1.0)
**Current Status**: Foundation Complete (v1.0.1)
**Focus Areas**: Demoscene Productions • Music Trackers • Legacy Productivity Software
**Explicitly Excluded**: Gaming applications (this is not a DOS game emulator)

Expand Down Expand Up @@ -126,10 +126,10 @@ interface SearchFilters {
query: string;
yearRange?: [number, number];
parties?: string[];
categories?: ("demo" | "tracker" | "utility")[];
categories?: ('demo' | 'tracker' | 'utility')[];
tags?: string[];
sortBy: "name" | "year" | "popularity" | "dateAdded";
sortOrder: "asc" | "desc";
sortBy: 'name' | 'year' | 'popularity' | 'dateAdded';
sortOrder: 'asc' | 'desc';
}
```

Expand Down Expand Up @@ -387,7 +387,7 @@ interface AudioRecorder {
stop(): Blob;
isRecording(): boolean;
getWaveform(): Float32Array;
export(format: "wav" | "mp3"): Blob;
export(format: 'wav' | 'mp3'): Blob;
}
```

Expand Down
164 changes: 0 additions & 164 deletions docs/API-DOCUMENTATION.md

This file was deleted.

Loading