# Changelog of Package Publisher Data — npm, PyPI & Docker Hub (`foxlabs/package-registry-publisher-data`) Actor

- **URL**: https://apify.com/foxlabs/package-registry-publisher-data/changelog.md
- **Full Actor documentation**: https://apify.com/foxlabs/package-registry-publisher-data.md

## Changelog

### 0.1.11 — 2026-09-25

- **`phone` and a fallback `email` from the organization's website** (`mailto:`/`tel:` links and JSON-LD only; an email only on the organization's own domain; maintainers' addresses first). New `emailSource`, `phoneSource`, `websiteSource`.
- **Optional `githubToken` input**: the GitHub organization the packages' repositories point to adds its public profile fields (`githubOrganization` … `githubCreatedAt`), `city`/`countryName` from a clear location, and a website when the packages give none. Without a token GitHub is not called.
- No pricing change.

### 0.1.10 — 2026-09-25

- **`website` is filled** with the organization's own site: the domain carrying its name that its package homepages point to most often (`stripe` → https://stripe.com, `vercel` → https://vercel.com), on every row of the query. Homepages on GitHub, a registry or a product domain give none — `hashicorp`'s packages point to GitHub, so its rows stay empty. 0% → 67% in the prefilled run.
- No pricing change.

### 0.1.9 — 2026-09-25

- **New: `email` and `maintainers`.** npm lists every maintainer with the address shown on the package page, and PyPI carries author and maintainer addresses; both are now returned (`maintainers`: `{name, email}` for each, `email`: the first). Bot and no-reply addresses — npm's trusted-publishing bot, GitHub's noreply relay — are skipped. In the prefilled run 74% of rows carry an address (every npm and PyPI row; Docker Hub publishes none).
- **PyPI attribution is stricter.** A project is credited to an organization only when the organization owns something on it — an address at its domain, a homepage on its domain, a repository under its account, or its name as author. Mentioning the name was enough before, which credited Hive Solutions' `stripe-api` to Stripe.
- No pricing change.

### 0.1.8 — 2026-09-25

- **`licenseName` is filled for npm and PyPI** (1% of rows before, 72% in the prefilled run; Docker Hub publishes no licence). npm's search result carries the licence; PyPI's is read from `license_expression`, a short `license`, or the `License ::` classifier, where `stripe` declares it.
- **`status` means something now.** It was `unknown` on every row; it is `inactive` when the registry marks a package deprecated, yanked, inactive or archived (Docker Hub `stripe/veneur`: *archived*), with the registry's own wording in `statusRaw`.
- New npm fields `downloadsLastMonth` and `dependentCount`, from the same search response — no extra requests.
- The company-register fields that cannot apply to a package are labelled as such in the dataset schema.
- README example replaced with a real row. No pricing change.

### 0.1.6 — 2026-09-09

- **Added the output schema link** to `.actor/actor.json`. The `output_schema.json` file was already in the source but was never referenced, so the platform treated the build as having no output schema and refused publication.
- No code, field-mapping or output-format changes. A reference run before this release produced 50 rows across 19 fields in 7s.
