# software.release.channel

> Published by [release.software](https://lexicon.garden/identity/did:plc:zimrxnxvvkwixvtkazpx3zfx)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:zimrxnxvvkwixvtkazpx3zfx/software.release.channel)
- [Documentation](https://lexicon.garden/lexicon/did:plc:zimrxnxvvkwixvtkazpx3zfx/software.release.channel/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:zimrxnxvvkwixvtkazpx3zfx/software.release.channel/examples)

## Definitions

### `software.release.channel`

**Type**: `record`

A mutable named pointer to a version. Resolve the manifest through the referenced version. The record key is '{projectName}:{channelName}', making uniqueness per (project, name) mechanical and enabling AppView-free resolution. Channel names follow the project-name grammar (lowercase alphanumerics, interior hyphens, no dots). The project name cannot contain colons, but the rkey must contain exactly one colon. Valid only when same-DID with the referenced project and version.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | Yes | Channel name (e.g. latest, next). Follows the project-name grammar. MUST match the record rkey after the colon. |
| `project` | `string` (at-uri) | Yes | The software.release.project this pointer belongs to. MUST be same-DID. |
| `version` | `ref` → `com.atproto.repo.strongRef#main` | Yes | Strong reference to the software.release.version this channel currently points to. MUST belong to the same project. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A mutable named pointer to a version. Resolve the manifest through the referenced version. The record key is '{projectName}:{channelName}', making uniqueness per (project, name) mechanical and enabling AppView-free resolution. Channel names follow the project-name grammar (lowercase alphanumerics, interior hyphens, no dots). The project name cannot contain colons, but the rkey must contain exactly one colon. Valid only when same-DID with the referenced project and version.",
      "key": "any",
      "record": {
        "properties": {
          "name": {
            "description": "Channel name (e.g. latest, next). Follows the project-name grammar. MUST match the record rkey after the colon.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "project": {
            "description": "The software.release.project this pointer belongs to. MUST be same-DID.",
            "format": "at-uri",
            "type": "string"
          },
          "version": {
            "description": "Strong reference to the software.release.version this channel currently points to. MUST belong to the same project.",
            "ref": "com.atproto.repo.strongRef#main",
            "type": "ref"
          }
        },
        "required": [
          "project",
          "name",
          "version"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "software.release.channel",
  "lexicon": 1
}
```
