Skip to content
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

Roadmap for Zeek 5.0 #212

Closed
8 tasks done
rsmmr opened this issue Feb 21, 2022 · 12 comments
Closed
8 tasks done

Roadmap for Zeek 5.0 #212

rsmmr opened this issue Feb 21, 2022 · 12 comments
Assignees

Comments

@rsmmr
Copy link
Member

rsmmr commented Feb 21, 2022

This is a meta ticket tracking next steps.

For Zeek 5.0:

After 5.0:

  • Switch Broker protocol to new serialization
  • Revisit need for Python bindings
  • Revisit full ALM
  • Clean up and modernize code where possible
  • Decide on new serialization format
@Neverlord Neverlord self-assigned this Feb 21, 2022
@timwoj
Copy link
Member

timwoj commented Feb 22, 2022

You might add zeek/zeek#1743 here too.

@Neverlord
Copy link
Member

Yep, thanks for the pointer. That one fell off the radar as it seems. I'm not sure if there's anything we can do about it, as the stack trace indicates it's crashing in std::random_device. But I'll evaluate it after the ALM merge is done.

@timwoj
Copy link
Member

timwoj commented Feb 22, 2022

Good point. It could be related to this: rr-debugger/rr#2459, which appears to have been fixed a while ago. I'll comment on the zeek issue about it.

@Neverlord
Copy link
Member

Putting this as a reminder here, also probably for after 5.0 since it's just a 'nice-to-have':

  • Provide a JSON schema for the new WebSocket protocol.

@Neverlord
Copy link
Member

Revisit need for Python bindings.

With WebSockets available in 5.0 as language-agnostic way to communicate to Broker: why not deprecate the bindings with 5.0?

We currently have 6 tickets open that are related to the Python bindings. I think simply closing all of them as 'wontfix' is probably the best way to move forward. If we do want to make interfacing with Broker easier from Python, we could instead provide a couple of (pure Python) utility functions that streamline operating on the WebSocket messages by converting between the Broker JSON format and proper Python types.

@rsmmr
Copy link
Member Author

rsmmr commented May 26, 2022

Yeah, I like that, and had indeed also already thought about providing a new Python module that would help with the WebSocket/JSON encoding.

However, I'd wait one version before deprecating the Python bindings: we're just adding WebSocket now with close-to-zero experience using it; let's give it a cycle before we recommend people move over to it for existing Python clients. That also allows the Python bindings to remain not-deprecated for the 5.0 LTS cycle, giving people plenty time.

So, I propose we do this with 5.1. I agree, though, that we then don't need to work on all those tickets in the meantime; we can just go into maintainance mode.

@Neverlord
Copy link
Member

That also allows the Python bindings to remain not-deprecated for the 5.0 LTS cycle, giving people plenty time.

Just for my understanding: what difference does it make to deprecate the bindings in 5.1 versus deprecating with 6.0? In both cases, we'll have to support the Python bindings until 7.0, or does the Zeek policy work differently?

@Neverlord
Copy link
Member

Check whether we can disable any warnings from CAF. That one is probably tricky, because we are building CAF as part of Broker. Hence, only suppressing warnings from CAF headers wouldn't be sufficient. This means we probably need to add a 'no-warnings' flag to CAF's CMake.

Zeek and Broker modify global CMake variables that are meant to capture user-configurations, e.g., CMAKE_CXX_FLAGS. Since CAF is integrated as sub-directory, it gets all the warning (and other) flags passed down automatically. Ideally, Zeek and Broker would leave the global flags alone and work with target properties instead. In the current setup, I don't see a sane way to 'drop' the flags that Zeek and Broker have added without ignoring all user-defined flags as well (which we shouldn't do IMHO).

@timwoj
Copy link
Member

timwoj commented Jun 3, 2022

Ideally, Zeek and Broker would leave the global flags alone and work with target properties instead.

After my fight with c-ares, I completely agree with this. It's something I'd definitely like to fix about our CMake setup.

@rsmmr
Copy link
Member Author

rsmmr commented Jul 4, 2022

That also allows the Python bindings to remain not-deprecated for the 5.0 LTS cycle, giving people plenty time.

Just for my understanding: what difference does it make to deprecate the bindings in 5.1 versus deprecating with 6.0? In both cases, we'll have to support the Python bindings until 7.0, or does the Zeek policy work differently?

That's correct. My point was that if we had deprecated them in 5.0 already, people would start getting warnings immediately from now on.

@Neverlord
Copy link
Member

Is there still something left todo here or can we close this ticket? We have a separate ticket for the Python binding removal / deprecation and the CMake overhaul is underway. 🙂

@timwoj
Copy link
Member

timwoj commented Mar 2, 2023

Nope, I'm fine with closing it.

@timwoj timwoj closed this as completed Mar 2, 2023
@github-project-automation github-project-automation bot moved this from Todo to Done in Release 5.2 Mar 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Done
Development

No branches or pull requests

3 participants