# How to upgrade manta parachain client and runtime code base ## Code part Because our parachain is based on [`statemint`](https://github.com/paritytech/cumulus/tree/master/polkadot-parachains/statemint), so we need to follow `statemint`'s changes. - Client. We need to diff this folder: `polkadot-parachains/src`, such as if we need to upgrade client code from `release-v0.9.7` to `release-v0.9.8`: ```shell= # Diff cargo.toml to see what changes in dependencies git diff polkadot-v0.9.8 polkadot-v0.9.7 polkadot-parachains/Cargo.toml git diff polkadot-v0.9.8 polkadot-v0.9.7 polkadot-parachains/src/service.rs git diff polkadot-v0.9.8 polkadot-v0.9.7 polkadot-parachains/src/command.rs # ... ``` Now the diff result will tell you what changes in latest commit. And follow these changes to upgrade our parachain's client code base. - Runtime Check folder: `polkadot-parachains/statemint`. ```shell= # Diff cargo.toml to see what changes in dependencies git diff polkadot-v0.9.8 polkadot-v0.9.7 polkadot-parachains/statemint/Cargo.toml git diff polkadot-v0.9.8 polkadot-v0.9.7 polkadot-parachains/statemint/src/lib.rs # ... ``` After upgrading, resolve the compilation error. > Tips: If you're using vscode, [`Git History Diff`](https://marketplace.visualstudio.com/items?itemName=huizhou.githd) is good utility for diff part. ## Testign part Use `manta-pc-launch` for these testing. - Block time test Ensure our parachain's block time is faster than acala's, at least not slower than acala's. - Runtime Upgrade. - Cross chain transaction. - ...