Bungie-net / api

Resources for the Bungie.net API
Other
1.21k stars 92 forks source link

Manifest version ID doesnt change when definitions change #1399

Closed joshhunt closed 3 years ago

joshhunt commented 3 years ago

On Tue 22nd Sep, 2020, the manifest/definitons were updated to version 87221.20.09.10.1506-2. The next Tue 29th the definitions were updated again to add the "Repeatable Bounties" DestinyItemCategoryDefinition entry and that category hash to the relevent bounty items, but the version remained the same.

This happened again this week with version 90666.21.01.08.1148-12 (ignoring the rollback) - on Tuesday there was an update with some new entries, and then on Thursday there was another update unclassifiying some entries.

If you rely on the manifest version to indicate when the manifest changes - which seems reasonable - releasing new content under the same version number causes clients to not download the new definitions, which is can be especially problematic when those updates unclassify "hot" content.

jshaffstall-bng commented 3 years ago

Yeah this is a tricky one. The 'Destiny 2 Content Version: 90666.21.01.08.1148-12' you can see on https://www.bungie.net/version is actually the game source content version, and not necessarily an indicator that the underlying Bnet content should be the same. It just happens to be that the content usually only changes when the game version changes as well.

But like you said, the Bnet content could change for things like new properties and un-redacted items, while still using the same D2 content version. However, I agree that it would be best to have a canonical way of knowing when the Bnet D2 content changes.

I've filed TFS 971817 to address this, but we don't have a timeline for any changes.

Achronos-BNG commented 3 years ago

The format of the content version has changed to also include the build number of the importer toolchain. This will ensure that the content version changes every time the underlying content changes even if the source game content hasn't. This will be reflected in the manifest as well as the filenames of the json and sqllite dbs.

joshhunt commented 3 years ago

this is incredible - thanks for this! I should have filled the issue years earlier 😅