-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explore adding native windows and linux driver #79
base: main
Are you sure you want to change the base?
Conversation
After discussion with @sparshev:
New questions for @sparshev :
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a bit of review to give some food for thought, later when structure will fit will do review properly.
@@ -1,3 +1,5 @@ | |||
//go:build darwin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copyright should be at the top when possible, so better to move it after the copyright - those will work anywhere in the code like here:
aquarium-fish/lib/openapi/openapi.go
Lines 10 to 16 in eb5358d
* governing permissions and limitations under the License. | |
*/ | |
//go:generate oapi-codegen -config types.cfg.yaml ../../docs/openapi.yaml | |
//go:generate oapi-codegen -config meta_v1.cfg.yaml ../../docs/openapi.yaml | |
//go:generate oapi-codegen -config api_v1.cfg.yaml ../../docs/openapi.yaml | |
//go:generate oapi-codegen -config spec.cfg.yaml ../../docs/openapi.yaml |
… data and behavior using the standard mechanisms of go build pragmas, embedded structs, and shared functions
a8ffe1b
to
b77590b
Compare
Ok i've re-implemented using embedded structs and go build pragmas, and some shared functions. Theres a bunch of error handling and return-value cleanup that still needs to happen, but submitting this now to make sure it matches @sparshev goal structurally. |
Yep, structurally looks very nice) |
This was mostly an exercise to familiarize myself with the codebase and test suite.
Stopping for discussion with @sparshev because it seemed likely to me the intention was to have the single existing Native driver service all platforms with conditionals around platform-specific behavior, and not using any abstractions like polymorphism. Need to ask and confirm, and if/so, would like specific guidance on how to handle the awkward implications in the native drivers Config.go, Driver.go, without the code becoming very bloated and hard to reason about.
This work also raised questions about how we might implement the configuration of the native driver to perform a limited subset of the current behavior, like "don't create new user', or alternative behaviors like "git clean workspace" and then "reboot after use". The goal here would be to implement native driver which just adds precise new features to our existing bare metal without changing anything fundamental like creating new users/etc.
Related Issue
#78
Motivation and Context
Add windows support for the Native Driver
How Has This Been Tested?
Testing incomplete, thus far, only exploratory work
Screenshots (if appropriate):
Here's output of new
fish_native_windows_test.go
unit test on windows:Types of changes
Checklist: