Skip to content

Give each package a homepage and fix the links its README carries - #29

Merged
jwrosewell merged 1 commit into
rcfrom
docs/package-metadata-and-links
Nov 4, 2026
Merged

jwrosewell merged 1 commit into
rcfrom
docs/package-metadata-and-links

Conversation

@jwrosewell

Copy link
Copy Markdown
Contributor

Why

An npm package page shows the package's homepage, repository and README. The published manifests had no homepage, so npm showed the repository README as the home page. The README npm shows for each package carried GitHub's UTM tags, had no "Find out more" section, and linked to other packages and examples with root-relative paths such as /fiftyone.devicedetection.cloud/examples/cloud/gettingstarted-console. Those paths come from the earlier per-package repositories and do not exist in this repository, where the same folders are under device-detection/, ip-intelligence/ and pipeline/. Separately, many links went to documentation pages that were renamed when the documentation was reorganised.

Package metadata

Each published package's package.json and remote_package.json gets a homepage, placed before bugs. ci/build-package.ps1 moves remote_package.json over package.json before it packs, so remote_package.json holds what npm shows, and the three packages without one publish package.json.

Packages homepage
fiftyone.pipeline.core, .engines, .engines.fiftyone, .cloudrequestengine, .translation https://51degrees.com/build-your-own
fiftyone.pipeline.did https://51degrees.com/developers/51did
fiftyone.devicedetection, .cloud, .onpremise, .shared https://51degrees.com/device-detection
fiftyone.ipintelligence, .cloud, .onpremise, .shared, .translation https://51degrees.com/ip-intelligence
fiftyone.geolocation https://51degrees.com/geolocation

Each homepage carries utm_source=npm, utm_medium=package, utm_campaign=51degrees-node, the package name as utm_content and utm_term=homepage. repository already names this repository with each package's directory, and bugs already points at this repository's issues, so neither changes. No other field changes.

The README on each npm page

The 16 published packages' READMEs change in four ways.

  1. Every 51degrees.com link carries npm's tags, utm_source=npm&utm_medium=package&utm_campaign=51degrees-node, with the package name as utm_content. Each link keeps its utm_term. Before, they carried utm_source=github&utm_medium=readme and the file name as utm_content. The same files are shown on GitHub, so clicks there will now be counted under npm too.
  2. Each root-relative link becomes an absolute link to the same path in this repository, for example /fiftyone.devicedetection.cloud/examples/cloud/gettingstarted-console becomes https://github.com/51Degrees/51degrees-node/tree/main/device-detection/fiftyone.devicedetection.cloud/examples/cloud/gettingstarted-console. An absolute link works on npmjs.com and on GitHub alike. A link that ended in #readme.md now points at the package's folder, which shows its README.
  3. Two addresses move. https://51degrees.com/Licencing-Pricing/On-Premise in fiftyone.devicedetection.onpremise becomes https://51degrees.com/pricing, the page it redirected to. https://51degrees.com/location-node/4.2/index.html in location/README.md landed on the documentation home page and becomes the Location reference.
  4. The README ends with a "Find out more" section. It links the area's page, the area's documentation, and where it fits the getting started guide and the pricing page, then this repository. The on-premise packages also list https://github.com/51Degrees/51degrees-cxx, where their engines' C code lives. fiftyone.pipeline.cloudrequestengine also links the cloud service documentation.
Area Find out more links
Pipeline Build your own, Pipeline API documentation, Pipeline API examples
51Did 51Did, 51Did documentation, 51Did inspector
Device Detection Device Detection, documentation, getting started, pricing
IP Intelligence IP Intelligence, documentation, getting started, pricing
Location Geolocation, reverse geocoding documentation, getting started, pricing

The product READMEs

device-detection/readme.md, ip-intelligence/readme.md, pipeline/readme.md, device-detection/run_examples.md and ip-intelligence/run_examples.md are not published to npm. Their root-relative links become relative to the file's own folder, for example /fiftyone.devicedetection.cloud/examples/cloud in device-detection/readme.md becomes fiftyone.devicedetection.cloud/examples/cloud, and /readme.md in run_examples.md becomes readme.md. Their UTM tags do not change.

