> There are loads of other improvements that could me > made too -- for example, I'd love seeing Docker support, which would make > running tests way cheaper/simpler.
Haha, that was my first thought when I saw Vagrant in there - why not Docker? :) I didn't realize we already had Vagrant integration in Kafka. Gwen On Wed, Jun 24, 2015 at 10:53 AM, Ewen Cheslack-Postava <e...@confluent.io> wrote: > Github either lets you do inline comments on the diff ("Files Changed" tab) > or on the entire commit ("Conversation"). One of the things review board > does right that's a bit frustrating in Github his that you can't group a > bunch of comments into a single review and post it all at once (and get > only one email!). Both tools have their drawbacks... > > On your particular comments: > > tests/kafkatest - Sort of redundant, but useful for being able to publish > on PyPI, which will make services reusable by other projects. I actually > hate this even about normal Python libraries too, where you need to have a > top-level directory in the repository containing the project name. On the > other hand, it actually keeps the organization fairly clean since it leaves > space for docs, tests, and other directories, although those are less > relevant here. (By the way, there are other issues with reusability that we > may need to address eventually, such as the assumed layout of code in the > workers; we probably need to get an initial version in and try reusing it > in another project before we can really figure out everything that needs > fixing for that.) > > multi-version - Great question, although I'd hope not to hold up an initial > version only for this. Personally I think the right way to do this is to > make each of the services support different versions (and for upgrade-style > tests, they actually need to be able to change versions in some cases, i.e. > rolling upgrades). To support this, we'll need to update the current build > process (pre-test) to include grabbing the appropriate zips/jars, and the > services will need to know about the layout of the trunk build vs. > pre-built binaries. Then I think the tests just use the services but also > specify versions (rather than relying on what I assume would be the > default, which is the trunk build). If we want to test compatibility across > many versions, then we might want to have a single test for compatibility > between two versions, but make it parameterizable (which is another can of > worms....) > > kafkatest/tests - Organizationally I think a single file will usually make > sense, but you could also have an entire module if you needed enough code > for the test that it made sense to spread it across multiple files. So far > I think our experience has been that tests usually are pretty small because > more of the code tends to end up in services or utilities. We can see if > @granders agrees with that or not, he has now probably written more of > these than I have. > > kafka/vagrant - This already existed as part of > https://issues.apache.org/jira/browse/KAFKA-1173 These are updates that > make it work well if you want to run the driver machine (the one running > ducktape) on EC2, having it allocate more EC2 nodes to use as workers for > the tests. The IP address you saw is EC2-specific, but the Vagrantfile also > isolates those scripts to be used when using the vagrant-aws plugin. Other > stuff like being Debian-specific can be generalized by extending the > Vagrantfile and scripts, which I think would be great, but somebody needs > to invest the time. There are loads of other improvements that could me > made too -- for example, I'd love seeing Docker support, which would make > running tests way cheaper/simpler. > > > On Tue, Jun 23, 2015 at 7:56 PM, Gwen Shapira <gshap...@cloudera.com> wrote: > >> I'm unclear on the directory structure and few high level things (and >> I can't figure out how to comment on more than a single line in >> github): >> >> tests/kafkatest - isn't it redundant? do we expect any non-kafka tests? >> >> services/templates - those are basically all configuration files to be >> used by the services, right? Do we expect a single set for the entire >> system? or different templates for different tests? I'm checking >> because "systemtests" had config files per test. >> >> any thoughts on how multi-version tests will work? will we have >> service per version? >> >> kafkatest/tests - do we expect every test to be a single script? or >> should we have subdirectories here, to start things in the right >> direction? Maybe subdirectories for planned groups of tests? >> >> kafka/vagrant - is this intentionally not under tests? Is this at all >> stand-alone? If so, maybe a separate Jira? This has a bunch of stuff >> that I'm not sure we want in the project at all... specific IPs, >> Vagrant install from debian packages, etc. >> >> Gwen >> >> >> >> >> >> >> >> >> >> On Tue, Jun 23, 2015 at 10:45 AM, Gwen Shapira <gshap...@cloudera.com> >> wrote: >> > Awesome, thanks :) >> > >> > On Tue, Jun 23, 2015 at 10:32 AM, Geoffrey Anderson <ge...@confluent.io> >> wrote: >> >> Hi Gwen, >> >> >> >> That is indeed the plan, and my understanding is that the merge script >> >> Ismael has been working on helps committers with this step. >> >> >> >> I'm trying out the Github flow roughly as outlined here: >> >> >> http://mail-archives.apache.org/mod_mbox/kafka-dev/201504.mbox/%3ccad5tkzab-hkey-zcr8x4wtxawybxpojx62k1vbv+ycknuxq...@mail.gmail.com%3E >> >> >> >> Ismael's script is here: >> https://issues.apache.org/jira/browse/KAFKA-2187 >> >> >> >> >> >> Thanks, >> >> >> >> Geoff >> >> >> >> On Mon, Jun 22, 2015 at 9:59 PM, Gwen Shapira <gshap...@cloudera.com> >> wrote: >> >> >> >>> Thanks, I indeed missed the original :) >> >>> >> >>> Is the plan to squash the commits and merge a pull request with single >> >>> commit that matches the JIRA #? >> >>> This will be more in line with how commits were organized until now >> >>> and will make life much easier when cherry-picking. >> >>> >> >>> Gwen >> >>> >> >>> On Mon, Jun 22, 2015 at 1:58 PM, Geoffrey Anderson <ge...@confluent.io >> > >> >>> wrote: >> >>> > Hi, >> >>> > >> >>> > I'm pinging the dev list regarding KAFKA-2276 (KIP-25 initial patch) >> >>> again >> >>> > since it sounds like at least one person I spoke with did not see the >> >>> > initial pull request. >> >>> > >> >>> > Pull request: https://github.com/apache/kafka/pull/70/ >> >>> > JIRA: https://issues.apache.org/jira/browse/KAFKA-2276 >> >>> > >> >>> > Thanks! >> >>> > Geoff >> >>> > >> >>> > >> >>> > On Tue, Jun 16, 2015 at 2:50 PM, granders <g...@git.apache.org> >> wrote: >> >>> > >> >>> >> GitHub user granders opened a pull request: >> >>> >> >> >>> >> https://github.com/apache/kafka/pull/70 >> >>> >> >> >>> >> Kafka 2276 >> >>> >> >> >>> >> Initial patch for KIP-25 >> >>> >> >> >>> >> Note that to install ducktape, do *not* use pip to install >> ducktape. >> >>> >> Instead: >> >>> >> >> >>> >> ``` >> >>> >> $ git clone g...@github.com:confluentinc/ducktape.git >> >>> >> $ cd ducktape >> >>> >> $ python setup.py install >> >>> >> ``` >> >>> >> >> >>> >> >> >>> >> You can merge this pull request into a Git repository by running: >> >>> >> >> >>> >> $ git pull https://github.com/confluentinc/kafka KAFKA-2276 >> >>> >> >> >>> >> Alternatively you can review and apply these changes as the patch >> at: >> >>> >> >> >>> >> https://github.com/apache/kafka/pull/70.patch >> >>> >> >> >>> >> To close this pull request, make a commit to your master/trunk >> branch >> >>> >> with (at least) the following in the commit message: >> >>> >> >> >>> >> This closes #70 >> >>> >> >> >>> >> ---- >> >>> >> commit 81e41562f3836e95e89e12f215c82b1b2d505381 >> >>> >> Author: Liquan Pei <liquan...@gmail.com> >> >>> >> Date: 2015-04-24T01:32:54Z >> >>> >> >> >>> >> Bootstrap Kafka system tests >> >>> >> >> >>> >> commit f1914c3ba9b52d0f8db3989c8b031127b42ac59e >> >>> >> Author: Liquan Pei <liquan...@gmail.com> >> >>> >> Date: 2015-04-24T01:33:44Z >> >>> >> >> >>> >> Merge pull request #2 from confluentinc/system_tests >> >>> >> >> >>> >> Bootstrap Kafka system tests >> >>> >> >> >>> >> commit a2789885806f98dcd1fd58edc9a10a30e4bd314c >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-05-26T22:21:23Z >> >>> >> >> >>> >> fixed typos >> >>> >> >> >>> >> commit 07cd1c66a952ee29fc3c8e85464acb43a6981b8a >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-05-26T22:22:14Z >> >>> >> >> >>> >> Added simple producer which prints status of produced messages >> to >> >>> >> stdout. >> >>> >> >> >>> >> commit da94b8cbe79e6634cc32fbe8f6deb25388923029 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-05-27T21:07:20Z >> >>> >> >> >>> >> Added number of messages option. >> >>> >> >> >>> >> commit 2777712b39a2d75027299fbb1b1008d463a82aab >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-05-27T22:35:06Z >> >>> >> >> >>> >> Added some metadata to producer output. >> >>> >> >> >>> >> commit 8b4b1f2aa9681632ef65aa92dfd3066cd7d62851 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-05-29T23:38:32Z >> >>> >> >> >>> >> Minor updates to VerboseProducer >> >>> >> >> >>> >> commit c0526fe44cea739519a0889ebe9ead01b406b365 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-01T02:27:15Z >> >>> >> >> >>> >> Updates per review comments. >> >>> >> >> >>> >> commit bc009f218e00241cbdd23931d01b52c442eef6b7 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-01T02:28:28Z >> >>> >> >> >>> >> Got rid of VerboseProducer in core (moved to clients) >> >>> >> >> >>> >> commit 475423bb642ac8f816e8080f891867a6362c17fa >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-01T04:05:09Z >> >>> >> >> >>> >> Convert class to string before adding to json object. >> >>> >> >> >>> >> commit 0a5de8e0590e3a8dce1a91769ad41497b5e07d17 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-02T22:46:52Z >> >>> >> >> >>> >> Fixed checkstyle errors. Changed name to VerifiableProducer. >> Added >> >>> >> synchronization for thread safety on println statements. >> >>> >> >> >>> >> commit 9100417ce0717a71c822c5a279fe7858bfe7a7ee >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-03T19:50:11Z >> >>> >> >> >>> >> Updated command-line options for VerifiableProducer. Extracted >> >>> >> throughput logic to make it reusable. >> >>> >> >> >>> >> commit 1228eefc4e52b58c214b3ad45feab36a475d5a66 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-04T01:09:14Z >> >>> >> >> >>> >> Renamed throttler >> >>> >> >> >>> >> commit 6842ed1ffad62a84df67a0f0b6a651a6df085d12 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-04T01:12:11Z >> >>> >> >> >>> >> left out a file from last commit >> >>> >> >> >>> >> commit d586fb0eb63409807c02f280fae786cec55fb348 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-04T01:22:34Z >> >>> >> >> >>> >> Updated comments to reflect that throttler is not >> message-specific >> >>> >> >> >>> >> commit a80a4282ba9a288edba7cdf409d31f01ebf3d458 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-04T20:47:21Z >> >>> >> >> >>> >> Added shell program for VerifiableProducer. >> >>> >> >> >>> >> commit 51a94fd6ece926bcdd864af353efcf4c4d1b8ad8 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-04T20:55:02Z >> >>> >> >> >>> >> Use argparse4j instead of joptsimple. ThroughputThrottler now >> has >> >>> more >> >>> >> intuitive behavior when targetThroughput is 0. >> >>> >> >> >>> >> commit 632be12d2384bfd1ed3b057913dfd363cab71726 >> >>> >> Author: Geoff <grand...@gmail.com> >> >>> >> Date: 2015-06-04T22:22:44Z >> >>> >> >> >>> >> Merge pull request #3 from confluentinc/verbose-client >> >>> >> >> >>> >> Verbose client >> >>> >> >> >>> >> commit fc7c81c1f6cce497c19da34f7c452ee44800ab6d >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-11T01:01:39Z >> >>> >> >> >>> >> added setup.py >> >>> >> >> >>> >> commit 884b20e3a7ce7a94f22594782322e4366b51f7eb >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-11T01:02:11Z >> >>> >> >> >>> >> Moved a bunch of files to kafkatest directory >> >>> >> >> >>> >> commit 25a413d6ae3333938e9773eb2b20509760bab464 >> >>> >> Author: Geoff <grand...@gmail.com> >> >>> >> Date: 2015-06-11T20:29:21Z >> >>> >> >> >>> >> Update aws-example-Vagrantfile.local >> >>> >> >> >>> >> commit 96533c3718a9285d78393fb453b951592c72a490 >> >>> >> Author: Geoff <grand...@gmail.com> >> >>> >> Date: 2015-06-11T20:36:33Z >> >>> >> >> >>> >> Update aws-access-keys-commands >> >>> >> >> >>> >> commit e5edf031aeb99b9176a6ae8375963f2aedaaa6d7 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T00:27:49Z >> >>> >> >> >>> >> Updated example aws Vagrantfile.local >> >>> >> >> >>> >> commit 5af88fc1d9fc357c191a7c5fdbca60e37f42e9fc >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T00:28:19Z >> >>> >> >> >>> >> Updated README to include aws quickstart >> >>> >> >> >>> >> commit 4f476fec65e92ff5bf940dc4928e2fb64d424c0e >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T22:17:26Z >> >>> >> >> >>> >> Moved aws scripts to vagrant directory >> >>> >> >> >>> >> commit c60125cf4b983de958685cdcf10e7bab9813b119 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T22:18:59Z >> >>> >> >> >>> >> TestEndToEndLatency -> EndToEndLatency >> >>> >> >> >>> >> commit 7f7c3e0e68d9c3c50fb4b836b90887f39b43c466 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T22:20:25Z >> >>> >> >> >>> >> Updated setup.py for kafkatest >> >>> >> >> >>> >> commit 42dcdb1d66704bf512ddadc3020c493e74c5ba25 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T22:21:07Z >> >>> >> >> >>> >> Tweaked behavior of stop_node, clean_node to generally fail fast >> >>> >> >> >>> >> commit 3d738578d28cf732f5b1fc9d769b4bd487577082 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-12T22:24:30Z >> >>> >> >> >>> >> Merged downstream changes >> >>> >> >> >>> >> commit f469f84e6d827a580c26a62ef01f0e53f002c3e3 >> >>> >> Author: Geoff Anderson <ge...@confluent.io> >> >>> >> Date: 2015-06-15T20:13:17Z >> >>> >> >> >>> >> Tweaked readme, added example Vagrantfile.local >> >>> >> >> >>> >> ---- >> >>> >> >> >>> >> >> >>> >> --- >> >>> >> If your project is set up for it, you can reply to this email and >> have >> >>> your >> >>> >> reply appear on GitHub as well. If your project does not have this >> >>> feature >> >>> >> enabled and wishes so, or if the feature is enabled but not working, >> >>> please >> >>> >> contact infrastructure at infrastruct...@apache.org or file a JIRA >> >>> ticket >> >>> >> with INFRA. >> >>> >> --- >> >>> >> >> >>> >> > > > > -- > Thanks, > Ewen