pypilisted
Install: claude install-skill apache/skywalking-ai-sessionizer
# PyPI
`apache-skywalking-asz-langchain` is the LangChain plugin under `plugins/langchain`. It is in the
voted source package, and PyPI is a convenience channel written after the vote, as the Homebrew tap
and the apt repository are. Nothing is uploaded for a candidate, and the version uploaded is the
released one, which `release.sh prepare` wrote into `plugins/langchain/pyproject.toml`.
Unlike the Homebrew and apt skills, this one opens no pull request. It uploads, and an upload
cannot be undone: PyPI never accepts a file name twice, even after the file is deleted.
Ask for the version when it is not given. Then:
## 0. Set up the upload
The project `apache-skywalking-asz-langchain` is on PyPI since 0.5.0, whose upload created it. Only
an owner or a maintainer of the project on PyPI can upload. A release manager who is neither asks
an owner to add them.
1. **A PyPI account with two-factor authentication.** PyPI refuses an upload from an account
without it.
2. **An API token.** A token scoped to a project can only be made once the project exists. So the
upload that creates a project needs a token scoped to the whole account, as 0.5.0 did. Every
later upload uses a token scoped to `apache-skywalking-asz-langchain`. After the first upload,
replace the account token with a project token, and delete the account token.
3. **The token in `SW_PYPI_TOKEN`,** exported from the shell profile, such as `~/.zprofile`,
before Claude Code starts. When the 0.5.0 token was a