My other mail crossed with these messages, just so that you know.

2014-10-30 15:08 GMT+01:00 Thomas D. <[email protected]>:

> Hi,
> > Regarding code quality: I have a QA background so I tend to put a[n
> overly]
> > big price on testing and documentation. But I still wouldn't stop moving
> > forward with the project for the sake of quality - Rainer adds juicy
> stuff
> > with every release and, looking back, I'm always thinking what a nice
> > progress this project has made.
> >
> > However, I think there's increasing debt in terms of tests and docs as
> new
> > features are added. As rsyslog gets more complex, it looks harder to keep
> > it stable.
> >
> > So I would go with something in the middle: when a new feature is done,
> > let's add docs and some basic tests to the testbench to it. If we want to
> > make exceptions, let's add a github issue with a few useful pointers so
> we
> > can "catch up" later.
>
> Are there any important missing features in the pipeline?
>
>
Depends on what "important" means. There are many requests in the bug
tracker (many for new interfaces, many for logstashish simplicity,
unfinished external input plugin interface, rewrite of queue system,
replacement of json-c in variable handling come up my mind without any
further thinking) and many things make a lot of sense. Part of that is
refactoring, but would have very clear benefits (like getting rid of
libestr). I'd assume its 1 to 3 years of work for me at the rate that I can
currently handle.

When Debian Jessie is out, things are done for a moment. I am not
> suggesting to stop further development at all, but we should focus for
> 3-6 months on a test suite (and remember, the test suite will only
> uncover bugs, and I am expecting to find a lot of bugs).
>
> There are dozen of modules. Most of them were created to solve one
> special problem. But many of them are lacking of the modern syntax and
> or documentation. Often they don't even work.
>
> I am not happy with shipping code you don't know. And this year has
> shown that sometimes it is better to remove code you don't know... ask
> the OpenSSL team ;)
>
> And to be honest, I am little bit shocked that if you are having a QA
> background that you are suggesting an exception model. Don't get me
> wrong, but isn't that the point where every problem starts?
>
> For example, see commit b342337f [1] (please Rainer, don't get me wrong
> here, too!). The mmcount module was broken for about 1 year and nobody
> noticed. And even now, we don't know if it is working.
>
> If we would stop for a moment, create a test suite and also a policy
> like "Only merge working code; only add new things when they are
> documented; only add new things when we have a working test" we would
> solve this problem.
>

Well in theory I agree. In practice, we have tried hard during the last
month to make it *easier* for folks to contribute. Wouldn't that
requirement be right the contrary and block contributions? Remember that it
is a very rare occasion that I receive a bit of doc with a contribution and
demanding a *decent* testbench test (no matter which system is used for
that) would definitely raise the bar much higher. Assuming that not
everyone know how to write for the test systems that's used by rsyslog,
it's probably a total show stopper.


> 1) We would know what's working and what isn't working.
>
> 2) Because the tests will verify our documentation/specs we would know
> if something doesn't work as expected.
>
> 3) Because we have working tests we should be able to reproduce most
> problems (currently there's often the problem that a special environment
> is needed).
>
> 4) If a new feature or a change will break something, we would
> immediately notice.
>
> What's the benefit of having a feature nobody knows or nobody can use,
> because we don't have a documentation?
>

Counter-question: what does people stop from writing doc? I've even split
off the rsyslog-doc project early this year and James made it much more
accessible and easy to use by supporting RST ... yet almost nobody is
contributing. Granted, I can do all the doc work myself, and I am already
doing this as good as I can, but I have also said numerous times that *I am
simply not good at writing doc*, so the situation will not improve as long
as nobody seriously joins that effort.


>
> What's the benefit of having a new feature very fast when you don't know
> if it is still working in the next version because you cannot test?
>
>
When I began with open source, the spirit was "anyone helps with what he
can do best". It worked pretty decent years ago. I developed, which I am
good add, users contributed by trying out the -devel branches and
contributed bug reports and testing help. Nowadays, it looks like I need to
be the developer-tester-techwriter guy and everybody expects free software
to be perfect without contributing back - at least it looks so.

Maybe that's the price we have to pay from all these well-funded projects.
Unfortunately, we *are* *not* well funded, so we cannot hire test engineers
and tech writers.

If I get bug reports for important features, I usually try to fix them
quickly. Doesn't work always, but works. I also try to keep things running
that I do not know very well, or do not know who is actually using it. The
commit you mention is a good sample. IMHO it is better to keep the module,
as some folks may be using it, and they just have not yet moved to v8 (very
likely - I just worked on a thankfully paid support call on v3.22!). If I
craft that untested fix right now, I have at least a vague memory of what
needed to be changed. If this happens in two years from now, I would have
to start right from the beginning.

But we can of course remove all that modules that are not mainstream if
that's the overall consensus. I think it is good to have them in the source
tree, at a minimum they serve as examples and copy-templates for folks who
want to do something similar.

All in all: I really like the feedback and hope I don't come over harsh.
It's not the intention. I just want to state the problem *from my
perspective* (which I think is not obvious), so that this can be put into
the picture. More comments and suggestions are highly welcome (Radu?
David?).

Thanks for the discussion!
Rainer


> See also:
> =========
> [1]
>
> https://github.com/rsyslog/rsyslog/commit/b342337f70772417fc9dcec0014baa02101cfd3b
>
>
> -Thomas
>
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
> What's up with rsyslog? Follow https://twitter.com/rgerhards
> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad
> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
> DON'T LIKE THAT.
>
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to