mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

This CL tries to connect 2 objectives: - Examples should be close (the same package) to the original code, such that they can participate in documentation. - Examples should be runnable - such that they are not getting out of sync with underlying API/implementation. In case of etcd-client, the examples are assuming running 'integration' style, i.e. thay do connect to fully functional etcd-server. That would lead to a cyclic dependencies between modules: - server depends on client (as client need to be lightweight) - client (for test purposes) depend on server. Go modules does not allow to distingush testing dependency from prod-code dependency. Thus to meet the objective: - The examples are getting executed within testing/integration packages against real etcd - The examples are symlinked to 'unit' tests, such that they included in documentation. - Long-term the unit examples should get rewritten to use 'mocks' instead of real integration tests.
pkg/ is a collection of utility packages used by etcd without being specific to etcd itself. A package belongs here only if it could possibly be moved out into its own repository in the future.