Return-Path: X-Original-To: apmail-qpid-users-archive@www.apache.org Delivered-To: apmail-qpid-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CD0711805B for ; Wed, 24 Feb 2016 04:06:49 +0000 (UTC) Received: (qmail 38690 invoked by uid 500); 24 Feb 2016 04:06:49 -0000 Delivered-To: apmail-qpid-users-archive@qpid.apache.org Received: (qmail 38650 invoked by uid 500); 24 Feb 2016 04:06:49 -0000 Mailing-List: contact users-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@qpid.apache.org Delivered-To: mailing list users@qpid.apache.org Received: (qmail 38637 invoked by uid 99); 24 Feb 2016 04:06:49 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 Feb 2016 04:06:49 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 6E018C0362 for ; Wed, 24 Feb 2016 04:06:48 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.198 X-Spam-Level: * X-Spam-Status: No, score=1.198 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id SqNEQuHBtXEn for ; Wed, 24 Feb 2016 04:06:44 +0000 (UTC) Received: from mail-io0-f170.google.com (mail-io0-f170.google.com [209.85.223.170]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 0E3DC5FAC6 for ; Wed, 24 Feb 2016 04:06:44 +0000 (UTC) Received: by mail-io0-f170.google.com with SMTP id l127so18034305iof.3 for ; Tue, 23 Feb 2016 20:06:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=2Xft7BDkmAFLiGQvEmn3cSzLUEEmYyEAgQQryE8GG9M=; b=hnyZX3Aud1dcUqwvvaLLDgp2Xobil/DZ3/DHHh9cbMlLTxumYeB1KIU+Rj/po10/Fe WIImsVpHx6jHBT8Ao+PRbHR0BeGtM6u3zdthEJJOTZN7REELXydCS3VL3sQopcBrr7tu dQS5kplCjP40I1uwqetZDUlNw6ocOiLBZDtnBHwSkw6EQFeKwqW+1fPOO0DdMuEqAEm4 6/04hzyEtpil1w3QxyEqdiGUOH5lQdHoikTbCRBXjn8DOHdnlWALFkbgWDBt8DtHms41 w9HA7iop+8TPMvKO/SUuFjBUZOan07N5D+TtPmGvNIit8jWa1Wu8qfTNCfWchSRgV8KJ hMsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=2Xft7BDkmAFLiGQvEmn3cSzLUEEmYyEAgQQryE8GG9M=; b=F61ockxeD7h94Og2m1i2gqv0x3/Mk+I+DFNPc4Cbe73MIqzLW2WJBudx1fqYNbkFXx 0nOUsqBIN6sdvcqqVyRDCvJSgXzjo7hGaCGg1QVGb+OtuB+05XYkpM5bjRwLaUzPYARR aR4lDzLYBRDcT9/viM1vrRDlj/s2fpX5CLkCvp9AtNG9+vK1tRhgNidZoZJj90gkeJPd MxwL8MxJaHqYDdhOc+CpNRwI4K+hTWf5GpsMQhT3xGYEnRDzQ6LDPaE+MejWzhWDUj1m f+dMU0TW+nxWOCbcQ0aEqPhVJPgM30MmhtyYL/WMBLHuuRANkELHRPTT9MQvdfDrBKl1 Pzdw== X-Gm-Message-State: AG10YOQuQsLWTeu12leVlkMyjKj6vWKA8OG4rTjUzpSu9aanCSNnBQeLtdhC7pufgjx/lSzwejgcwcNzdJAYrw== MIME-Version: 1.0 X-Received: by 10.50.43.228 with SMTP id z4mr20766753igl.8.1456286802872; Tue, 23 Feb 2016 20:06:42 -0800 (PST) Received: by 10.79.22.4 with HTTP; Tue, 23 Feb 2016 20:06:42 -0800 (PST) Date: Tue, 23 Feb 2016 20:06:42 -0800 Message-ID: Subject: Qpid Subversion reorganization proposal From: Justin Ross To: "users@qpid.apache.org" Content-Type: multipart/alternative; boundary=089e01227e849395a2052c7c316c --089e01227e849395a2052c7c316c Content-Type: text/plain; charset=UTF-8 Hi, everyone. I've been preparing a proof of concept for the reorg, and it's reached a stage where it's ready for comment. https://github.com/ssorj/qpid-svn-reorg Look here for an idea of how the Qpid subversion top level would appear after these changes: https://github.com/ssorj/qpid-svn-reorg/tree/trunk/qpid I have remaining work to get the C++ tests in shape, but the overall form of things is what I wish to propose. I would appreciate your comments. This is a functioning alternate source organization, so you can download it and test it directly. So you can make comments inline, I've appended the markdown README below. I will produce revised proposals after incorporating your input. Thanks, Justin --- # Qpid Subversion reorganization ## Overview This proof of concept represents an effort to achieve the source tree layout proposed [here][1]. It allows the Qpid project to produce independent releases of Qpid C++ and Python as well as other modules that have heretofore been bundled into one large Qpid release. [1]: https://cwiki.apache.org/confluence/display/qpid/Source+tree+layout+proposal ### End-goal top-level codebases and source artifacts New at the top level qpid-cpp qpid/cpp/trunk qpid-cpp-VERSION.tar.gz qpid-java-qmf qpid/java-qmf/trunk qpid-java-qmf-VERSION.tar.gz qpid-python qpid/python/trunk qpid-python-VERSION.tar.gz qpid-wcf qpid/wcf/trunk qpid-wcf-VERSION.tar.gz saslwrapper qpid/saslwrapper/trunk saslwrapper-VERSION.tar.gz Existing qpid-java qpid/java/trunk qpid-java-VERSION.tar.gz Existing and migrated to Git qpid-dispatch qpid-dispatch.git qpid-dispatch-VERSION.tar.gz qpid-jms qpid-jms.git apache-qpid-jms-VERSION.tar.gz qpid-proton qpid-proton.git qpid-proton-VERSION.tar.gz No source releases qpid-maven qpid/maven/trunk [NA] qpid-site qpid/site [NA] qpid-specs qpid/specs [NA] In the current proposal, qpid-java-qmf stands apart from qpid-java, but it may make more sense for java-qmf to take a place inside of qpid-java. ## Dependencies qpid-cpp depends on qpid-proton for amqp 1.0 support qpid-cpp depends on qpid-python for its tests qpid-dispatch depends on qpid-proton qpid-java depends on qpid-python for its tests qpid-java-qmf depends on qpid-java qpid-jms depends on qpid-proton qpid-python optionally depends on saslwrapper qpid-wcf depends on qpid-cpp ## Changes in the Subversion tree Note that the proof of concept does not in fact move the new top-level codebases into the standard Subversion structure with trunk, branches, and tags. In order to minimize diffs, they instead remain in their current locations, but updated to remove cross-tree source dependencies. ### Relocations Migrate qpid/trunk/qpid/tools python and ruby content to qpid/cpp/management: qpid/trunk/tools/setup.py -> qpid/cpp/trunk/management/setup.py qpid/trunk/tools/MANIFEST.in -> qpid/cpp/trunk/management/MANIFEST.in qpid/trunk/tools/*.txt -> qpid/cpp/trunk/management/python/*.txt qpid/trunk/tools/src/py/$libs -> qpid/cpp/trunk/management/python/lib/$libs qpid/trunk/extras/qmf/src/py/qmf -> qpid/cpp/trunk/management/python/lib/qmf qpid/trunk/tools/src/py/$tools -> qpid/cpp/trunk/management/python/bin/$tools qpid/trunk/tools/src/ruby/qpid_management -> qpid/cpp/trunk/management/ruby/qpid_management Migrate qpid/trunk/qpid/tools java content to qpid/java-qmf: qpid/trunk/tools/src/java -> qpid/java-qmf/trunk Migrate qpid/trunk/qpid/tests to qpid/python: qpid/trunk/tests/src/py/qpid_tests -> qpid/python/trunk/qpid_tests Migrate Windows packaging scripts to qpid/cpp: qpid/trunk/qpid/packaging/windows -> qpid/cpp/trunk/packaging/windows Migrate other self-contained components to the top level: qpid/trunk/qpid/extras/sasl -> qpid/saslwrapper/trunk qpid/trunk/qpid/wcf -> qpid/wcf/trunk ### Deletions Obsolete: qpid/trunk/qpid/QPID_VERSION.txt # No longer makes sense qpid/trunk/qpid/LICENSE # No longer makes sense qpid/trunk/qpid/NOTICE # No longer makes sense qpid/trunk/qpid/extras/dispatch # Obsolete stub qpid/trunk/qpid/doc/website # Obsolete stub After migration: qpid/trunk/qpid/doc/book # Moved under qpid/cpp/trunk/docs qpid/trunk/qpid/extras/qmf # Moved under qpid/cpp/trunk/management/python Apparently no longer in use. I'm judging "in use" by whether there have been any changes--not an excellent metric. If you are using any of these, please inform me so that I preserve them. qpid/trunk/qpid/review # Not touched since 2009 qpid/trunk/qpid/sandbox # Not touched since 2010 qpid/trunk/qpid/bin # Not touched since 2012 qpid/trunk/qpid/buildtools # Not touched since 2010 qpid/trunk/qpid/doc/dev-readme # Not touched since 2010 qpid/trunk/qpid/etc # Not touched since 2008 ## C++ subtree changes Relocate some docs: cpp/design_docs -> cpp/docs/design cpp/docs/src/* -> cpp/docs/design cpp/DESIGN -> cpp/docs/design/overview.txt cpp/AMQP_1.0 -> cpp/docs/amqp-1.0.txt cpp/SSL -> cpp/docs/ssl.txt cpp/README-HA.txt -> cpp/docs/ha.txt Collect winsdk stuff: cpp/bld-winsdk.ps1 -> cpp/packaging/winsdk/bld-winsdk.ps1 cpp/README-winsdk.ps1 -> cpp/packaging/winsdk/README.txt Clean up names and extensions: cpp/QPID_VERSION.txt -> cpp/VERSION.txt # Matching what Dispatch has cpp/NOTICE -> cpp/NOTICE.txt cpp/LICENSE -> cpp/LICENSE.txt # Using .txt extension for these cpp/INSTALL -> cpp/INSTALL.txt # is widespread practice now cpp/INSTALL-WINDOWS -> cpp/INSTALL-WINDOWS.txt ## Possibly impacted parties - Steve Huston - Windows packaging code (qpid/packaging/windows) - Java broker folks - Relocation of Python qpid_tests may affect Java broker testing ## How to setup the Qpid Python dependency cd qpid/python/trunk ./setup.py install --user export PYTHONPATH=$HOME/.local/lib/python2.7/site-packages export PATH=$HOME/.local/bin:$PATH ## C++ tests Changes: - Run scripts ("run_" scripts) organized by feature area - Run scripts are uniformly named - Run scripts produce temporary work dirs of the form run_script\_name_XXXX - They are removed on test success - All run scripts are runnable directly from src/tests build dir - Python test env and test broker tools - should be cross platform - Permits removal of many scripts that have both bash and powershell variants - Broker creation is more consistent - Broker termination and checking too - Modernized bash scripts Test results after initial relocation: The following tests FAILED: 1 - api_check_qpidtypes (Failed) 2 - api_check_qpidmessaging (Failed) 20 - interop_tests (Failed) 21 - ha_tests (Failed) 22 - qpidd_qmfv2_tests (Failed) 23 - interlink_tests (Failed) 24 - idle_timeout_tests (Failed) Errors while running CTest Makefile:149: recipe for target 'test' failed make: *** [test] Error 8 It was actually worse than this suggests. Lots of the tests silently pass (!) if the python testing tools are not available. Current test results on Fedora 23: Total Test time (real) = 2053.14 sec The following tests FAILED: 1 - api_check_qpidtypes (Failed) [C++11 abi changes] 2 - api_check_qpidmessaging (Failed) [C++11 abi changes] 4 - acl_tests (Failed) [valgrind error] 12 - python_tests (Failed) ["amqp:precondition-failed: No target specified!"] 13 - queue_redirect_tests (Failed) [valgrind error] 26 - linearstore_python_tests (Failed) [valgrind error] Errors while running CTest ## Notes - Gah! Circular dependency. Qpid Python (via qpid.testlib) depends on qpidtoollibs. This should be removed: Qpid C++ depends on Qpid Python and not the reverse in any way. - The new test regime more uniformly runs brokers with valgrind, and this exposes new valgrind errors. - I removed the following test install utils from src/tests: qpid-build-rinstall, install_env.sh, etc. If these are still important, I'd like to bring them back in a subdirectory or a different project altogether. They are not central to the C++ tests. ## Todo - Rewrite the index in qpid/README.txt - Update all the top-level info - Lots of tedious, infuriating Windows testing - Current results at https://ci.appveyor.com/project/ssorj/qpid-svn-reorg/ --089e01227e849395a2052c7c316c--