Goal
The OPY provider builds on the workshop-rs release that retired non-native identities and emits only native Workshop identities, so Wright can adopt that release.
Context
workshop-rs 0.8.0 retired the non-native catalog ids (workshop-rs#299) and keeps the authored False/True/Null substitutions through parse and emit (workshop-rs#300, breaking). Wright built on 0.8.0 with the released provider opy-provider 0.1.58 fails on a production project:
error[unknown-action] (frontend): unknown action spelling 'Set Allowed Heroes' for locale 'en-us'
--> <provider-artifact>:1720:9
Pinned OverPy writes Set Player Allowed Heroes, the native name. The current provider writes Set Allowed Heroes, so the Wright 0.2.37 en-US output of that project contains it five times, and the client does not know that name. The zh-CN build of the same project happens not to use it, which is why only en-US fails. Wright cannot move to workshop-rs 0.8.0 until the provider stops emitting the retired spelling, and the provider's own output can carry other retired ids the project does not exercise (forcePlayerHero, stopForcingHero, forceThrottle, stopChasingVariable, isFiringSecondaryFire).
Scope
Non-goals
Acceptance criteria
wright compile of src/main.opy (zh-CN) and src/externalMain.opy (en-US) of OWBastion/Bastion at commit f693704 succeeds on workshop-rs 0.8.0, and neither output contains a retired or non-native spelling.
- A regression test covers Set Player Allowed Heroes at the Workshop boundary.
- The builtin probe reports no unexplained difference introduced by the adoption.
Dependencies
Related: #359, #388, #384, wrightkit/workshop-rs#297, #299 and #300.
Goal
The OPY provider builds on the
workshop-rsrelease that retired non-native identities and emits only native Workshop identities, so Wright can adopt that release.Context
workshop-rs0.8.0 retired the non-native catalog ids (workshop-rs#299) and keeps the authoredFalse/True/Nullsubstitutions through parse and emit (workshop-rs#300, breaking). Wright built on 0.8.0 with the released provideropy-provider 0.1.58fails on a production project:Pinned OverPy writes
Set Player Allowed Heroes, the native name. The current provider writesSet Allowed Heroes, so the Wright 0.2.37 en-US output of that project contains it five times, and the client does not know that name. The zh-CN build of the same project happens not to use it, which is why only en-US fails. Wright cannot move toworkshop-rs0.8.0 until the provider stops emitting the retired spelling, and the provider's own output can carry other retired ids the project does not exercise (forcePlayerHero,stopForcingHero,forceThrottle,stopChasingVariable,isFiringSecondaryFire).Scope
workshop-rs0.8.0 (see Migrate to the workshop-rs 1.0 public API #359 for the API migration) and emit the native identity for Set Player Allowed Heroes and any other retired id the compiler can produce.Programnow keeps0versusFalseat coerced positions, which is the form#!optimizeForSizepolicy in Apply OverPy's per-parameter False/True substitutions under optimizeForSize #388 writes.workshop-rs0.8.0 with the new provider, and re-run the builtin probe.Non-goals
workshop-rs(constant wrappers, setting values, locale spellings), tracked there.Acceptance criteria
wright compileofsrc/main.opy(zh-CN) andsrc/externalMain.opy(en-US) ofOWBastion/Bastionat commitf693704succeeds onworkshop-rs0.8.0, and neither output contains a retired or non-native spelling.Dependencies
Related: #359, #388, #384,
wrightkit/workshop-rs#297,#299and#300.