Repository navigation
Point package metadata and package READMEs at the right pages - #35
Merged
Merged
Conversation
Each package's setup.py gave the 51degrees.com home page as its url, and two gave none. The url, which Python packaging has deprecated, becomes project_urls with Homepage, Documentation and Source links. The README each package shows on PyPI now tags its 51degrees.com links for PyPI and ends with a Find out more section. Links to documentation pages that were renamed go to the page each became.
jwrosewell
marked this pull request as ready for review
November 4, 2026 17:25
Merged
jwrosewell
added a commit
that referenced
this pull request
Nov 4, 2026
Releases what has collected on `rc` since #30: - [#26](#26) Update submodules - [#28](#28) Read the data files from the data repository in cxx/data - [#34](#34) Say in AGENTS.md how to get the data, build and run the examples - [#35](#35) Point package metadata and package READMEs at the right pages - [#32](#32) Ask the country property for its no value message in the location example - [#29](#29) Describe the rc approach to releases in AGENTS.md - [#31](#31) Check the callback URL before the JavaScript builder writes it - [#36](#36) Let FlowData and pipelines release native memory, and close them in the tests and examples ## Release note From [#36](#36): - `FlowData` and `Pipeline` now have `close()` and work in a `with` statement. Closing a FlowData releases the native results its element data holds. Closing a pipeline closes its flow elements, unless it was built with `auto_close_elements` set to false. - The on-premise Device Detection and IP Intelligence packages now require `fiftyone_pipeline_core>=4.5.42` and `fiftyone_pipeline_engines>=4.5.42`, the versions this release publishes with `close()`. ## Notes 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 #30, merged at 09:23 UTC on 4 November 2026.
jwrosewell
added a commit
that referenced
this pull request
Nov 4, 2026
…ud tests #35 moved the resource keys explainer link in the cloud request engine's messages from _info__resource_keys.html to _services__cloud__resource_keys.html. test_missing_property_service_element_not_found and test_missing_property_service_not_found_anywhere still looked for the old link, so they failed in every Test job of the publish.
This was referenced Nov 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
PyPI shows a package's links in its sidebar and renders the README that
setup.pypasses aslong_description. Every package gave the 51degrees.com home page as its only link,fiftyone_devicedetection_onpremiseandfiftyone_ipintelligence_onpremisegave none, and nothing pointed at this repository. The READMEs PyPI renders carried GitHub's UTM tags and had no "Find out more" section. Separately, many links went to documentation pages that were renamed when the documentation was reorganised.Package metadata
In all 18
setup.pyfiles,url=becomesproject_urlswith three entries.url=fills the core metadata fieldHome-page, which the core metadata specification marks "Deprecated since version 1.2: Per PEP 753, use Project-URL (multiple-use) instead." Keeping both would show two home pages. The labels are the well-known ones in the well-known project URLs specification,homepage,documentationandsource, so PyPI shows them as Homepage, Documentation and Source Code. The two on-premise packages, which had no URL, get the same three entries afterauthor_email.fiftyone_pipeline_core,_engines,_engines_fiftyone,_cloudrequestengine,_translationfiftyone_pipeline_didfiftyone_devicedetection,_shared,_cloud,_onpremise,_examplesfiftyone_ipintelligence,_shared,_cloud,_onpremise,_translation,_examplesfiftyone_locationThe two examples packages are not published, and are changed only so that every
setup.pyfollows the same pattern. Each 51degrees.com link carriesutm_source=pypi,utm_medium=package,utm_campaign=51degrees-python, the package name asutm_content, andhomepageordocumentationasutm_term.The README on each PyPI page
For the 16 published packages, the
readme.mdbeside eachsetup.pychanges in three ways.utm_source=pypi&utm_medium=package&utm_campaign=51degrees-python, with the package name asutm_content. Each link keeps itsutm_term. Before, they carriedutm_source=github&utm_medium=readmeand the file name asutm_content. The same files are shown on GitHub, so clicks there will now be counted under PyPI too.fiftyone_pipeline_cloudrequestenginealso links the cloud service documentation.https://51degrees.com/ip-intelligence-python/index.html. The site sends that address to the IP tester, and no Python IP Intelligence reference is published (https://51degrees.com/documentation/apis/ip-intelligence-python/index.htmlredirects to the documentation home page). The link now goes to the IP Intelligence documentation. The examples README andip-intelligence/readme.md, which PyPI does not show, get the same fix and keep their GitHub tags.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.
_concepts__configuration__builders__index.html_pipeline_api__concepts__configuration__builders__index.html_concepts__configurator.html_services__configurator.html_examples__device_detection__getting_started__console__cloud.html_device_detection__examples__getting_started__console__cloud.html_examples__device_detection__index.html_device_detection__examples__index.html_features__automatic_datafile_updates.html_pipeline_api__features__automatic_datafile_updates.html_features__usage_sharing.html_pipeline_api__features__usage_sharing.html_info__resource_keys.html_services__cloud__resource_keys.html_info__tested_versions.html_product_summaries__tested_versions.html43 links in 25 files
The two web getting started examples for Device Detection linked "JavaScriptBuilderElementBuilder" to a 4.3 reference page that no longer exists, for "details on available settings such as changing the
fodname". The link now goes to the JavascriptBuilderElement page of the current Python reference, which documents that setting asobj_name, and names that class.How it was checked
https://51degrees.com/img/logo.pngandhttps://51degrees.com/resources/property-dictionary, which refuse HEAD requests and answered a full request normally, and the links left as they are below.setup.pystill parses as Python.scripts/utm-lint.ps1reports no violations, both onrcand with this change.Left for later
_info__dependencies.html, which the current documentation has no page for, so those links still land on the documentation home page.fiftyone_ipintelligence_examples/.../onpremise/performance_console.pylinks_features__performance_options.html, which did not exist in the 4.4 or 4.3 documentation either.51ddatafiles.blob.core.windows.netinfiftyone_ipintelligence_onpremise/readme.mdand the on-premise web example answer 404. Read the data files from the data repository in cxx/data #28 already replaces both.