Done Criteria
- We have a CI check that ensures
FilecoinWarmStorageServiceLayout.sol only has storage slot additions (i.e., increasing numbers, not overriding or changing existing numbers).
- Release process has an explicit step for human checking that
FilecoinWarmStorageServiceLayout.sol has no destructive changes between the current contract release and the to-be-released contract.
- https://github.com/FilOzone/filecoin-services/blob/main/SPEC.md#cross-cutting-concerns documents this extra check that we're doing.
Why Important
Messing up storage slots in the proxy is one potential way to force us to need to deploy a new proxy, which we want to avoid if at all possible.
User/Customer
Engineering team
- We are relying on
check-gen CI job (.github/workflows/check.yml) runs make gen on every PR/push to main and fails if regenerated output differs from what is committed the build step that invokestools/generate_storage_layout.sh to keep FilecoinWarmStorageServiceLayout.sol updated/current.
Done Criteria
FilecoinWarmStorageServiceLayout.solonly has storage slot additions (i.e., increasing numbers, not overriding or changing existing numbers).FilecoinWarmStorageServiceLayout.solhas no destructive changes between the current contract release and the to-be-released contract.Why Important
Messing up storage slots in the proxy is one potential way to force us to need to deploy a new proxy, which we want to avoid if at all possible.
User/Customer
Engineering team
check-genCI job (.github/workflows/check.yml) runsmake genon every PR/push to main and fails if regenerated output differs from what is committed the build step that invokestools/generate_storage_layout.shto keepFilecoinWarmStorageServiceLayout.solupdated/current.