Snowflake-Labs / schemachange

A Database Change Management tool for Snowflake
Apache License 2.0
517 stars 229 forks source link

Repo Organization #219

Open zanebclark opened 10 months ago

zanebclark commented 10 months ago

Hey there!

I'm interested in adding two new flags to a fork of the repo that I think would be valuable to others. I'm finding it hard to follow the logic of cli.py for two reasons:

  1. Everything is in a single file. Is there a benefit to the single-file layout? Would you consider a multi-file layout?
  2. Every log message that would normally add clarity to a state is a global variable. Is there a benefit to storing log message contents as global variables? Would you consider integrating the messages into the log statements to improve code readability?

I'm also finding it hard to test my new feature in deploy_command. I'd like to pass in a mocked client and assert that it's called with the expected arguments, but the client is instantiated inside the function. Would you be open to some dependency inversion?

I've opened two pull requests that propose significant changes to the repo. If you're open to these changes, I'd like to open another one that makes the code more testable and readable. Thanks for your time!