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 2C0F6200B82 for ; Thu, 1 Sep 2016 15:16:23 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 2AD83160AB5; Thu, 1 Sep 2016 13:16:23 +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 4CC92160ACA for ; Thu, 1 Sep 2016 15:16:22 +0200 (CEST) Received: (qmail 3147 invoked by uid 500); 1 Sep 2016 13:16:21 -0000 Mailing-List: contact issues-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@cordova.apache.org Received: (qmail 2809 invoked by uid 99); 1 Sep 2016 13:16:21 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Sep 2016 13:16:21 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 1D5442C1B82 for ; Thu, 1 Sep 2016 13:16:21 +0000 (UTC) Date: Thu, 1 Sep 2016 13:16:21 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: issues@cordova.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CB-11795) Introduce cordovaDependencies to all core plugins MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 01 Sep 2016 13:16:23 -0000 [ https://issues.apache.org/jira/browse/CB-11795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15455342#comment-15455342 ] ASF GitHub Bot commented on CB-11795: ------------------------------------- GitHub user vladimir-kotikov opened a pull request: https://github.com/apache/cordova-plugin-media/pull/115 CB-11795 Add 'protective' entry to cordovaDependencies ### Checklist - [ ] [ICLA](http://www.apache.org/licenses/icla.txt) has been signed and submitted to secretary@apache.org. - [ ] [Reported an issue](http://cordova.apache.org/contribute/issues.html) in the JIRA database - [ ] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected. - [ ] Added automated test coverage as appropriate for this change. The entry is required to protect end-users from fetching edge versions of the plugin by incompatible version of cordova. This also assumes that we will not introduce any regressions in compatibility w/ cordova in minor and patch releases. On every major release we will need to add similar entry with _next_ major version. You can merge this pull request into a Git repository by running: $ git pull https://github.com/vladimir-kotikov/cordova-plugin-media CB-11795 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cordova-plugin-media/pull/115.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #115 ---- commit 9ff23a24c14e4b558bb72660690c3efae42ca092 Author: Vladimir Kotikov Date: 2016-08-31T14:33:54Z CB-11795 Add 'protective' entry to cordovaDependencies The entry is required to protect end-users from fetching edge versions of the plugin by incompatible version of cordova. This also assumes that we will not introduce any regressions in compatibility w/ cordova in minor and patch releases. On every major release we will need to add similar entry with _next_ major version. ---- > Introduce cordovaDependencies to all core plugins > ------------------------------------------------- > > Key: CB-11795 > URL: https://issues.apache.org/jira/browse/CB-11795 > Project: Apache Cordova > Issue Type: Task > Security Level: Public(Anyone can view this level - this is the default.) > Components: AllPlugins > Reporter: Vladimir Kotikov > Assignee: Vladimir Kotikov > Labels: triaged > > We've been researching ways to prevent cordova workflow breakages, caused by installing edge versions of the plugins, which possibly could be incompatible with cordova version, used by user. This is IMO a very nasty sort of problems, because it might cause unpredictable build- and runtime failures of cordova setup which has been working perfectly previously. > A typical example of this scenario is when some plugin introduces a change incompatible w/ some particular cordova version and doesn't update {{cordovaDependencies}} property in its' package.json correspondingly. > To prevent such breakages and avoid negative user experience I propose to start using {{cordovaDependencies}} in core plugins in a following way: > # For every plugin we maintain, we add `cordovaDependencies` to its' > package.json w/ the following entry > {noformat} > CURRENT_PLUGIN_VERSION: { cordova: >= LATEST_SUPPORTED_CORDOVA_VERSION } > {noformat} > We will try to determine the {{LATEST_SUPPORTED_CORDOVA_VERSION}} based on release > notes and most significant changes in plugins, but probably we can safely use 6.1.0 here because new version choosing logic for {{plugin add}} was introduced in this version and older versions of cordova will not use {{cordovaDependencies}} anyway. > Also for some plugins adding such entry doesn't make sense because they will work with any version of cordova, so for these plugins this step could be omitted. > # For every plugin we add additional 'protective' entry > {noformat} > NEXT_MAJOR_PLUGIN_VERSION: { cordova: >= 100 } > {noformat} > There are 2 purposes for this: > - if there is a major plugin update that potentially would broke compatibility > with some cordova versions, this will protect users against installing this > major update, unless plugin maintainers update `cordovaDependencies` by adding > corresponding entry for this plugin version. > In other words, if we've introduced a breaking change and forgot to update {{cordovaDependencies}} correspondingly to reflect that the change requires a specific cordova version, user will not get this plugin update. > - By some reason without such 'protective' entry in case if {{NEXT_MAJOR_PLUGIN_VERSION}} gets released without adding corresponding entry to {{cordovaDependencies}} (i.e. we don't have any restrictions for this version in {{cordovaDependencies}}) - cordova will fetch that version without any checks. > This is sounds non-obviously for me and probably there is some reason behind installing plugin version, which we can't verify requirements for, but this is how it works. > 3. When we introduce a change that requires us to change plugin version to {{NEXT_MAJOR_PLUGIN_VERSION}}, we go and fix {{cordovaDependencies}} by changing > cordova requirement for {{NEXT_MAJOR_PLUGIN_VERSION}} to actual value instead of 100 and introducing > {noformat} > ANOTHER_NEXT_MAJOR_PLUGIN_VERSION: { cordova: >= 100 }}} > {noformat} > entry. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org For additional commands, e-mail: issues-help@cordova.apache.org