Ctrl K
ComunidadGuías…

RELEASE_NOTES.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Release Notes Guide

This document outlines the best practices for creating release notes in the Yundera AppStore.

## Tag Naming Convention

We use **app-specific tags** to track updates for individual applications.

### Format

```
{app-name}-v{version}
```

### Examples

| App | Upstream Version | Tag |
|-----|------------------|-----|
| Immich | 2.3.1 | `immich-v2.3.1` |
| Nextcloud | 28.0.1 | `nextcloud-v28.0.1` |
| Seafile | 11.0.5 | `seafile-v11.0.5` |
| Mastodon | 4.2.0 | `mastodon-v4.2.0` |

### Rules

1. **Lowercase app name**: Use lowercase for the app name (e.g., `immich`, not `Immich`)
2. **Match upstream version**: Use the same version number as the upstream project
3. **Semantic versioning**: Follow the upstream's versioning scheme (usually semver)
4. **No prefix duplication**: Use `immich-v2.3.1`, not `immich-version-2.3.1`

## Release Note Structure

Each release note should follow this template:

```markdown
## {App Name} v{Version}

**{Brief summary of the update}**

### New Features
- Feature 1 description
- Feature 2 description

### Updated Components
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| component-1 | x.x.x | y.y.y |
| component-2 | x.x.x | y.y.y |

### Breaking Changes
- Description of any breaking changes (if applicable)

### Migration Notes
- Step-by-step migration instructions (if needed)
- Configuration changes required

### Links
- [Official Release Notes](https://...)
- [Documentation](https://...)
```

### Section Guidelines

| Section | Required | Description |
|---------|----------|-------------|
| Title | Yes | App name and version |
| Summary | Yes | One-line description of the update |
| New Features | Yes | List of new features (use "Bug fixes" if patch release) |
| Updated Components | Yes | Table of updated Docker images/dependencies |
| Breaking Changes | No | Only if there are breaking changes |
| Migration Notes | No | Only if special steps are required |
| Links | Recommended | Links to upstream docs and release notes |

## Creating Releases via Command Line

### Prerequisites

1. Install GitHub CLI:
   ```bash
   # Ubuntu/Debian
   curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
   sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
   echo "deb [arch=amd64 signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
   sudo apt update && sudo apt install gh -y

   # macOS
   brew install gh
   ```

2. Authenticate with GitHub:
   ```bash
   gh auth login
   ```

### Creating a Release

#### Basic Command

```bash
gh release create {tag} --title "{Title}" --notes "{Release notes}"
```

#### Using a HEREDOC for Multi-line Notes

```bash
gh release create immich-v2.3.1 --title "Immich v2.3.1" --notes "$(cat <<'EOF'
## Immich v2.3.1

**Major upgrade from v1.143.1 to v2.3.1**

### New Features
- OCR (Optical Character Recognition) - Search for text within photos
- Improved web performance via Rust/WebAssembly

### Updated Components
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| immich-server | v1.143.1 | v2.3.1 |
| immich-machine-learning | v1.143.1 | v2.3.1 |

### Migration Notes
- No special migration steps required
- To enable OCR for existing photos, run the OCR job in Administration > Job Settings

### Links
- [Official Release Notes](https://github.com/immich-app/immich/releases/tag/v2.3.1)
EOF
)"
```

#### Using a Release Notes File

```bash
# Create release notes file
cat > /tmp/release-notes.md << 'EOF'
## App Name vX.Y.Z

Release notes content here...
EOF

# Create release from file
gh release create app-vX.Y.Z --title "App Name vX.Y.Z" --notes-file /tmp/release-notes.md
```

### Additional Options

```bash
# Create a draft release (not published immediately)
gh release create tag --draft --title "Title" --notes "Notes"

# Create a pre-release
gh release create tag --prerelease --title "Title" --notes "Notes"

# Target a specific commit (instead of latest)
gh release create tag --target abc1234 --title "Title" --notes "Notes"

# Upload assets with the release
gh release create tag --title "Title" --notes "Notes" ./file1.zip ./file2.tar.gz
```

### Viewing Existing Releases

```bash
# List all releases
gh release list

# View a specific release
gh release view immich-v2.3.1

# Download release assets
gh release download immich-v2.3.1
```

### Editing an Existing Release

```bash
# Edit release notes
gh release edit immich-v2.3.1 --notes "Updated notes"

# Edit title
gh release edit immich-v2.3.1 --title "New Title"

# Edit from file
gh release edit immich-v2.3.1 --notes-file /tmp/updated-notes.md
```

### Deleting a Release

```bash
# Delete release (keeps the tag)
gh release delete immich-v2.3.1

# Delete release and its tag
gh release delete immich-v2.3.1 --yes --cleanup-tag
```

## Workflow Summary

1. **Make changes** to the app's `docker-compose.yml`
2. **Commit and push** the changes to main branch
3. **Create release** with appropriate tag and notes:
   ```bash
   gh release create {app}-v{version} --title "{App} v{version}" --notes "$(cat <<'EOF'
   Release notes here...
   EOF
   )"
   ```
4. **Verify** the release on GitHub: `https://github.com/Yundera/AppStore/releases`

## Example: Full Release Workflow

```bash
# 1. Navigate to repository
cd /path/to/YunderaAppStore

# 2. Make changes to app config
# (edit Apps/Immich/docker-compose.yml)

# 3. Commit changes
git add Apps/Immich/docker-compose.yml
git commit -m "update immich to version 2.3.1"
git push origin main

# 4. Create release
gh release create immich-v2.3.1 --title "Immich v2.3.1" --notes "$(cat <<'EOF'
## Immich v2.3.1

**Major upgrade to stable v2.x series**

### New Features
- OCR support for text search in photos
- Improved performance

### Updated Components
| Component | Old | New |
|-----------|-----|-----|
| immich-server | v1.143.1 | v2.3.1 |

### Links
- [Release Notes](https://github.com/immich-app/immich/releases/tag/v2.3.1)
EOF
)"

# 5. Verify
gh release view immich-v2.3.1
```