Repository navigation
Package descriptions use the words people search for, and source links point at this repository - #27
Draft
jwrosewell wants to merge 6 commits into
Draft
jwrosewell wants to merge 6 commits into
jwrosewell wants to merge 6 commits into
Conversation
The pom description of device-detection, device-detection.cloud, device-detection.hash.engine.on-premise, ip-intelligence, ip-intelligence.cloud, and ip-intelligence.engine.on-premise now opens with the phrases developers search for (Device Detection, User-Agent parser, IP Intelligence, and IP geolocation). Each one then says what the package finds, whether it uses the 51Degrees cloud service or reads a data file on your server, and that it is built on the 51Degrees Pipeline API. The cloud packages say they need a Resource Key, because the cloud request engine will not start without one. The on-premise engines no longer say "with no external service calls", because both can download data file updates when automatic updates are on. Claims the text cannot support and the names of other companies' products are removed. Names and versions are unchanged.
The scm url, connection, and developerConnection in the pipeline, device-detection, ip-intelligence, and location parent poms pointed at pipeline-java, device-detection-java, ip-intelligence-java, and location-java. Those repositories are archived, so the source link on each package page was a dead end. They now point at 51degrees-java. The url keeps its https form and the connection its git:// form. The developerConnection named info@51degrees.com as its host rather than GitHub, so it now uses the https form of this repository.
The four parent poms now set child.scm.connection.inherit.append.path, child.scm.developerConnection.inherit.append.path, and child.scm.url.inherit.append.path to false on scm. Without them Maven adds each child's artifactId to the inherited links, so the page for a package such as com.51degrees:device-detection linked to a path that GitHub answers with 404. The attributes need Maven 3.6.1 or later, and every runner image in ci/options.json lists Maven 3.9.12 or later. The connection now uses https, because GitHub permanently turned off the unencrypted git:// protocol on March 15, 2022.
Each Device Detection description now ends "An alternative to UAParser, DeviceAtlas, and WURFL." and each IP Intelligence description ends "An alternative to MaxMind and IPinfo.", so that people who search for those products find these packages.
The sentence now reads "An alternative to UAParser.js, DeviceAtlas, and WURFL.", which names the JavaScript library and cannot be read as the 51Degrees UAParser fork.
jwrosewell
added a commit
that referenced
this pull request
Nov 3, 2026
) pipeline-java, device-detection-java, ip-intelligence-java, location-java, device-detection-java-examples and ip-intelligence-java-examples are archived, and the note at the top of each README names the folder of this repository that now holds its code. Four READMEs and 33 example source files still linked those repositories, so each of the 39 links now points at the same file, folder or README heading on main here. Only the URLs change. The History section of the root README, two Java string constants, the creator context demo page and its test, and the four parent poms that the open package text pull request (#27) changes keep their links.
This was referenced Nov 3, 2026
Merged
jwrosewell
added a commit
that referenced
this pull request
Nov 4, 2026
* README: what it does, how to install it and where it came from (#26) The README now opens with what the code does in the words developers search for, then the install command, try-it links and, where there are any, the repositories it was created from. It ends with a Find out more section, and the logo is a file in the repository. Everything else the README said is kept. * Check that only rc merges into the default branch (#29) * Point links to the archived Java repositories at their folders here (#31) pipeline-java, device-detection-java, ip-intelligence-java, location-java, device-detection-java-examples and ip-intelligence-java-examples are archived, and the note at the top of each README names the folder of this repository that now holds its code. Four READMEs and 33 example source files still linked those repositories, so each of the 39 links now points at the same file, folder or README heading on main here. Only the URLs change. The History section of the root README, two Java string constants, the creator context demo page and its test, and the four parent poms that the open package text pull request (#27) changes keep their links. * Drop the moved example folders and fix the native model example name (#33) The examples moved to examples/, which the device detection and IP Intelligence Doxyfiles already read, so the old folders go. Point the location IMAGE_PATH at the shared documentation images, and name the native model example console/NativeModelCloud.java in place of the doubled example command. * Link this repository from the native library message and the demo page (#32) When the native library fails to load, both on-premise engines suggest rebuilding the binary from the source code and instructions in device-detection-java or ip-intelligence-java, which are archived. The instructions for building the native binary are now in the README of device-detection/ and ip-intelligence/ here, beside the engine source, so the message links those folders. The creator context demo page linked pipeline-java as the source of the demo and of the code it runs on, and now links pipeline/ here. The test that checks the page ends with somewhere to go next asserts the new address. * Link the hardware profile engine to its specification page (#34) * Merged Pull Request '#36 update-packages/rc->rc: Update packages' Co-authored-by: Automation51D <51DCI@51Degrees.com> * Merged Pull Request '#35 update-submodules/rc->rc: Update submodules' Co-authored-by: Automation51D <51DCI@51Degrees.com> --------- Co-authored-by: Automation51D <60396166+Automation51D@users.noreply.github.com> Co-authored-by: Automation51D <51DCI@51Degrees.com>
This was referenced Nov 4, 2026
Merged
# Conflicts: # device-detection/device-detection.cloud/pom.xml # device-detection/device-detection.hash.engine.on-premise/pom.xml # device-detection/device-detection/pom.xml # ip-intelligence/ip-intelligence.cloud/pom.xml # ip-intelligence/ip-intelligence.engine.on-premise/pom.xml # ip-intelligence/ip-intelligence/pom.xml
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.
What changed
Package descriptions. The
<description>in six pom files now says what each package does, in the words developers type when they look for a package like it, and ends by naming the products it is an alternative to. The detail, and a before and after table for each artifact, follow below.Source links. The
<scm><url>,<connection>, and<developerConnection>in the four parent poms (pipeline/pom.xml,device-detection/pom.xml,ip-intelligence/pom.xml, andlocation/pom.xml) pointed at the earlier repositories pipeline-java, device-detection-java, ip-intelligence-java, and location-java. Those repositories are archived, so the source link on each package page was a dead end. Two changes fix that.https://github.com/51Degrees/51degrees-javafor<url>andscm:git:https://github.com/51Degrees/51degrees-java.gitfor<connection>and<developerConnection>. The<connection>used git://, which GitHub permanently turned off on March 15, 2022. The<developerConnection>namedinfo@51degrees.comas its host rather than GitHub.<scm>now setschild.scm.connection.inherit.append.path,child.scm.developerConnection.inherit.append.path, andchild.scm.url.inherit.append.pathto"false". Child packages inherit these links, and without the attributes Maven adds each child's artifactId to them. The Maven model reference gives the default for<scm><url>as "parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if scm's child.scm.url.inherit.append.path="false"", and says the same for the two connections. That is why the Maven Central page forcom.51degrees:device-detection4.5.128 links its source to https://github.com/51Degrees/device-detection-java/device-detection, which GitHub answers with 404. With the attributes, a child's links are the repository itself. The attributes need Maven 3.6.1 or later, and every runner image this repository's CI uses lists Maven 3.9.12 or later (see "How it was checked").The root pom's project
<url>already pointed here, and no other pom has an<scm>block. After the merge withrcthe module poms also carry that same repository as their<url>.Package descriptions
Maven has no keywords field, so the description is the only place for the words developers search with, and Maven Central, mvnrepository.com, and web search all index it.
Developers search for phrases such as "user agent parser" (which search engines complete with "java"), "device detection", "User-Agent Client Hints", "ip geolocation", and "ip intelligence". The old text did not use "User-Agent", "User-Agent Client Hints", or "geolocation" at all.
The new text follows one pattern.
PipelineConfigurationExceptionwithout one (CloudRequestEngineBuilder). The on-premise engines read a data file on your server. The two aggregate packages,device-detectionandip-intelligence, depend on both their cloud and on-premise artifacts, so their text says they work either way.Two things were dropped on purpose.
DataUpdateService(Device Detection, IP Intelligence) and can download new data files when automatic updates are on (setAutoUpdate). "On your server" says where detection runs without ruling that out.The
<name>elements are unchanged because they are already clear.Before and after
"Before" is the text in the 4.5.128 poms on Maven Central, which matches
main.com.51degrees:device-detectiondevice-detection/device-detection/pom.xml
com.51degrees:device-detection.clouddevice-detection/device-detection.cloud/pom.xml
com.51degrees:device-detection.hash.engine.on-premisedevice-detection/device-detection.hash.engine.on-premise/pom.xml
com.51degrees:ip-intelligenceip-intelligence/ip-intelligence/pom.xml
com.51degrees:ip-intelligence.cloudip-intelligence/ip-intelligence.cloud/pom.xml
com.51degrees:ip-intelligence.engine.on-premiseip-intelligence/ip-intelligence.engine.on-premise/pom.xml
How it was checked
maven-metadata.xml(for example https://repo1.maven.org/maven2/com/51degrees/device-detection/4.5.128/device-detection-4.5.128.pom). The text matchesmain.DeviceType,HardwareModel,BrowserName,PlatformName,IsCrawler, andCrawlerNameare inDeviceDataBase.Country,Region,Town,Latitude,Longitude,ConnectionType,RegisteredName, andRegisteredOwnerare inIPIntelligenceDataBase.OfflineProcessingpassessec-ch-uaheaders to the on-premise Hash engine, and both getting-started web examples cover User-Agent Client Hints (cloud, on-premise).gh repo viewthat pipeline-java, device-detection-java, ip-intelligence-java, and location-java are archived, and read the<scm>block of the 4.5.128 parent pomspipeline.device-detectionandpipeline.ip-intelligenceon Maven Central, which carry the old links.ci/callmvnon the GitHub-hosted runners named inci/options.jsonand do not install Maven, so the runner image decides. The runner image manifests list Maven 3.10.0 forubuntu-22.04andmacos-15, 3.9.16 forwindows-latestandmacos-15-intel, and 3.9.12 forubuntu-22.04-arm. The Maven wrapper in.mvn/wrapperpins 3.9.16.help:effective-pomondevice-detection/device-detectionwith Maven 3.9.16 through the wrapper, which reads the poms and builds nothing. The effective<scm>ofcom.51degrees:device-detectionishttps://github.com/51Degrees/51degrees-javafor<url>andscm:git:https://github.com/51Degrees/51degrees-java.gitfor both connections, with no artifactId added.xml.etree.ElementTree. All of them parse and return the new description or<scm>values and attributes.device-detection-java-examples, and a comment in the root pom, which are names rather than links.git diffshows one changed line in each of the six package poms. In each of the four parent poms it shows the<scm>opening tag, now three lines carrying the attributes, and the<url>,<connection>, and<developerConnection>lines. The files keep their LF line endings.com.51degrees:device-detectionpage is worth checking then.Merge with rc
The module poms on
rcnow carry a<url>ofhttps://github.com/51Degrees/51degrees-java(from "Point package metadata at this repository and fix stale links", #42), which conflicted with this branch on the line beside each<description>. The branch now mergesrc(merge commit d1d7f6d). In the six package poms it keeps the new<description>from this branch and the<url>fromrc, sogit diff origin/rc...HEADshows the same ten files as before and in each package pom only the<description>line. The<scm>blocks onrcstill named the archived repositories, so the<scm>change in the four parent poms is still needed.Release effect
If the per-package release plan in #63 merges, a change to only
<description>and<scm>releases nothing, so the new descriptions reach Maven Central with each package's next release for another reason.Competitor names
James Rosewell decided on 9 November 2026 to name the competitors as written (UAParser.js, DeviceAtlas and WURFL for Device Detection, MaxMind and IPinfo for IP Intelligence), in every language.
Not changed
<name>elements and every other line of the ten poms.device-detection.shared,ip-intelligence.shared,ip-intelligence.translation,pipeline.device-detection, andpipeline.ip-intelligence) were out of scope. Thedevice-detection.shareddescription was not rewritten and could be brought into line in a follow-up.