Description
openedon Nov 3, 2020
Using this issue to write out some thoughts/plans for octoDNS's path forward. There's no specific timeline on any of this, some of it will happen almost immediately other bits will come over time.
Separate Org - github.com/octodns
The biggest change is that I plan to move things from https://github.com/github/octodns/ to https://github.com/octodns/. That will put this repo at https://github.com/octodns/octodns/. The good news is that everything should pretty much redirect and work normally if you hit the old URL. There's a few reasons behind this change, the primary one being so that we can break up the core of octodns from the providers. This give us a better setup on a few fronts.
Maintainers, Access, & Testing
Having separate repos for each provider will allow outside contributors to be granted further access and own/drive specific providers. There are many providers where I don't have access to run or test with making it difficult for me to verify changes and making me/GitHub a bottleneck. Having things in separate repos that don't live under the /github org will allow us to grant control to the authors of the providers.
Release Schedules
Having repos like https://github.com/octodns/route53, https://github.com/octodns/azure, https://github.com/octodns/ns1, ... This will allow each provider to release on its own schedule as makes sense for that provider and structure things more cleanly in terms of issues and PRs.
Requirements & Dependancies
This will also result in a much better setup around requirements. With everything in a single repo we've chosen to only include the core requirements for octoDNS to avoid installing 100's of modules, most of which wouldn't be used in any given install. With separate modules each provider can spell out their exact requirements in their setup.py/requirements.txt and things will work as people expect.
The path from here to there
Again no specific timeline, the first few of these will likely happen over the next few weeks. The "api", testing, and breakup of providers will likely happen over time.
- Create the https://github.com/octodns/ org
- Grant access (owners/admins) to roughly match those on https://github.com/github/octodns
- Move https://github.com/github/octodns/ to https://github.com/octodns/octodns/
- Update docs, readmes, pypi etc to point to the new location
- Codify the existing Source & Provider structure as a formal API & write extensive behavior tests for that api to help ensure that changes won't break providers
- Create a new "template" provider to establish the structure and behavior of sources/provider sub-modules and to serve as a starting point for pulling existing providers out and for developing new providers
- Look into running tests for all the submodules against the octoDNS core on https://github.com/octodns/octodns/ PRs.
- Split out each provider into a separate repo & module.
- ...