Publish a package
The project folder holds telesphorepo.toml. One command publishes it: a Gradle or Maven build, an npm package, a Python package, a Rust crate, a .NET package or a Helm chart.
-
Install the Telesphorepo CLI once. Your server’s address is the
serverline oftelesphorepo.toml. See Install the CLI for the details.Terminal window curl -fsSL https://repo.example.com/install.sh | shOn Windows:
Terminal window irm https://repo.example.com/install.ps1 | iex -
In the project folder, run the publish command.
Terminal window telesphorepo publish -
The first time, the CLI prints a link and a code. Open the link, then click Approve device.
Done when the build tool says so: Gradle prints BUILD SUCCESSFUL, Maven prints BUILD SUCCESS, Cargo prints Published. For Python and .NET, the CLI prints Uploaded or Pushed for each file.
The CLI finds the project in the folder and runs its own tool for you. It prints the command before it runs it. It gives the tool a publish token for this one repository, and ends the token when the tool ends.
| Project | The CLI runs |
|---|---|
| Gradle | ./gradlew publish, or gradle publish without a wrapper |
| Maven | ./mvnw deploy, or mvn deploy without a wrapper |
npm (package.json) |
npm publish, pnpm publish, yarn npm publish or bun publish, by the lockfile |
Python (pyproject.toml, setup.py) |
poetry build, uv build or python -m build, then an upload of each file |
Rust (Cargo.toml) |
cargo publish |
.NET (.sln, .csproj, .fsproj) |
dotnet pack -c Release, then a push of each package |
Helm chart (Chart.yaml) |
helm package, then helm push |
For the steps of each format, see npm, Python, Rust and Cargo, .NET and NuGet, Docker and Helm, and Debian, raw and curl.
Project not set up yet? Set up a project.
If something goes wrong
Section titled “If something goes wrong”Find your problem, then do the fix
no telesphorepo.toml in this folder or above. The project is not set up, or the file is not committed. Set up a project, or pull the latest commit.
The browser page asks for two-step verification. Click Set up two-step verification. Add your phone app, then approve.
No browser page opens. Copy the address that the terminal shows. Open it yourself.
403 when you publish. You cannot publish to this repository yet. Ask your server admin for Publish.
409 when you publish. That version is already on the server. Raise the version. In a Maven repository, you can publish a -SNAPSHOT version again and again. npm answers 403 version ... already exists for the same reason.
The CLI says that a tool is not on the PATH. The CLI runs the tool of the project, such as pnpm, poetry, cargo or dotnet. Install it, then publish again.
The server refused the device. Run telesphorepo login with your server’s address, and approve again. An approval lasts 90 days, unless someone removes the device.
The CLI says that it needs a newer CLI. Answer Y to update, or run telesphorepo update. The CLI then runs the command again.
The CLI says that it needs a newer server. Ask your server admin to update the server.
You lost a laptop. Open Settings › Devices and revoke that laptop.
You want to approve the computer before you publish. Run telesphorepo login https://repo.example.com.
You want to see what the CLI will run. Run telesphorepo status in the project folder.
Gradle says that no project applies maven-publish. Add the maven-publish plugin to the build file of each project to publish.
One project must not publish. Add this line to the build file of that project:
tasks.withType<PublishToMavenRepository>().configureEach { enabled = false }You publish a Debian package or a plain file. See Debian, raw and curl.
You publish Python wheels or .NET packages that you built. Name the files: telesphorepo publish dist/*.whl or telesphorepo publish bin/Release/*.nupkg. The CLI then builds nothing.