tsung
tsung copied to clipboard
Roadmap/Idea for Tsung 2.0
I'm thinking about some larger changes to Tsung and since I'd like to see a 1.8.0 release soon, I was also thinking a few steps further.
I think it is time for a (potentially bigger) breaking changes - hence 2.0 and not 1.9.
What I currently have on my mind are the following topics, which mainly focus on making things easier to develop on tsung and remove bumps that I think are hindering is a bit from progressing:
- drop support for Erlang < 21: This might be a bit drastic, but I think this will remove a lot of macros, helpers etc that we currently have to keep around for older Erlang environments.
- Ship ERTS with Tsung releases: We should take a look what we need to do in order to ship Tsung as a "normal" Erlang application. A main problem currently is, that Tsung does not bring it's own ERTS. That requires users to have a compatible version of Erlang installed on the system e.g.
- drop mochiweb to parse XML/JSON and work with XPath and JSONPath. There are other, better maintained and more powerful options available. They are currently vendored and haven't seen updates in years. Especially for working with XML/XPath I think we should give
xmerl_xpatha try e.g. - take a look at package managers like hex to work with tsung dependencies (mainly to be able to keep them updated).
This is just an initial brain dump! Please chime in if you have other ideas or opinions about a Tsung 2.0 release.
- dropping erlang < 21 seems a bit too much for me . Keeping compatibility with 20 seems more reasonable (the latest 18.04 LTS from ubuntu provides erlang 20 for ex.)
- i was planning to use rebar3 instead of the old autotools stuff yes; that should ease the switch to more recents libs for parsing json/xpath
erm, yeah, I meant to say Erlang 20 :) I just wanted to say, that I think we should at least state that older versions are no longer supported, so that we can actually start dropping stuff.
On the other hand, if we use rebar to build a release, the Erlang runtime is included in the release. So for users it would actually be okay not to have Erlang 21 on their systems. It would only be required for development.
The random module is replaced by the rand module, if dropping the random module, I can make some code to it.
@getong that would be nice! I think most spots are rather simple, but the special logic we have in place to make the seeding work properly. There was an issue a while back, that the seeds were in sync in a distributed case, which caused quite a bit of problems.
@tisba: 1.8.0 has been released:
- https://github.com/processone/tsung/releases/tag/v1.8.0