Mapframe and maplink tags can be assigned an explicit name (like "see"), and if one is lacking then they will be given an automatically-assigned name which is calculated from the hash of fully-parsed GeoJSON contents. We have experiences some weaknesses caused by this magic (TBD: link tasks).
Is it possible to assign a plain, autoincrement numeric ID instead?
Open questions:
- Explore changes needed to drop production of hash IDs:
- Where is back-compatibility required?
- Static image URL with old group IDs. groups are passed to the mapdata library and included in the mapdata API, so we can push compat back to the mapdata API for this case.
- mapdata API when requesting old group IDs
- Hash mapdata on-demand, whenever old group IDs are used?
- mapdata API when requesting all groups?
- Could the consumer silently know old group IDs?
- How often is the mapdata API called without group IDs?
- Around 0.01%–0.1% of requests have no mpdgroups parameter.
- Sample these requests—they mostly come from "node-fetch"
- what is this caller and does it assume hash IDs?
- mapdata API when requesting by titles and not revids?
- How often is the API called without revids?
- Around 2% of requests are by title.
- Almost all of these are coming from kartotherian
- What is still calling kartotherian with title?
- How often is the API called without revids?
- What to do about template changes which can cause renumbering of maps for a given revision?
- This could cause maps to appear in the wrong place in an article.
- Could be converted back into the existing bug (missing map) by using a more sophisticated ID?
- Random (version 4) UUID changes on every parse, which makes it unsuitable
- mapdata API should accept additional parameters which cause variation in parsed output, eg. isMobile. (can be follow-up work)
- Consider producer rollback.
- Compatiblity ahead of producer change. These are separate patches.
- Toggle producer with configuration.
If successful, consider how this can be applied to solve T328772: Design safe migration path for geoshape expansion.