greedytile 0.1.8

Random greedy pixel pattern generation algorithm
Documentation
# Release Checklist

This checklist guides you through releasing a new version of greedytile to both crates.io and GitHub.

## Prerequisites

- [ ] All changes are committed locally
- [ ] You have cargo and gh CLI tools installed
- [ ] You're logged into crates.io (`cargo login`)

## Release Steps

### 1. Update Version in Cargo.toml

```bash
# Edit Cargo.toml and change version from "0.1.7" to "0.1.8"
# Or use sed:
sed -i 's/version = "0.1.7"/version = "0.1.8"/' Cargo.toml
```

### 2. Run Tests and Build

```bash
cargo test
cargo build --release
```

### 3. Commit All Changes

```bash
git add .
git commit -m "Release v0.1.8"
```

### 4. Push to GitHub (IMPORTANT: Do this BEFORE creating the tag!)

```bash
git push origin master
```

### 5. Create and Push Git Tag (ONLY after the commit is pushed)

```bash
git tag v0.1.8
git push origin v0.1.8
```

### 6. Publish to Crates.io

```bash
cargo publish
```

### 7. Monitor GitHub Actions

```bash
# Check that the release workflow started
gh run list --workflow=release.yml --limit=1

# Or watch the progress
gh run watch
```

### 8. Verify Everything

- [ ] Check crates.io: https://crates.io/crates/greedytile
- [ ] Check GitHub releases: https://github.com/GeEom/greedytile/releases
- [ ] Verify binaries were uploaded for all platforms (Linux, Windows, macOS)

## Important Notes

- **Order matters**: Always push the commit BEFORE creating the tag. Creating a tag before pushing will cause the GitHub Actions workflow to fail
- **Tag format**: The tag must match the pattern `v*.*.*` for the workflow to trigger
- **No undos**: Once published to crates.io, you cannot undo or modify that version
- **Version sync**: The version in Cargo.toml should match the git tag (without the 'v' prefix)

## Troubleshooting

If the GitHub release workflow doesn't trigger:

1. Delete the remote tag: `git push origin :refs/tags/v0.1.7`
2. Push it again: `git push origin v0.1.7`
3. Check workflow status: `gh run list --workflow=release.yml --limit=1`