# Publishing & versioning

Publy implements the standard [pub hosted package repository spec](https://github.com/dart-lang/pub/blob/master/doc/repository-spec-v2.md) — `dart pub publish` and `dart pub get` work exactly as they do against pub.dev.

## Versioning

Each package version is immutable once published. Version numbers must follow [semantic versioning](https://semver.org) and must be strictly increasing per package.

## Duplicate versions are rejected

Publishing the same `name` + `version` twice is rejected with a 409 conflict — Publy never silently overwrites an existing archive. Bump the version in `pubspec.yaml` and publish again.

## Deleting a version or package

From a package's page, an owner can delete a single version (if more than one exists) or the entire package from the **Danger zone** in package settings. Deleting is permanent — anyone with that version pinned in their `pubspec.lock` will fail their next `dart pub get` or CI run.
