Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support multiple 'interface' values in .toc files #430

Merged
merged 12 commits into from
Jul 18, 2024

Conversation

torkus
Copy link
Contributor

@torkus torkus commented May 10, 2024

  • investigate all usages of :interface-version
  • make :interface-version-list required in specs
  • revisit usage of :game-track in source updates and changes of :-toc/game-track to :-toc/game-track-list
  • revisit usage of interface-value or game tracks in nfo data
  • revisit usage of interface-value or game tracks in import/export
  • remove any curseforge and tukui test fixtures no longer being used
  • review
  • update CHANGELOG

Torkus added 3 commits May 10, 2024 21:34
 it contains all possible interface versions parsed from the 'interface' field.
 the current 'interface-version' field is now the first value parsed from this list.
  new private fn is less strict, interpreting and extrapolating values, warning on bad values etc.
  new fn does validation and discards data if it's invalid.
  this was done so we don't have to repeat parsing steps elsewhere.
toc.clj, the templated '## # interface' value is now considered and included in the interface-version-list.
github-api.clj, removed duplicated parsing of :interface values in favour of that in toc.clj
github-api.clj, order of extracted gametrack values is now deterministic.
src/strongbox/toc.clj Outdated Show resolved Hide resolved
 - '110000' was returning '1.0.000' instead of '11.0.0'
toc.clj, fixed bug where data would fail to valid and be discarded.
 - it was possible for multiple distinct interface-version values to become duplicate game tracks values (like [:retail :retail])
jfx.clj, the 'WoW' (interface version) column now supports multiple values.
 - default column width values increased to accommodate them.
src/strongbox/catalogue.clj Outdated Show resolved Hide resolved
src/strongbox/jfx.clj Outdated Show resolved Hide resolved
src/strongbox/specs.clj Outdated Show resolved Hide resolved
src/strongbox/specs.clj Outdated Show resolved Hide resolved
src/strongbox/toc.clj Outdated Show resolved Hide resolved
src/strongbox/toc.clj Outdated Show resolved Hide resolved
src/strongbox/toc.clj Outdated Show resolved Hide resolved
src/strongbox/toc.clj Outdated Show resolved Hide resolved
src/strongbox/toc.clj Outdated Show resolved Hide resolved
src/strongbox/utils.clj Outdated Show resolved Hide resolved
test/strongbox/utils_test.clj Outdated Show resolved Hide resolved
Torkus added 2 commits July 14, 2024 09:27
core.clj, fixed a typo in the import/export logic and the test helper that was using :toc/game-track instead of :-toc/game-track
toc.clj, replaced :-toc/game-track with :-toc/game-track-list
addon.clj, a single set of toc data can now belong to many game tracks
 - this means the first instance of 'classic' toc data (for example) will be used even if multiple toc files support classic. crazy.
tukui, curseforge, removed their 'expand-summary' implementations.
jfx.clj, addon data detail pane now accommodates many interface values.
toc.clj, removed a warning when the presence of a game track in the filename doesn't match the game tracks parsed from the data.
- the user can't really do anything about it, I had at least one false-positive and with many game tracks to now check it seems needlessly expensive.
Torkus added 2 commits July 18, 2024 10:40
curseforge, tukui, removes test fixtures referenced by removed code.
Torkus added 2 commits July 18, 2024 11:13
 these appear to have been introduced for curseforge and only used there.
