# `package.version_unneeded`

Name written through a package held in one version carries a version.

Area 11, [External services](../topics/external-services.md); not declinable; the next step is usually the agent's.

With one version held, a name never carries it, so code reads the same
before an upgrade and after it; the edit drops the version:




```jadpo
use shared/providers/postcodes

/// Keeps a customer's postcode as it is.
action keep_postcode(postcode: Postcodes.v3.UkPostcode) -> Postcodes.UkPostcode {
    return postcode
}
```

```text
error: `Postcodes` is held in one version, so its names don't carry it
 --> domains/addresses/actions/keep_postcode.jadpo:4:41
  |
4 | action keep_postcode(postcode: Postcodes.v3.UkPostcode) -> Postcodes.UkPostcode {
  |                                         ^^^ not needed
  reason: A name carries its package's version only while two versions sit side by side, to say which one it means; with one version of `Postcodes` held, `Postcodes.UkPostcode` is the one way to write it.
  next: Write `Postcodes.UkPostcode` (agent)
  rule: package.version_unneeded
  help: https://jadpo.dev/docs/errors/package.version_unneeded

check failed: 1 error, 4 files
```
