Return-Path: X-Original-To: apmail-jmeter-dev-archive@minotaur.apache.org Delivered-To: apmail-jmeter-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 0A3F717EAA for ; Sun, 2 Nov 2014 20:29:46 +0000 (UTC) Received: (qmail 94033 invoked by uid 500); 2 Nov 2014 20:29:45 -0000 Delivered-To: apmail-jmeter-dev-archive@jmeter.apache.org Received: (qmail 94002 invoked by uid 500); 2 Nov 2014 20:29:45 -0000 Mailing-List: contact dev-help@jmeter.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jmeter.apache.org Delivered-To: mailing list dev@jmeter.apache.org Received: (qmail 93989 invoked by uid 99); 2 Nov 2014 20:29:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Nov 2014 20:29:45 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=FREEMAIL_REPLY,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of jens.dietrich@gmail.com designates 209.85.192.43 as permitted sender) Received: from [209.85.192.43] (HELO mail-qg0-f43.google.com) (209.85.192.43) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Nov 2014 20:29:19 +0000 Received: by mail-qg0-f43.google.com with SMTP id f51so7835399qge.2 for ; Sun, 02 Nov 2014 12:29:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=hXTVCYQSNDsoqjNEZ+4Jym6XxHsqEgWjo2a1Bpa8JsM=; b=G0jEz5AI9/GNf9Otdur44xI9u9h5/epTCQu+ogHfDgP4r5IZo8ymMOKs5sGQVkiGim r+go9zsvYnjK8sjfSQiuSnYW+gGxT8LV+TuX3gyZt5BRB3bz8tBRgt1NDidKLIqg77Un MM4iQLKIkP2hv4yDGIjkjZU6mXtyZwUwYnk4oWP60U6dSVGWgtnFH9y/2Ofigk6S/3qF BueZx0Epv6od6c/dQ7Rcpl2QhU+BLPM5ENZTXPZwxFxViRsSHX1YPtwivUwkDASDqCjL orvAvOCem3Otef4rF2n7b9SC8YVqyP7uoy+hCpqbgIRX3FnAIj6T3B5ZoVqvBss1ynVQ Kz/w== MIME-Version: 1.0 X-Received: by 10.229.83.134 with SMTP id f6mr57741422qcl.22.1414960158520; Sun, 02 Nov 2014 12:29:18 -0800 (PST) Received: by 10.140.101.226 with HTTP; Sun, 2 Nov 2014 12:29:18 -0800 (PST) In-Reply-To: References: Date: Mon, 3 Nov 2014 09:29:18 +1300 Message-ID: Subject: Re: API stability and versioning From: Jens Dietrich To: dev@jmeter.apache.org Content-Type: multipart/alternative; boundary=001a1133c8a09ebb220506e6150b X-Virus-Checked: Checked by ClamAV on apache.org --001a1133c8a09ebb220506e6150b Content-Type: text/plain; charset=UTF-8 Hi Philippe, Thanks for the info, this is helpful. The link I sent pointed to the project meta data in the corpus dataset, not to the actual study. A preprint of the study is available here: https://sites.google.com/site/jensdietrich/publications/preprints (its the first document, "Broken Promises .."). There are also some slides that summarise this project and a developer survey on the topic (with surprising results): http://www.slideshare.net/JensDietrich/what-java-developers-dont-know-about-api-compatibility-35628432 . It would be interesting to get more input on the version policy used. Have you used tools like clirr in the project, and are you aware of semantic versioning initiatives like semver.org ? Cheers, Jens On Sat, Nov 1, 2014 at 3:59 AM, Philippe Mouawad wrote: > Hello Jens, > > Thank you for your interest in JMeter. > Interesting study. > 1 question on it: > - Clicking on the provided link, how can we see this analysis of "stable > API" ? > > > Some answsers, only my 2 cents: > - We take care in the project not to break existing behaviour unless > clearly documented in changes, but I don't see a direct link with API. > - We also tend to conserve backward compatibiliy regarding properties (and > related behaviour) and the "public" APIs , among them I see: > > - SampleResult > - JMeterVariables > - JMeterContext > - Sampler > - BeanInfoSupport > > - Regarding "internal APIs" more related to plugin development, we nearly > have an Abstract base class for all of them in order to ease changes > without breaking subclasses, but this can happen, I remember it happened in > version 2.10 I think > - We have a number of Unit Test and Overall Tests (that run JMeter on > Sample Test plans) that we maintain accross versions > - Regarding version numbers, our policy is to increase the second number > for major versions and the last one for hotfixes. The first one is in fact > very rarely updated and maybe sebb can answer on why a switch from 1.9.1 to > 2.0.1 occured in the past > > > Regards > Philippe M. > @philmdot > > On Mon, Oct 20, 2014 at 3:34 AM, Jens Dietrich > wrote: > > > Hi all, > > > > My name is Jens Dietrich, I am an academic from Massey Uni in NZ. > > > > We recently did a study on (binary and src) compatibility in Java > > programs using the Qualitas Corpus dataset of about 100 real-world > > Java programs. JMeter is part of this data set (see > > > > > http://qualitascorpus.com/docs/catalogue/20130901/corpus_catalogue-jmeter.html > > for some extracted stats), and is unique as it was one of only two > > programs (the other one being FreeCol) that are "API stable", i.e., we > > did not detect API-breaking changes (like changing the signatures or > > API methods) between versions. > > > > I wonder whether somebody could offer some insights why this is the > > case. Are there any particular project-specific policies to ensure API > > stability, and if so, how are they enforced? Also, how are the > > decisions about version numbers being made ? > > > > Any help is highly appreciated ! > > > > Cheers, Jens > > > > > > -- > Cordialement. > Philippe Mouawad. > --001a1133c8a09ebb220506e6150b--