To avoid getting our devs stuck on some problem in our local environment, we still have to do some extra work to make sure we help them avoid common issues.
The rule should be: "A developer without previous knowledge about our code must be able to test, build and run apps and scripts without any help".
This is a list of things I believe we need to achieve this (feel free to add more):
[ ] Environment variables should be checked on startup: Any environment variable required by a package has to be pre-checked on startup, providing a helpful error if they are not set.
[ ] A place to retrieve secrets for our team members: Lastpass would be a good place for this, this is where PAI keys and other private values should be available for our team members
[ ] Setup instructions for all services needed to run our apps: Anything that needs to be installed before running our code should be explained in our README.md file. (Things like mongodb, yarn or nvm for example)
[ ] When possible, errors should give instructions to fix the issue: Instead of receiving Contract not deployed to network 42 we should get something like Smart contracts were not detected in the network you are trying to connect, you should run "local-blockchain:generate: to fix this issue
[ ] Local blockchain should provide different state: We should provide different app state for the local blockchain so a dev can rapidly test different scenarios (before, after STO created, etc.).
[ ] Apps should throw errors and exit when not able to establish initial connections: This includes (but is not restricted to) mongodb, web3 and sendgrid
To avoid getting our devs stuck on some problem in our local environment, we still have to do some extra work to make sure we help them avoid common issues.
The rule should be: "A developer without previous knowledge about our code must be able to test, build and run apps and scripts without any help".
This is a list of things I believe we need to achieve this (feel free to add more):
README.md
file. (Things likemongodb
,yarn
ornvm
for example)Contract not deployed to network 42
we should get something likeSmart contracts were not detected in the network you are trying to connect, you should run "local-blockchain:generate: to fix this issue