Hey Steve,
First off... thank you for considering contributing your hard work for the rest of us to use and improve upon. It is greatly appreciated.
There is a third option - two branches. Master branch would contain all the common code, and a secondary branch could contain all the code you feel is specific to your needs. This gives developers the opportunity to get/contribute to the master branch while ignoring (if they don't need it) the secondary branch. For those that want/need anything in the secondary branch, they can go grab that branch.
In either case, #1 is easiest to maintain. #2 is likely to leave dependencies in the repo that do not exist (because it is part of the code you keep private) and would require more testing to ensure you don't do that. My option (two branches) would also have to be tested for dependencies, but would be a more trivial task to address since the code is still available in a secondary public branch.
And in final note, be certain you a) have the permission of your client/customer to open source any code written for them; b) make sure you don't check in anything customer specific (e.g. sanitize the code to eliminate keys/passwords/other hard-coded data specific to the customer); c) choose an appropriate license, and d) if electing the two-branch option, make sure you include details of the secondary branch, and it's purpose, in the README.
For TCFA use, make sure you've signed and returned the TCFA Contributor License Agreement (
https://s3.amazonaws.com/tcfa/Team_CF_Advance_CLA.pdf) to us (you can still send those to me directly @
denard....@gmail.com) and let us know when have the repo set up and we'll fork it for TCFA (I'm assuming you're going to use GitHub).
Hope that helps!
- Denny