-
Notifications
You must be signed in to change notification settings - Fork 266
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
Merge Server into Main. #717
Conversation
Apparently slices and slog were added in a version after the tests run. I'll get that all sorted out. Strangely, the go.mod file still lists 1.20 but it's using packages from 1.22 on my system anyway. |
Issues with 1.22 packages resolved. |
@danomagnum Since the policy of the repo is that we support the "current" (1.22) and "previous" (1.21) versions of Go, I think we should be ok to include the newer slices/slog packages. |
Also we need to decide if this should be squashed. There's a lot of commits plus merges which makes the history messy. And it's generally been the policy in this repo to squash. Not sure if @magiconair has any input on this. |
10-4. I'll squash everything when I get a chance. |
That squashed everything into one change relative to the current head. I have a backup of the commits before the squash in case we want to split it back up for some reason. |
@danomagnum first of all great work on getting it this far. 💯 Just wondering a few things... Regarding the naming of About the tests in Thank you for the work on this PR, looking forward to hopefully getting it merged soon. |
Good idea on uatest/python and uatest/go. I'll make that change when I get a chance. You are correct that there is no equivalent test for methods because that is not implemented in the new server yet. There are a few other tests that don't have equivalents yet in the new server either (like "registered read") and those tests are t.Skip()ped. The updated Readme.md file lists what services are implemented and what aren't. |
Thanks for the explanations @danomagnum @magiconair any chance you could take a peek at this admittedly massive PR? Some of us kinda need it 😸 |
Not very useful to get MY.IP.ADDRESS:MyPORT in the log.
The squash apparently messed something up. I'll look at what the problem is and get it sorted out. |
I believe I've got the server functioning well enough to merge into the main branch and let users start trying it. I've updated the readme to detail where the server is from an implementation standpoint.
There are three example servers in the examples/server directory.
There is a server.Namespace interface (which the map namespace and node namespace both implement) that can be used to create custom "node drivers" if a user needs to control how the server interacts with their application.
As far as I can tell, all existing tests are passing.
This retains the integration tests against the python server and adds some "self-integration" tests against the gopcua server for the features that are currently implemented. You'll see them in the makefile and the uatest2 directory.
The crypto part is not working. Neither is authentication.
I was able to get sign/encrypt working at one point if I hard-coded the encryption scheme but not when trying to detect it at runtime, so I would say it is close to functional but there's still some critical parts missing.