Return-Path: X-Original-To: apmail-incubator-bloodhound-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-bloodhound-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0C080D934 for ; Thu, 11 Oct 2012 02:55:23 +0000 (UTC) Received: (qmail 16791 invoked by uid 500); 11 Oct 2012 02:55:23 -0000 Delivered-To: apmail-incubator-bloodhound-dev-archive@incubator.apache.org Received: (qmail 16772 invoked by uid 500); 11 Oct 2012 02:55:23 -0000 Mailing-List: contact bloodhound-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: bloodhound-dev@incubator.apache.org Delivered-To: mailing list bloodhound-dev@incubator.apache.org Received: (qmail 16763 invoked by uid 99); 11 Oct 2012 02:55:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Oct 2012 02:55:22 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of brane@wandisco.com designates 209.85.212.177 as permitted sender) Received: from [209.85.212.177] (HELO mail-wi0-f177.google.com) (209.85.212.177) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Oct 2012 02:55:16 +0000 Received: by mail-wi0-f177.google.com with SMTP id hj13so1205389wib.0 for ; Wed, 10 Oct 2012 19:54:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:organization:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding:x-gm-message-state; bh=bLnKSZkoxzgQ/6VhzvW4umvJ2yE5wwypbX42zpKzKog=; b=IZ2wOT/re6hzy/S/8N5U3YpTITMFVcebbJYe4vO5Wp/I383LCM2ZoHHcZ5fpu2sFf9 sPjjSc00PCoT73P1BN96a+L6VRoKw97CsgAiQEGejQlfj/z+ZvnRTvGAWvGfJI0A6xz4 vzdrFtEsGQ6X9JB7/cmkVPdHVX+lHbE1Tz99dzqHkMBNo/8Q2a4qJHie8piaEBl5Nqvj J43BNCfV1zyTRlgy6UFlWQ4va7z8GfnAKTUH6Li7DWBgwF2tsLG5I/EvUVsDTS34YULF XEU6Wm7h+WwaPcIsoZ5+/R/cNS5Z8WOK1e5e1O1jIZUy3ZzjlnNBHasb8iRINs1ISO0w Q9LQ== Received: by 10.216.139.137 with SMTP id c9mr2341916wej.54.1349924094978; Wed, 10 Oct 2012 19:54:54 -0700 (PDT) Received: from zulu.local ([90.157.246.232]) by mx.google.com with ESMTPS id k20sm33197440wiv.11.2012.10.10.19.54.53 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 10 Oct 2012 19:54:53 -0700 (PDT) Message-ID: <507634FC.6060209@wandisco.com> Date: Thu, 11 Oct 2012 04:54:52 +0200 From: =?UTF-8?B?QnJhbmtvIMSMaWJlag==?= Organization: WANdisco User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: bloodhound-dev@incubator.apache.org Subject: Re: Managing plugin dependencies WAS: Tests and CI (was: A word on Release 2) References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Gm-Message-State: ALoCoQmj3rncrH1F4Ajelgx4qlxk/uT7hWRk78cJCCoSKyc1LKvpBe5L8z11dzW9M22XBz35QA8m On 11.10.2012 01:16, Olemis Lang wrote: > On 10/10/12, Peter Koželj wrote: >> 4. And now we want the ticket import/export from/to Jira to work across >> Trac and all other plugins (including ticket relations, multiproducts and >> custom per product workflows plugins) > That's what Interface class in the component architecture is for . In > such a hypothetical case let's limit the discussion to relational SQL > DBs . There will be a component that performs actual import / export > (let's call it SqlMigrationSystem) an Interface (let's call it > ISqlScriptContributor) and multiple components implementing the later > (e.g. one for ticket relations, multiproducts , custom per product > workflows , users , wiki pages , ...) . > > So how could all this work . When user decides to e.g. export all data > then SqlMigrationSystem relies on Trac core to enumerate all the > components implementing that interface . It does not really matter > what plugin they belong to . Etc. Precisely the point. Every plugin that Bloodhound uses for what it considers core functionality must implement this interface, or the whole export/import story falls on its face. Since these are plugins that the Apache Bloodhound project does not control, you either have to ask the plugin authors very nicely to implement that interface, or do it yourself and hope your patches are accepted, or maintain a perpetual stack of patches for every core plugin, or fork the plugin (for which you need a code grant to relicense under ALv2, which ain't gonna happen if you couldn't arrange any of the other options with the author), or write your own plugin providing the same functionality. None of the above is a showstopper, but the interlocked dependencies will make managing feature-stable Bloodhound releases a bit like juggling eggs. It can be done, but you'd better not drop one. :) -- Brane -- Certified & Supported Apache Subversion Downloads: http://www.wandisco.com/subversion/download