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 BCE77D8CA for ; Wed, 10 Oct 2012 17:32:11 +0000 (UTC) Received: (qmail 94474 invoked by uid 500); 10 Oct 2012 17:32:11 -0000 Delivered-To: apmail-incubator-bloodhound-dev-archive@incubator.apache.org Received: (qmail 94449 invoked by uid 500); 10 Oct 2012 17:32:11 -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 94421 invoked by uid 99); 10 Oct 2012 17:32:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Oct 2012 17:32:11 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.210.175] (HELO mail-ia0-f175.google.com) (209.85.210.175) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Oct 2012 17:32:04 +0000 Received: by mail-ia0-f175.google.com with SMTP id b35so556800iac.6 for ; Wed, 10 Oct 2012 10:31:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:x-originating-ip:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :x-gm-message-state; bh=lA1YhP3xgWAtO5Wa0fIrGWgSy0bLMkHpFVxGfVpywpA=; b=Sby8239zGb/ImeOD21OUqbpABRm+lK/JpkYleds//2wsDav7+YBYxPTUPU/eS2ri+4 zhUuto/tzezVfwHleEeP9fljYfKVoHs2xHhvB8xOwKiIU/DOJk+wXCEzmD4sRBPtNaMF pHDWHwe/AIU/0VfmZf4cVUr6ug2PXMkkBQv10Ydtv1DmPnZDY9Irel1KvpA+1vUCEi8y ygW21uYh0K62doqAyZMMPAqSt53SV3GO7KKuCT4PqwYdOYZXcCrTuq2JDZRhKpCu2iy0 fCHrMP9JZd205yfUN+Pl445oB11sV3N2KXUHXoZKIc/0OozRt3Kg7cmTuauEb88stnvl Wifw== MIME-Version: 1.0 Received: by 10.50.173.7 with SMTP id bg7mr6118546igc.65.1349889996390; Wed, 10 Oct 2012 10:26:36 -0700 (PDT) Sender: peter@xlii.si Received: by 10.64.41.99 with HTTP; Wed, 10 Oct 2012 10:26:36 -0700 (PDT) X-Originating-IP: [188.198.4.88] In-Reply-To: References: Date: Wed, 10 Oct 2012 19:26:36 +0200 X-Google-Sender-Auth: RTsmlnIgF-yQq1-JUMXp-RQ0b5o Message-ID: Subject: Re: Tests and CI (was: A word on Release 2) From: =?UTF-8?Q?Peter_Ko=C5=BEelj?= To: bloodhound-dev@incubator.apache.org Content-Type: multipart/alternative; boundary=e89a8f838a55b8830904cbb7c123 X-Gm-Message-State: ALoCoQlPZ6p+UU9X3Q/Nq5jLX8bzx/tK4lz4PaOMsHxGFd18vVZeeaC3L/VZrDv9Ar8nJ7mPhgVX --e89a8f838a55b8830904cbb7c123 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I admit it, some of my fears could just be the cause of the fact that I am not familiar with Trac plugin architecture and the Trac plugin ecosystem as a whole yet. Just a few use cases for quick "does it float" test: 1. Let's say we adopt some plugins for multiproducts, ticket relations, data import/export and so on... 2. Then we want to add user (admin) defined ticket relation per product 3. And then we want to support custom ticket workflows per product and per ticket type 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) 5. Add white labeling across Trac and all other plugins 6. Implement new search query language that will understand tickets, products and relations 7. Add REST API's for all of the above 8. ... Now, all this plugins (products, relations, import, export, search, white labeling, new search...) will either have to know filthy little details about each other (complex inter-plugin dependency) or some super heavy shifting in the plugin interface will be necessary. And that super heavy shifting will have to be pushed back to Trac (if it wants it) and only then to these plugins or create new Bloodhound plugin API on top of Trac plugin API and then request plugin authors to support it. Am I missing something? Peter On Wed, Oct 10, 2012 at 5:22 PM, Olemis Lang wrote: > On 10/10/12, Ryan Ollos wrote: > > On Wed, Oct 10, 2012 at 1:27 AM, Peter Ko=C5=BEelj > wrote: > > > >> This my get a bit off topic... > >> > >> I agree that testing is important, and we probably agree that testing = is > >> hard. > >> In fact a good comprehensive test of a feature can take more effort to > >> write and maintain that the actual code that implements that feature. > > +1 > > >> So > >> if > >> plugins do not provide it's own tests and we need to write and maintai= n > >> the > >> tests for them, the benefit of using them get's smaller. > >> > > Well . The real benefit is that we'll be able to sleep at night > knowing that if some change is introduced (Bloodhound core , > trac-hacks , plugins ...) and causes some trouble then we are just one > day away to figure it out ... especially if CI is installed . > ;) > > For me the benefit exists , but we certainly need to assess the > additional workload involved and write tests when necessary . > > >> I still need to come to terms > >> with the idea that such a core functionality as ticket relations or > multi > >> products needs to be a plugin or even worse an external plugin! With a= ll > >> the features I would like to see in a issue tracker, I just can not > >> imagine > >> how this will work without complex inter-plugin dependencies, > >> extremely cooperational plugin authors > > Notice that we are plugin maintainers of many plugins @ t-h.o , so no big > deal > > > ... and I swear I'll cooperate with Ryan as long as at any given time > the number of test cases he writes is smaller than those I wrote ... > > > >> and last but no least, all the > >> time > >> in the world :) > >> > > Oh no ! No way . Exactly the same time as we were doing it using a > plugin delivered by Bloodhound itself . In case plugin maintainers are > not responsive and not willing to grant maintainership ... is not a > chaos ... we can fork the project if there's a merit > > > > > I agree that you may not want the critical Bloodhound functionality to > live > > externally, and to rely on developers not involved with the Bloodhound > > project to maintain it. It might be better to have any critical > > functionality be written as a plugin that lives in the Bloodhound > > Indeed , we *NEED* plugin authors . There's no community without them > ;) > > > The idea of the functionality not being a plugin is more > > difficult for me to imagine. > > > > definitely sure . Trac itself , I mean the core (tickets , vcs , ...) > maybe packaged as separate plugins as well . > > > Not writing it as a plugin means you are > > just modifying existing Components in Trac (such as trac.ticket.*) to > > provide your functionality, and this would make merging from the Trac > > mainline more difficult, and in which case the tests potentially become > > even more important. > > > > Interesting . Not necessarily harder . That depends . Indeed we have > overridden TicketModule but in a clever way (Gary is guilty for that > ;) so as make merge process easier . > > > A feature like ticket dependencies could be written as a plugin (i.e. > > Component) that is maintained within Bloodhound and is always enabled i= n > > the Bloodhound core, which might get around some of your concerns about > > relying on one or more external plugins to provide critical > functionality. > > > > oh no ! > IMO unless there's a good reason to do so , that's a waste of time . > That's what trac-hacks are there for . > > -- > Regards, > > Olemis. > > Blog ES: http://simelo-es.blogspot.com/ > Blog EN: http://simelo-en.blogspot.com/ > > Featured article: > --e89a8f838a55b8830904cbb7c123--