Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3791B200B0F for ; Fri, 17 Jun 2016 11:13:17 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 363C0160A61; Fri, 17 Jun 2016 09:13:17 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 7C2BA160A50 for ; Fri, 17 Jun 2016 11:13:16 +0200 (CEST) Received: (qmail 5462 invoked by uid 500); 17 Jun 2016 09:13:15 -0000 Mailing-List: contact dev-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "POI Developers List" Delivered-To: mailing list dev@poi.apache.org Received: (qmail 5450 invoked by uid 99); 17 Jun 2016 09:13:15 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jun 2016 09:13:15 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id E6E0AC0599 for ; Fri, 17 Jun 2016 09:13:14 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.121 X-Spam-Level: X-Spam-Status: No, score=-0.121 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id q_y74h88DBbL for ; Fri, 17 Jun 2016 09:13:10 +0000 (UTC) Received: from mail-yw0-f177.google.com (mail-yw0-f177.google.com [209.85.161.177]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with ESMTPS id 61F5E5F5CC for ; Fri, 17 Jun 2016 09:13:10 +0000 (UTC) Received: by mail-yw0-f177.google.com with SMTP id g20so66475285ywb.0 for ; Fri, 17 Jun 2016 02:13:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=kuAds5H3Q45FTXFIxCldfMuOO0x8MxkFxq6Lbvep814=; b=m9XHXRzjUC2aeYWP+8d/JjHWnFFE3B/draRcQY2C7K6YSOtL4NXt7x9fsFsZRyT6i2 tULVY94/6utggfpZn02hvRNYOX7sqIyzVmibzIiYTxmzMyyMZiNHsKrcbOJfwtxI9J+m MjpL6362YmdaZHefSPYdCX2A9530Q7fgwPtLJ67fL9SLLz60dPmVGR5mcKT/FYQ5T5XG gyjYaiEH9oKcL39yHJzZBBT+8nJGvPabZxfkz2u+Mkw2zm7v2FK5k7wGKKWrjZPu8DYF +0s8XhIFMzifBZgVUemWq/5hR9nNGnRjJSrXTyCf5wcRquThSS9DIMWg0M5P9L8/7MXn aSiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=kuAds5H3Q45FTXFIxCldfMuOO0x8MxkFxq6Lbvep814=; b=YQceItizFTnscjegf0PiLuK9NTxpBbMoBHvS2MGyr+Ran2FYUBYm/gPC9KgSVYjrJi GjE22hHog7RlCd+8CHcSReZLOA0N+VdrCcp6pDw3nq2v9SJ2jGgasZgJocUMK8VMwgOT F+HUV/QMEPS6ZQDjd43wi1kh/XxDxGRI/fY0pWhE5AN4kzAG1bcsoP94eqIi1CiAeA/J Rs43BX2oiv+f25CgohotSlQEp95KKyeaN8e04aMm+JjYnuCmjHspPH0TkS+eeRWrHqv+ PTVNJjE7XLk6QDIbIyZPu1Ec4svVtUO+3eHqTRHILE94JYyiTPg2wNcPYjyahjzLrXM4 aFjg== X-Gm-Message-State: ALyK8tKC9LIsEGj/69l3+uQuYsQf5koj1zLBpfMthW1UZyVAqZHeJ5Oz72lEbi1VgRiSDwArGtC1ZWh6EnQzJw== X-Received: by 10.129.116.138 with SMTP id p132mr495219ywc.49.1466154789421; Fri, 17 Jun 2016 02:13:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.217.200 with HTTP; Fri, 17 Jun 2016 02:12:30 -0700 (PDT) In-Reply-To: <56558606.7070608@corefiling.co.uk> References: <56550453.7030407@apache.org> <56558606.7070608@corefiling.co.uk> From: "Javen O'Neal" Date: Fri, 17 Jun 2016 02:12:30 -0700 Message-ID: Subject: Re: deprecated handling - reloaded To: POI Developers List Content-Type: text/plain; charset=UTF-8 archived-at: Fri, 17 Jun 2016 09:13:17 -0000 On 2015-11-24, Andreas Beeker said: > So lets assume we add a version comment to each deprecated element for a later removal. > In this case we have to check the logic twice, when deprecating it and when removing it. As I've been deleting long-since deprecated methods and classes, I have gained an appreciation for javadocs which specified what replaces the deprecated method. If it's more complicated than adding or removing a parameter, reordering the parameters, changing the spelling of a method, or using a 1:1 replacement (a method that returns the width in pixels as a double rather than 1/256 of a point), then there really does need to be a deprecation notice and an explanation to help users upgrade their code. Even if users jump 5 POI versions at a time, they could do that by jumping 2 versions at a time or jump the entire distance and bisect the docs to know how to upgrade their code (classes getting added, removed, renamed, relocated, consolidated, split, etc). It is too much to ask users to read through the changelog for all the skipped versions, the comments and attachments for each bug associated with an item in the changelog, and the commits made for those bugs (which may not have been referenced in the bug) to understand what class or method replaced the class or method they were using. Even for trivial replacements, the commit before removing a method/class should show what the replacement is--though preferably that deprecation warning would linger for at least 1 if not 2 final releases. On Wed, Nov 25, 2015 at 1:57 AM, David North wrote: > On 25/11/15 06:40, Javen O'Neal wrote: >> Tldr: >> Here's what I propose: >> 1) contributors should add dates and/or POI versions to @deprecated >> annotations for new commits >> 2) contributors should add @since version annotations to new features >> 3) new features may be removed without deprecation only if added prior to a >> final build and removed before or during the next final build (same release >> series) > Makes sense to me. >> ... >> Can we automatically check for `@deprecated ` or >> `@since ` in Jenkins? > > That's crucial in my view: we've got to have automated enforcement that > this kind of metadata is being kept accurate and acted upon, otherwise > it will rapidly become an out of date embarassement. > > A bit of Googling doesn't come up with any obvious tools for inspecting > the deprecated tag in JavaDoc, however if we did something like this:- > > * Use the @Deprecated annotation in addition to the JavaDoc tag (which > is useful for some IDEs anyway) > * Invent our own @Removal annodation to contain the date/POI version of > expected removal > > Then it would be easy to write a functional test which used reflection > to check all @Deprecated annotated elements had an @Removal too, and to > tell us when things come up as due to be removed. > > David > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org > For additional commands, e-mail: dev-help@poi.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org For additional commands, e-mail: dev-help@poi.apache.org