Documentation links

The renamed pages now redirect to the documentation home page, so a reader never reached the page a link was for. Each old page below was found in the 4.4 documentation, which keeps the old names, and matched to the current page with the same title. Where the title changed, as for the Configurator page, the two pages open with the same text. The UTM parameters of each link are unchanged.

Old page Current page Links
_concepts__configuration__builders__index.html _pipeline_api__concepts__configuration__builders__index.html 14 links in 14 files
_concepts__configurator.html _services__configurator.html 2 links in 2 files
_examples__device_detection__getting_started__console__cloud.html _device_detection__examples__getting_started__console__cloud.html 1 link in 1 file
_examples__device_detection__index.html _device_detection__examples__index.html 1 link in 1 file
_features__automatic_datafile_updates.html _pipeline_api__features__automatic_datafile_updates.html 10 links in 10 files
_features__usage_sharing.html _pipeline_api__features__usage_sharing.html 12 links in 10 files
_info__resource_keys.html _services__cloud__resource_keys.html 16 links in 15 files
_info__tested_versions.html _product_summaries__tested_versions.html 11 links in 5 files

67 links in 30 files

Two links to _info__dependencies.html, in device-detection/readme.md and ip-intelligence/readme.md, are left as they are, because the current documentation has no page that replaces it.

How it was checked

  • Every root-relative link in the changed Markdown files was resolved against this repository's tree before and after the change. Before, the paths did not exist. After, every relative and every absolute link to this repository names a file or folder that exists.
  • Every address this change adds or retags was requested once and answered 200.
  • Every page in the Find out more sections and in homepage is in the 51degrees.com sitemap.
  • Every changed manifest still parses as JSON.
  • common-ci's scripts/utm-lint.ps1 reports no violations, both on rc and with this change.
  • No package was built and no version number changes.

Other pull requests

#15 changes description and keywords in the same manifests, near the top of each file, and homepage goes in further down beside bugs. A three-way merge of the 12 files both change finds no conflict. #22 changes some of the same READMEs. Two lines that #22 rewrites, or that sit directly next to a line it rewrites, are left as they are, so that neither pull request conflicts with the other. With those two lines left as they are, a three-way merge with git merge-file of each of the 17 files both pull requests change finds no conflict.

The published manifests had no homepage, so npm fell back to the
repository README. Each now links the 51degrees.com page for its area.

The README npm shows for each package tags its 51degrees.com links for
npm, ends with a Find out more section, and links to this repository
where it used root-relative paths from the earlier repositories, which
lead nowhere here. The product READMEs get the same path fixes as
relative links, and links to renamed documentation pages go to the page
each became.
@jwrosewell
jwrosewell marked this pull request as ready for review November 4, 2026 17:24
@jwrosewell
jwrosewell merged commit 8b641d2 into rc Nov 4, 2026
2 checks passed
@jwrosewell
jwrosewell deleted the docs/package-metadata-and-links branch November 4, 2026 17:24
@jwrosewell jwrosewell mentioned this pull request Nov 4, 2026
jwrosewell added a commit that referenced this pull request Nov 4, 2026
Releases what has collected on `rc` since #24:

- [#23](#23) Describe the rc approach to releases in AGENTS.md
- [#22](#22) Move the examples, tests and CI to the cxx data submodule
- [#26](#26) Say in AGENTS.md how to get the data, build and run the examples
- [#29](#29) Give each package a homepage and fix the links its README carries
- [#25](#25) Check the callback URL before the JavaScript builder writes it
- [#28](#28) Stop the data file watcher and update timer keeping pipelines alive

The cxx submodule moves from [4.5.102](https://github.com/51Degrees/51degrees-cxx/releases/tag/4.5.102) to [4.5.103](https://github.com/51Degrees/51degrees-cxx/releases/tag/4.5.103). That release adds the [data](https://github.com/51Degrees/data) repository at `cxx/data` and changes nothing under `src/`.

No commit asks for a major or minor version change, so the publish moves only patch numbers.

The last release into `main` was #24, merged at 09:24 UTC on 4 November 2026.
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