Make the client a context manager
Only build if the version does not exist, yet
Add test package
Ignore generated files.