# Contributing
## How to Regenerate From XDR
To regenerate types from XDR definitions:
1. Update XDR definitions
```console
git submodule update --init --remote
```
The `--init` flag is only required for the first time setting up the local
project. `--remote` flag will make sure to fetch the latest changes from
from the remote-tracking branches `curr` and `next` at [stellar/stellar-xdr].
If you have multiple remotes specified in the submodules (e.g. one
*tracking `stellar/stellar-xdr`, the other tracking `your-fork/stellar-xdr`),
make sure the remote that tracks [stellar/stellar-xdr] match with what's
specifies in the `.git/config` or `.gitsubmodules` (with `.git/config` taking
precedence. If neither file specifies it, then `origin` is used).
2. Recompile and test
```console
make clean generate
```
When the regenerated types are ready to be merged, make sure to commit the regenerated code file `src/curr/generated.rs`, `src/next/generated.rs`, the version string file `xdr/curr-version`, `xdr/next-version`, as well as the submodule files `xdr/curr`, `xdr/next`.