Skip to content

feat(package)!: rename to @deepl/cli and fix stale DeepLcom metadata - #97

Merged
sjsyrek merged 1 commit into
mainfrom
feat/publish-surface
Jul 28, 2026
Merged

feat(package)!: rename to @deepl/cli and fix stale DeepLcom metadata#97
sjsyrek merged 1 commit into
mainfrom
feat/publish-surface

Conversation

@sjsyrek

@sjsyrek sjsyrek commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Makes the tarball publishable under its real name: renames the package to the scoped @deepl/cli, adds the publishConfig required for a public scoped publish, and repoints repository metadata at the DeepL GitHub org instead of the legacy DeepLcom redirect. Second of the three P1s gating the v2.0.0 publish (sync-8mqh.3).

Changes Made

  • package.json
    • "name": deepl-cli@deepl/cli
    • Added "publishConfig": { "access": "public" } — scoped packages default to restricted and npm publish fails without it
    • repository.url, bugs.url, homepage: github.com/DeepLcom/…github.com/DeepL/… (three sites, no DeepLcom strings remain)
  • package-lock.json — lockfile-only refresh propagating the rename
  • tests/unit/package-manifest.test.ts — new publish identity block pinning the scoped name, the deepl bin name, publishConfig.access: public, and the DeepL-org metadata URLs (written first, TDD)
  • CHANGELOG.md — breaking-change entry under Unreleased

Not in this PR (deliberately): the version bump to 2.0.0 / VERSION file update — that is the final release commit (sync-w79t). Install-instruction retargeting across docs is sync-8mqh.4.

Test Coverage

  • Manifest suite extended from 9 to 12 tests; full suite 236 suites / 5,536 tests pass on Node 24, lint and type-check clean.
  • npm pack --dry-run verified: local filename is deepl-cli-<version>.tgz — npm strips the scope in local filenames, this is expected and not a failed rename. The registry tarball URL follows https://registry.npmjs.org/@deepl/cli/-/cli-<version>.tgz (scope dropped after /-/), which is the URL form the Homebrew formula needs.

Backward Compatibility

Breaking: the install string becomes npm install -g @deepl/cli (nothing was ever published under the old name, so no installed user is affected).
Command unchanged: bin still maps deepl — not a single documented command changes.
Tarball contents unchanged: 327 files, same size, README + LICENSE, 0 .map files, 0 internal-name hits.

Size: Small ✓

Four-line manifest change plus its pinning tests; the risk is entirely in publish-time behavior, which the acceptance checks cover.

🤖 Generated with Claude Code

Rename the package to the scoped @deepl/cli for the first npm publish
(DeepL owns the @DeepL scope; the unscoped names are tombstoned or
third-party-held). Add publishConfig.access: "public" — scoped packages
default to restricted and the publish fails without it. Point
repository/bugs/homepage at github.com/DeepL/deepl-cli instead of
relying on the legacy DeepLcom org redirect.

The bin name is unchanged: the command is still deepl. The version bump
to 2.0.0 is deliberately deferred to the release commit.

BREAKING CHANGE: the install string is now `npm install -g @deepl/cli`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@sjsyrek
sjsyrek merged commit 6100edc into main Jul 28, 2026
5 checks passed
@sjsyrek
sjsyrek deleted the feat/publish-surface branch July 28, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant