# Development Cycle
Here's what you have to do when you make code changes in various parts of the system, including your contract code, so that the Agoric system reflects your changes.
Different changes have different impacts. The table below is ordered so that your changes with the most impact are at the top in the first row. To use the table, go down the first column until you see a type of change you made.
Then go to that row's second column and do the action specified there. You then need to go down the second column and do every action specified in the second column down to and including the last row's second column. In other words, if you do the action in row 3's second column, you must also do the action in row 4's second column, then row 5's second column, and so on until the bottom row.
You don’t have to do any of the second column actions in rows above where you started.
|How to use this table:|
|Change which npm packages are used in || In your || Updates the |
|Change packages in the ||In your ||Rebuilds the SDK generated files.|
|This second column action needs to be done for any changes listed above this row, but doesn’t need to be done for changes listed below this row.||Run ||Copies the new |
|Change code in ||1. Kill the current |
|When you change Agoric SDK code, you must restart your Agoric instance to use the revised version.|
|Change your contract definition.||Run ||Pushes the new contract to the chain.|
|Change the code in your contract’s `api` directory. It contains the cloud service part of your app, which talks to the contract on chain.||Run ||Pushes the API handler to your local Agoric VM, |
|Change your UI code||Code changes may be automatically picked up and reflected in the display. If not, refresh the browser.||When you save your changes, the ReactJS dev proxy automatically updates, but sometimes it gets confused.|