@torkus torkus marked this pull request as ready for review July 18, 2024 02:06
src/strongbox/jfx.clj Outdated Show resolved Hide resolved
src/strongbox/tukui_api.clj Outdated Show resolved Hide resolved
test/strongbox/jfx_test.clj Outdated Show resolved Hide resolved
@torkus torkus merged commit f4e13f2 into develop Jul 18, 2024
1 check passed
@torkus torkus deleted the support-multiple-interface-values branch July 18, 2024 03:17
torkus added a commit that referenced this pull request Jul 19, 2024
* support multiple 'interface' values in .toc files (#430)
* toc.clj, introduces 'interface-version-list' field.
 it contains all possible interface versions parsed from the 'interface' field.
* toc.clj, split 'parse-addon-toc' into '-parse-addon-toc'.
  new private fn is less strict, interpreting and extrapolating values, warning on bad values etc.
  new fn does validation and discards data if it's invalid.
  this was done so we don't have to repeat parsing steps elsewhere.
* toc.clj, the templated '## # interface' value is now considered and included in the interface-version-list.
* github-api.clj, removed duplicated parsing of :interface values in favour of that in toc.clj
* github-api.clj, order of extracted gametrack values is now deterministic.
* utils, fixed bug in interface-version-to-game-version
 '110000' was returning '1.0.000' instead of '11.0.0'
* toc.clj, fixed bug where data would fail to validate and be discarded.
 it was possible for multiple distinct interface-version values to become duplicate game tracks values (like [:retail :retail])
* jfx.clj, the 'WoW' (interface version) column now supports multiple values.
 default column width values increased to accommodate them.
* specs.clj, replaces toc :interface-version with :interface-version-list
* core.clj, fixed a typo in the import/export logic and the test helper that was using :toc/game-track instead of :-toc/game-track
* toc.clj, replaced :-toc/game-track with :-toc/game-track-list
* addon.clj, a single set of toc data can now belong to many game tracks
 this means the first instance of 'classic' toc data (for example) will be used even if multiple toc files support classic. crazy.
* tukui, curseforge, removed their 'expand-summary' implementations as they were using :interface-version
* jfx.clj, addon data detail pane now accommodates many interface values.
* toc.clj, removed a warning when the presence of a game track in the filename doesn't match the game tracks parsed from the data.
 the user can't really do anything about it, I had at least one false-positive and with many game tracks to now check it seems needlessly expensive.
* curseforge, tukui, removes test fixtures referenced by removed code.
* catalogue.clj, fixed possibilty of multiple game tracks in toc2summary
* specs, source-updates, removes 'release-label' and 'interface-version'.
 these appear to have been introduced for curseforge and only used there.
* deps bump
* constants, adds entries for Dragonflight patch releases.
* constants, adds entry for The War Within.
* replaces references to old wiki with new wiki.
* linted
torkus added a commit that referenced this pull request Sep 7, 2024
* CHANGELOG, TODO, project.clj
* README, updated comrades
* support multiple 'interface' values in .toc files (#430)
* toc.clj, introduces 'interface-version-list' field.
  it contains all possible interface versions parsed from the 'interface' field.
* toc.clj, split 'parse-addon-toc' into '-parse-addon-toc'.
  new private fn is less strict, interpreting and extrapolating values, warning on bad values etc.
  new fn does validation and discards data if it's invalid.
  this was done so we don't have to repeat parsing steps elsewhere.
* toc.clj, the templated '## # interface' value is now considered and included in the interface-version-list.
* github-api.clj, removed duplicated parsing of :interface values in favour of that in toc.clj
* github-api.clj, order of extracted gametrack values is now deterministic.
* utils, fixed bug in interface-version-to-game-version
 - '110000' was returning '1.0.000' instead of '11.0.0'
* toc.clj, fixed bug where data would fail to validate and be discarded.
 - it was possible for multiple distinct interface-version values to become duplicate game tracks values (like [:retail :retail])
* jfx.clj, the 'WoW' (interface version) column now supports multiple values.
 - default column width values increased to accommodate them.
* specs.clj, replaces toc :interface-version with :interface-version-list
* core.clj, fixed a typo in the import/export logic and the test helper that was using :toc/game-track instead of :-toc/game-track
* toc.clj, replaced :-toc/game-track with :-toc/game-track-list
* addon.clj, a single set of toc data can now belong to many game tracks
 - this means the first instance of 'classic' toc data (for example) will be used even if multiple toc files support classic. crazy.
* tukui, curseforge, removed their 'expand-summary' implementations as they were using :interface-version
* jfx.clj, addon data detail pane now accommodates many interface values.
* toc.clj, removed a warning when the presence of a game track in the filename doesn't match the game tracks parsed from the data.
 - the user can't really do anything about it, I had at least one false-positive and with many game tracks to now check it seems needlessly expensive.
* curseforge, tukui, removes test fixtures referenced by removed code.
* catalogue.clj, fixed possibilty of multiple game tracks in toc2summary
* specs, source-updates, removes 'release-label' and 'interface-version'.
 these appear to have been introduced for curseforge and only used there.
* linted
* review feedback
* deps bump
* constants, adds entries for Dragonflight patch releases.
* constants, adds entry for The War Within.
* replaces references to old wiki with new wiki.
* fixed bug in emergency 'short' catalogue generation
 it would include addons from BFA instead of stopping at Shadowlands
* install addon from file, preserve 'ignore' and 'pin' flags (#434)
* cli, adds test 'install-addon--ignore-then-update-from-file'
  - it recreates what is being seen in issue #433
* core.clj, download-time tests duplicated at install-time.
  - but with different consequences.
* cli.clj, installing an addon from a file now goes through 'core', not 'addon'.
* core, relaxes restriction on what core/install-addon considers installable.
* addon.clj, special handling for nfo flags when installing addon.
  - if an addon is ignored then the new nfo data will inherit the ignore flag.  
  - if an addon is pinned then thew new nfo data will remove the pinned-version flag.
  - it shouldn't be possible to reach this logic right now, core/install-addon should prevent that.
* core.clj, install-addon, replaced 'test-only?' parameter with map of options.
* addon.clj, fixed bug where ignore check fails on single dir addons
  - it assumed all addons had a :group-addons field, but that only exists for addons that have been grouped because there are more than one of them.
  - pretty serious bug.
* core/install-addon, adds option to bypass ignore and pinned flags
* core/remove-many-addons, now refuses to remove ignored addons
* addon/remove-addon, just warns when ignored addon is being removed
* cli/install-addons-from-file, now accepts a map of installation options
* jfx/zip-file-picker, changed default behaviour when installing from file
  - ignored addons are now overwritten
  - pinned addons are now unpinned
* github, improve asset classification when release.json not present (#437)
* github-api, handle case where one unclassified asset can be classified as retail.
* review feedback
* updated constants for The War Within
* updated constants for the release date of previous expansion
* 7.5.0
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