Skip to content

Point package metadata at this repository and fix stale links - #42

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

Maven Central and mvnrepository.com show a package's <url> as its home page and <organization> as its maintainer. The published poms gave the 51degrees.com home page for both, and none named this repository as the place the code lives. Separately, many links went to documentation pages that were renamed when the documentation was reorganised, and two example READMEs still sent readers to the archived example repositories.

Package metadata

  1. <url> is this repository. In 26 published poms the project <url> changes from the tagged 51degrees.com home page (for example https://51degrees.com?utm_source=maven&amp;utm_medium=package&amp;utm_campaign=51degrees-java&amp;utm_content=device-detection.cloud-pom.xml&amp;utm_term=url) to https://github.com/51Degrees/51degrees-java.
  2. Children inherit the repository address unchanged. The four parent poms, pipeline/pom.xml, device-detection/pom.xml, ip-intelligence/pom.xml and location/pom.xml, now set child.project.url.inherit.append.path="false" on <project>. Without it Maven adds a child's artifactId to the <url> it inherits, so geo-location, geo-location.cloud, geo-location.core, pipeline-aggregate and pipeline.web.packages, which set no <url> of their own, would get addresses such as https://github.com/51Degrees/51degrees-java/geo-location that GitHub answers with 404. The Maven model reference describes the attribute as "When children inherit from project's url, append path or not?", with a default of true, since Maven 3.6.1.
  3. <organization> names 51Degrees and links the page for the package's area. The Pipeline and Location parents had an <organization> pointing at the 51degrees.com home page. The Device Detection and IP Intelligence parents had none.
Pom Packages it covers <organization><url> before After
pipeline/pom.xml The Pipeline packages 51degrees.com home page https://51degrees.com/build-your-own
pipeline/pipeline.did/pom.xml pipeline.did inherited from pipeline https://51degrees.com/developers/51did
device-detection/pom.xml The Device Detection packages none https://51degrees.com/device-detection
ip-intelligence/pom.xml The IP Intelligence packages none https://51degrees.com/ip-intelligence
location/pom.xml The Location packages 51degrees.com home page https://51degrees.com/geolocation

Each <organization><url> carries utm_source=maven, utm_medium=package, utm_campaign=51degrees-java, the pom's artifactId as utm_content and utm_term=organization, separated by &amp; as the lint asks for XML files.

<scm> is not changed here, because #27 already points it at this repository.

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 7 links in 7 files
_concepts__configurator.html _services__configurator.html 4 links in 4 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 4 links in 4 files
_features__usage_sharing.html _pipeline_api__features__usage_sharing.html 1 link in 1 file
_info__resource_keys.html _services__cloud__resource_keys.html 10 links in 7 files
_info__tested_versions.html _product_summaries__tested_versions.html 4 links in 4 files

32 links in 19 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.

Pointers to the archived repositories

  • examples/device-detection/README.md told readers to clone and change device-detection-java and pipeline-java, then edit version properties by hand. Both repositories are archived. The section now says to run Maven from the root of this repository with the dev profile, which builds the examples against the packages here, as the root README describes. The dev profile is defined in examples/device-detection/pom.xml and examples/ip-intelligence/pom.xml, and the root pom builds both as modules.
  • examples/ip-intelligence/README.md said to run the examples and tests from the repository root, ip-intelligence-java-examples/. Its commands, such as mvn test -pl console, are relative to what is now examples/ip-intelligence, so the text and the three command comments now name that folder.

How it was checked

  • Every address this change adds was requested once and answered 200: https://github.com/51Degrees/51degrees-java, the five area pages above, and the eight current documentation pages in the table. The area and documentation pages are all in the 51degrees.com sitemap.
  • Every pom in the repository parses as XML after the change.
  • common-ci's scripts/utm-lint.ps1 reports no violations, both on rc and with this change.
  • Maven was not run, and no version number changes.

Other pull requests

In six poms the <url> line is directly below the <description> line that #27 rewrites, so whichever of the two merges second needs those six pairs of lines resolved by keeping both changes. The poms are device-detection/device-detection, device-detection.cloud, device-detection.hash.engine.on-premise, ip-intelligence/ip-intelligence, ip-intelligence.cloud and ip-intelligence.engine.on-premise. #37 edits some of the same READMEs and examples, but on other lines.

Left for later

  • pipeline/pipeline.developer-examples/pipeline.developer-examples.cloud-engine/.../Main.java calls https://51degrees.com/starsign/api/, which answers 404, so the custom cloud engine example cannot work as written. That needs a decision on what the example should call.
  • examples/device-detection/pom.xml and examples/ip-intelligence/pom.xml name https://oss.sonatype.org, which answers 404 since that service was retired. They are build settings rather than links, so they are not changed here.
  • The property descriptions in DeviceData.java and DeviceDataBase.java link http://dev.w3.org/csswg/css3-images/ (404) and http://es5.github.com/x15.12.html (no longer resolves). They are generated from the data file's property metadata, so they need fixing there.

The published poms gave the 51degrees.com home page as each package's
url. The url is now this repository, the parent poms stop Maven adding a
child's artifactId to the url it inherits, and organization links the
51degrees.com page for each package's area.

Links to documentation pages that were renamed now go to the page each
became, and the examples READMEs no longer send readers to the archived
example repositories.
@jwrosewell
jwrosewell marked this pull request as ready for review November 4, 2026 18:08
@jwrosewell
jwrosewell merged commit 086322c into rc Nov 4, 2026
2 checks passed
@jwrosewell
jwrosewell deleted the docs/package-metadata-and-links branch November 4, 2026 18:08
@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 #30:

- [#37](#37) Use the data repository for the examples, tests and CI
- [#41](#41) Say in AGENTS.md how to get the data, build and run the examples
- [#42](#42) Point package metadata at this repository and fix stale links
- [#39](#39) Describe the rc approach to releases in AGENTS.md
- [#40](#40) Check the callback URL before the JavaScript builder writes it
- [#44](#44) Close every FlowData, Pipeline and metadata collection, and fail the build when one is left open

## Release note

From [#44](#44):

- `ComponentMetaData.getProperties()`, `ProfileMetaData.getValues()`, `ProfileMetaData.getValues(String)` and `FiftyOneAspectPropertyMetaData.getValues()` now declare `CloseableIterable` rather than `Iterable`, which is what the on-premise engines have always returned. Close the collection, for example in a try-with-resources statement, so that it releases the engine's data set straight away. Source that assigns the result to an `Iterable` still compiles. Code compiled against the old declared types needs recompiling, and a class that implements one of these interfaces needs its method to declare `CloseableIterable`, so this is a small breaking change. The release stays a patch release.
- `PipelineBuilder.buildFromConfiguration` now closes the elements it has already built when building fails.
- The servlet filter and the Spring interceptor now close the request's FlowData on every path.

## 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 06:35 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