Only the first PR should be broken if cve with a higher score than agreed is 
introduced .Once you whitelist subsequent builds will not fail?

- The dependency check plugin is enabled to fail/break the build if a violation 
is detected
- A PR introducing a risk will either “acknowledge” the cve by creating the 
whitelist entry as part of the process or will break the build
- The reviewer/s would notice either the changes to the whitelist file or the 
build break
- The review process would agree upon the approach and ensure JIRA ticket 
creation or question why an alternative cannot be used
- whitelist would be maintained in a suppressions file example given here 
https://jeremylong.github.io/DependencyCheck/general/suppression.html
- subsequent PR update should no longer break the build 
- there is a list of JIRA items for cve which needs to be addressed in the 
subsequent releases as well as a set of artefacts in the project modules that 
summarise the community’s awareness of the issue.


Regards
Ananth

> On 3 Nov 2017, at 8:38 am, Pramod Immaneni <pra...@datatorrent.com> wrote:
> 
> The question is which build? We can definitely make it a mandatory release
> step and also have nightly builds that are meant for just these, detection
> of CVEs and even possible infra changes that might break tests. Those will
> work even if there are no PRs.
> 
>> On Thu, Nov 2, 2017 at 1:21 PM, Ananth G <ananthg.a...@gmail.com> wrote:
>> 
>> My vote would be to break the build. This can then force a “whitelisting”
>> configuration in the maven plugin to be created as part of the review
>> process ( along with a new JIRA ticket ).
>> 
>> The concern would then be to ensure that the community works towards a
>> resolution of the JIRA. Not breaking the build for me is tech debt slipping
>> without anyones notice.  Fixing the JIRA is a hygiene process which I
>> believe cannot take a back burner as compared contributor welfare and would
>> need commitments from the contributor ( and/or others).
>> 
>> On a related note, looking at apache spark, there seems to be CVE listings
>> which the spark community has taken care of as the releases progressed.
>> http://www.cvedetails.com/vulnerability-list/vendor_id-
>> 45/product_id-38954/Apache-Spark.html <http://www.cvedetails.com/
>> vulnerability-list/vendor_id-45/product_id-38954/Apache-Spark.html> .
>> 
>> Regards,
>> Ananth
>> 
>> 
>>> On 3 Nov 2017, at 4:48 am, Sanjay Pujare <san...@datatorrent.com> wrote:
>>> 
>>> I like this suggestion. Blocking the PR is too drastic. I also second
>>> Pramod's point (made elsewhere) that we should try to encourage
>>> contribution instead of discouraging it by resorting to drastic measures.
>>> If you institute drastic measures to achieve a desired effect (e.g.
>> getting
>>> contributors to look into CVEs and build infrastructure issues) it can
>> have
>>> the opposite effect of contributors losing interest.
>>> 
>>> Sanjay
>>> 
>>> 
>>> 
>>>> On Wed, Nov 1, 2017 at 1:25 PM, Thomas Weise <t...@apache.org> wrote:
>>>> 
>>>> Considering typical behavior, unless the CI build fails, very few will
>> be
>>>> interested fixing the issues.
>>>> 
>>>> Perhaps if after a CI failure the issue can be identified as
>> pre-existing,
>>>> we can whitelist and create a JIRA that must be addressed prior to the
>> next
>>>> release?
>>>> 
>>>> 
>>>> On Wed, Nov 1, 2017 at 7:51 PM, Pramod Immaneni <pra...@datatorrent.com
>>> 
>>>> wrote:
>>>> 
>>>>> I would like to hear what others think.. at this point I am -1 on
>> merging
>>>>> the change as is that would fail all PR builds when a matching CVE is
>>>>> discovered regardless of whether the PR was the cause of the CVE or
>> not.
>>>>> 
>>>>>> On Wed, Nov 1, 2017 at 12:07 PM, Vlad Rozov <vro...@apache.org> wrote:
>>>>>> 
>>>>>>> On 11/1/17 11:39, Pramod Immaneni wrote:
>>>>>>> 
>>>>>>> On Wed, Nov 1, 2017 at 11:36 AM, Vlad Rozov <vro...@apache.org>
>>>> wrote:
>>>>>>> 
>>>>>>> There is no independent build and the check is still necessary to
>>>>> prevent
>>>>>>>> new dependencies with CVE being introduced.
>>>>>>>> 
>>>>>>>> There isn't one today but one could be added. What kind of effort is
>>>>>>> needed.
>>>>>>> 
>>>>>> After it is added, we can discuss whether it will make sense to move
>>>> the
>>>>>> check to the newly created build. Even if one is added, the check
>> needs
>>>>> to
>>>>>> be present in the CI builds that verify PR, so it is in the right
>> place
>>>>>> already, IMO.
>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Look at Malhar 3.8.0 thread. There are libraries from Category X
>>>>>>>> introduced as a dependency, so now instead of dealing with the issue
>>>>> when
>>>>>>>> such dependencies were introduced, somebody else needs to deal with
>>>>>>>> removing/fixing those dependencies.
>>>>>>>> 
>>>>>>>> Those were directly introduced in PRs. I am not against adding
>>>>> additional
>>>>>>> checks that verify the PR better.
>>>>>>> 
>>>>>> Right and it would be much better to catch the problem at the time it
>>>> was
>>>>>> introduced, but Category X list (as well as known CVE) is not static.
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> Thank you,
>>>>>>>> 
>>>>>>>> Vlad
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 11/1/17 11:21, Pramod Immaneni wrote:
>>>>>>>> 
>>>>>>>> My original concern still remains. I think what you have is valuable
>>>>> but
>>>>>>>>> would prefer that it be activated in an independent build that
>>>>> notifies
>>>>>>>>> the
>>>>>>>>> interested parties.
>>>>>>>>> 
>>>>>>>>> On Wed, Nov 1, 2017 at 11:13 AM, Vlad Rozov <vro...@apache.org>
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Any other concerns regarding merging the PR? By looking at the
>>>> active
>>>>>>>>> PRs
>>>>>>>>> 
>>>>>>>>>> on the apex core the entire conversation looks to be at the moot
>>>>> point.
>>>>>>>>>> 
>>>>>>>>>> Thank you,
>>>>>>>>>> 
>>>>>>>>>> Vlad
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 10/30/17 18:50, Vlad Rozov wrote:
>>>>>>>>>> 
>>>>>>>>>> On 10/30/17 17:30, Pramod Immaneni wrote:
>>>>>>>>>> 
>>>>>>>>>>> On Sat, Oct 28, 2017 at 7:47 AM, Vlad Rozov <vro...@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Don't we use unit test to make sure that PR does not break an
>>>>>>>>>>>> existing
>>>>>>>>>>>> 
>>>>>>>>>>>> functionality? For that we use CI environment that we do not
>>>>> control
>>>>>>>>>>>>> and do
>>>>>>>>>>>>> not introduce any changes to, but for example Apache
>>>>> infrastructure
>>>>>>>>>>>>> team
>>>>>>>>>>>>> may decide to upgrade Jenkins and that may impact Apex builds.
>>>> The
>>>>>>>>>>>>> same
>>>>>>>>>>>>> applies to CVE. It is there to prevent dependencies with severe
>>>>>>>>>>>>> vulnerabilities.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Infrastructure changes are quite different, IMO, from this
>>>>> proposal.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> While
>>>>>>>>>>>> they are not in our control, in majority of the cases, the
>>>> changes
>>>>>>>>>>>> maintain
>>>>>>>>>>>> compatibility so everything on top will continue to run the
>> same.
>>>>> In
>>>>>>>>>>>> this
>>>>>>>>>>>> case a CVE will always fail all PRs, the code changes have
>>>> nothing
>>>>> to
>>>>>>>>>>>> do
>>>>>>>>>>>> with introducing the CVE. I did make the exception that if a PR
>>>> is
>>>>>>>>>>>> bringing
>>>>>>>>>>>> in the CVE yes do fail it.
>>>>>>>>>>>> 
>>>>>>>>>>>> There were just two recent changes, one on Travis CI side and
>>>>> another
>>>>>>>>>>>> 
>>>>>>>>>>> on
>>>>>>>>>>> Jenkins side that caused builds for all PRs to fail and none of
>>>> them
>>>>>>>>>>> was
>>>>>>>>>>> caused by code changes in any of open PRs, so I don't see how it
>>>> is
>>>>>>>>>>> different.
>>>>>>>>>>> 
>>>>>>>>>>> A code change may or may not have relation to CVE introduced. For
>>>>>>>>>>> newly
>>>>>>>>>>> introduced dependencies, there may be known CVEs. In any case I
>>>>> don't
>>>>>>>>>>> think
>>>>>>>>>>> it is important to differentiate how CVE is introduced, it is
>>>>>>>>>>> important
>>>>>>>>>>> to
>>>>>>>>>>> eliminate dependencies with known CVEs.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> There is no "stick" in a failed build or keeping PR open until
>>>>>>>>>>>> dependency
>>>>>>>>>>>> 
>>>>>>>>>>>> issue is resolved or unit test failure is fixed. Unless an
>>>> employer
>>>>>>>>>>>>> punishes its employee for not delivering PR based on that
>> vendor
>>>>>>>>>>>>> priority,
>>>>>>>>>>>>> there is no "stick". As we already discussed, the community
>> does
>>>>> not
>>>>>>>>>>>>> have a
>>>>>>>>>>>>> deadline for a PR merge or for a release to go out. In a case
>>>>> there
>>>>>>>>>>>>> is a
>>>>>>>>>>>>> problematic dependency (with CVE or category X license) you as
>> a
>>>>> PMC
>>>>>>>>>>>>> suppose to -1 a release (at least I will). Will you consider -1
>>>>> as a
>>>>>>>>>>>>> "stick"? For me, it is not about punishing an individual
>>>>>>>>>>>>> contributor,
>>>>>>>>>>>>> it is
>>>>>>>>>>>>> a priority and focus shift for the entire community, not a
>>>> "stick"
>>>>>>>>>>>>> for
>>>>>>>>>>>>> an
>>>>>>>>>>>>> individual contributor.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> The stick I am referring to is failing all PRs hoping that will
>>>>> make
>>>>>>>>>>>>> 
>>>>>>>>>>>>> people
>>>>>>>>>>>> address CVEs. It's got nothing to do with an employer, people
>>>>>>>>>>>> contributing
>>>>>>>>>>>> to open source can't expect they can control what the outcome
>>>> will
>>>>> be
>>>>>>>>>>>> or
>>>>>>>>>>>> what form it will take. You may be confusing this with some
>> other
>>>>>>>>>>>> issue.
>>>>>>>>>>>> In
>>>>>>>>>>>> some of the arguments, you are assuming this scenario is similar
>>>> to
>>>>>>>>>>>> build
>>>>>>>>>>>> failures from failing unit tests and I am arguing that premise.
>> I
>>>>>>>>>>>> don't
>>>>>>>>>>>> think we should bring regular development to a halt whenever a
>>>>>>>>>>>> matching
>>>>>>>>>>>> CVE
>>>>>>>>>>>> is discovered, unless there is some other secondary reason like
>>>>>>>>>>>> merging a
>>>>>>>>>>>> PR will make it difficult for a CVE fix to be made. Have you
>>>> given
>>>>> a
>>>>>>>>>>>> thought to what I said about having a separate build that will
>>>>> notify
>>>>>>>>>>>> about
>>>>>>>>>>>> CVEs.
>>>>>>>>>>>> 
>>>>>>>>>>>> As I mentioned, there is no stick, no deadlines and no issues
>>>>> keeping
>>>>>>>>>>>> 
>>>>>>>>>>> PRs
>>>>>>>>>>> open until builds can be verified on CI environment. Fixing a
>>>> failed
>>>>>>>>>>> build
>>>>>>>>>>> is a priority for the *community* not a stick for an individual
>>>>>>>>>>> contributor.
>>>>>>>>>>> 
>>>>>>>>>>> I don't see why keeping PRs open (for whatever reason) brings
>>>>> regular
>>>>>>>>>>> development to a halt. Nobody is going to put github repo
>> offline.
>>>>>>>>>>> Contributors may continue to open new PR, collaborate on existing
>>>>> PRs
>>>>>>>>>>> and
>>>>>>>>>>> add more changes (and need to be patient for those changes to be
>>>>>>>>>>> reviewed
>>>>>>>>>>> and accepted). The regular development will continue with the
>> only
>>>>>>>>>>> exception that the next commit to be merged must address the
>> build
>>>>>>>>>>> issue
>>>>>>>>>>> (whether it is a failed unit test or newly found CVE).
>>>>>>>>>>> 
>>>>>>>>>>> I don't see much value in a separate build and do not plan to put
>>>>>>>>>>> effort
>>>>>>>>>>> in that direction. Additionally, will not a separate build that
>>>> only
>>>>>>>>>>> checks
>>>>>>>>>>> for CVE will trigger your initial concern of disclosing CVE in
>>>>> public?
>>>>>>>>>>> 
>>>>>>>>>>> Thank you,
>>>>>>>>>>> 
>>>>>>>>>>>> Vlad
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On 10/27/17 14:28, Pramod Immaneni wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Fri, Oct 27, 2017 at 11:51 AM, Vlad Rozov <
>> vro...@apache.org
>>>>> 
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On 10/26/17 11:46, Pramod Immaneni wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Thu, Oct 26, 2017 at 10:39 AM, Vlad Rozov <
>>>> vro...@apache.org>
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I guess you are mostly concerned regarding new CVE in an
>>>>> existing
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> dependency. Once such CVE is added to a database, will it be
>>>>>>>>>>>>>>>> better
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>> know
>>>>>>>>>>>>>>>>> about it or postpone discovery till we cut release
>>>> candidate?
>>>>> In
>>>>>>>>>>>>>>>>> case
>>>>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>> reported only during release cycle, there is much less time
>>>>> for
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>> community to take an action and it still needs to be taken
>>>>> (as a
>>>>>>>>>>>>>>>>> PMC
>>>>>>>>>>>>>>>>> member
>>>>>>>>>>>>>>>>> you are responsible for preventing release with severe
>>>>> security
>>>>>>>>>>>>>>>>> issue
>>>>>>>>>>>>>>>>> going
>>>>>>>>>>>>>>>>> out). If it is reported once the information becomes
>>>>> available,
>>>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>> more time to research and either upgrade the dependency
>> with
>>>>>>>>>>>>>>>>> newly
>>>>>>>>>>>>>>>>> found
>>>>>>>>>>>>>>>>> CVE, agree that it does not impact the project.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> This would be the more commonly occurring scenario. We can
>>>>>>>>>>>>>>>>> always
>>>>>>>>>>>>>>>>> know
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> about the CVEs because of your changes. We don't need to
>>>> fail
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> builds to
>>>>>>>>>>>>>>>> do
>>>>>>>>>>>>>>>> that. I am not asking you to remove the reporting. There is
>>>> no
>>>>>>>>>>>>>>>> set
>>>>>>>>>>>>>>>> time
>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>> a release so having less time during release for addressing
>>>>>>>>>>>>>>>> relevant
>>>>>>>>>>>>>>>> CVEs
>>>>>>>>>>>>>>>> does not come up. There is also nothing preventing anyone
>>>> from
>>>>>>>>>>>>>>>> looking
>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>> these reports and taking action earlier.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I don't see why it will be more commonly occurring scenario,
>>>>> but
>>>>>>>>>>>>>>>> I
>>>>>>>>>>>>>>>> think
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> it is equally important to prevent new dependency with
>> severe
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> vulnerabilities being introduced into the project and check
>>>>>>>>>>>>>>> existing
>>>>>>>>>>>>>>> dependencies for newly discovered severe vulnerabilities.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> How will we know about CVE if it is removed from CI build?
>> Why
>>>>>>>>>>>>>>> require
>>>>>>>>>>>>>>> manual verification when it can be done during CI build and
>>>> does
>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>> affect
>>>>>>>>>>>>>>> builds done by individual contributors?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> While there is no set time for a release, there is no set
>> time
>>>>>>>>>>>>>>> for a
>>>>>>>>>>>>>>> PR
>>>>>>>>>>>>>>> merge as well.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Yes, nothing prevents anyone from looking at the dependency
>>>>>>>>>>>>>>> vulnerabilities, but there is a better chance that "anyone"
>>>> does
>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>> mean
>>>>>>>>>>>>>>> nobody if CI build fails.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I still do not understand why you value an individual
>>>>> contributor
>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> PR
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> over the community and the project itself. Once there is a
>>>>> severe
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> security
>>>>>>>>>>>>>>>>> vulnerability, it affects everyone who cares about the
>>>>> project,
>>>>>>>>>>>>>>>>> including
>>>>>>>>>>>>>>>>> all contributors. I don't see a problem with a PR being in
>> a
>>>>>>>>>>>>>>>>> pending
>>>>>>>>>>>>>>>>> (not
>>>>>>>>>>>>>>>>> merged) open state till a build issue is resolved.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> That is a mischaracterization that you have stated before
>> as
>>>>>>>>>>>>>>>>> well. A
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> project cannot grow without contributions and without
>>>> policies
>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> create
>>>>>>>>>>>>>>>> a supportive enviroment where that can happen, I don't see
>>>> the
>>>>>>>>>>>>>>>> need
>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>> put
>>>>>>>>>>>>>>>> unnecessary obstacles for legitimate contributions that are
>>>> not
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>> cause
>>>>>>>>>>>>>>>> of a problem. Everytime there is a matching CVE the PRs are
>>>>> going
>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>> get
>>>>>>>>>>>>>>>> blocked till that CVE is addressed and I am not confident we
>>>>> have
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>> bandwidth in the community to address this expediently. It
>> is
>>>>>>>>>>>>>>>> also
>>>>>>>>>>>>>>>> inaccurate to equate this to PR not being merged till build
>>>>>>>>>>>>>>>> issues
>>>>>>>>>>>>>>>> are
>>>>>>>>>>>>>>>> resolved as it derives from an assumption that CVE is same
>>>> as a
>>>>>>>>>>>>>>>> build
>>>>>>>>>>>>>>>> failure.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> While project can't grow without individual contributions,
>>>>>>>>>>>>>>>> project
>>>>>>>>>>>>>>>> is a
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> result of a large number of contributions from a number of
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> contributors.
>>>>>>>>>>>>>>> Some of those contributors are not active anymore and will
>> not
>>>>>>>>>>>>>>> provide
>>>>>>>>>>>>>>> any
>>>>>>>>>>>>>>> fixes should a vulnerability be found in their contribution.
>>>> It
>>>>>>>>>>>>>>> becomes a
>>>>>>>>>>>>>>> shared responsibility of all currently active community
>>>> members
>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>> those
>>>>>>>>>>>>>>> who submit PR are part of the community and share that
>>>>>>>>>>>>>>> responsibility,
>>>>>>>>>>>>>>> are
>>>>>>>>>>>>>>> not they? If a contributor considers him/herself as part of a
>>>>>>>>>>>>>>> community,
>>>>>>>>>>>>>>> why he or she can't wait for the build issue to be resolved
>> or
>>>>>>>>>>>>>>> better
>>>>>>>>>>>>>>> take
>>>>>>>>>>>>>>> an action on resolving the issue? The only possible
>>>> explanation
>>>>>>>>>>>>>>> that I
>>>>>>>>>>>>>>> see
>>>>>>>>>>>>>>> is the one that I already mentioned on this thread.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> If you see this as unnecessary obstacles for legitimate
>>>>>>>>>>>>>>> contributions,
>>>>>>>>>>>>>>> why
>>>>>>>>>>>>>>> to enforce code style, it is also unnecessary obstacle. Unit
>>>>> test?
>>>>>>>>>>>>>>> Should
>>>>>>>>>>>>>>> it be considered to be optional for a PR to pass unit tests
>> as
>>>>>>>>>>>>>>> well?
>>>>>>>>>>>>>>> What
>>>>>>>>>>>>>>> if an environment change on CI side causes build to fail
>>>> similar
>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>> what
>>>>>>>>>>>>>>> happened recently? Should we disable CI builds too and rely
>>>> on a
>>>>>>>>>>>>>>> committer
>>>>>>>>>>>>>>> or a release manager to run unit tests?  If CI build fails
>> for
>>>>>>>>>>>>>>> whatever
>>>>>>>>>>>>>>> reason, how can you be sure that if it fails for another PR
>> as
>>>>>>>>>>>>>>> well,
>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>> they both fail for the same reason and there is no any other
>>>>>>>>>>>>>>> reasons
>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>> will cause a problem with a PR?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I don't know how failing PRs because of CVE, which we don't
>>>>>>>>>>>>>>> introduce,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> don't control, no idea of and possibly unrelated would fall
>> in
>>>>> the
>>>>>>>>>>>>>> same
>>>>>>>>>>>>>> bucket as unit tests. I am at a loss of words for that. There
>>>> is
>>>>> no
>>>>>>>>>>>>>> reason
>>>>>>>>>>>>>> to block legitimate development for this. This can be handled
>>>>>>>>>>>>>> separtely
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>> in parallel. Maybe there is a way we can setup an independent
>>>> job
>>>>>>>>>>>>>> on
>>>>>>>>>>>>>> a
>>>>>>>>>>>>>> build server that runs nightly, fails if there are new CVEs
>>>>>>>>>>>>>> discovered
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>> sends an email out to the security or dev group. You could
>> even
>>>>>>>>>>>>>> reduce
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>> CVE threshold for this. I don't believe in a stick approach
>>>>> (carrot
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>> stick metaphor) and believe in proportional measures.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Vlad
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On 10/26/17 09:42, Pramod Immaneni wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Thu, Oct 26, 2017 at 12:08 AM, Vlad Rozov <
>>>>> vro...@apache.org
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> There is a way to add an exception, but it needs to be
>>>>> discussed
>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>> case
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> by case basis. Note that CVEs are not published until a
>> fix
>>>>> is
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> available.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> For severity 8 CVEs I expect patches to become available
>>>> for
>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> reported
>>>>>>>>>>>>>>>>>>> version unless it is an obsolete version in which case,
>>>> the
>>>>>>>>>>>>>>>>>>> upgrade
>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>> supported version is already overdue.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> I think we should retain the ability to make that choice
>>>> of
>>>>>>>>>>>>>>>>>>> what
>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>> when
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> to upgrade rather than hard enforce it. Like I mentioned
>>>> the
>>>>>>>>>>>>>>>>>>> CVE
>>>>>>>>>>>>>>>>>>> may
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> apply to us (it has happened before), even though it may
>> be
>>>>>>>>>>>>>>>>>> beneficial
>>>>>>>>>>>>>>>>>> upgrade generally when its not applicable, there may not
>> be
>>>>> the
>>>>>>>>>>>>>>>>>> bandwidth
>>>>>>>>>>>>>>>>>> in community to do the necessary changes to upgrade to a
>>>>> newer
>>>>>>>>>>>>>>>>>> version
>>>>>>>>>>>>>>>>>> especially if those dependencies don't follow semver (has
>>>>>>>>>>>>>>>>>> happened
>>>>>>>>>>>>>>>>>> before
>>>>>>>>>>>>>>>>>> as well, remember effort with ning). My caution comes from
>>>>>>>>>>>>>>>>>> experiencing
>>>>>>>>>>>>>>>>>> this situation before.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> I don't see how reporting helps. If a build succeeds, I
>>>> don't
>>>>>>>>>>>>>>>>>> expect
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> anyone to look into the report, it is only when CI build
>>>>> fails,
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> committers
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> and reviewers look into the details.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> We can add a mandatory step during release that we need
>> to
>>>>>>>>>>>>>>>>>>> assess
>>>>>>>>>>>>>>>>>>> CVEs
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> matching this criteria before proceeding with the
>> release.
>>>>>>>>>>>>>>>>>>> This
>>>>>>>>>>>>>>>>>>> could
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> end
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> up requiring upgrade of some dependencies and in other
>>>> cases
>>>>> it
>>>>>>>>>>>>>>>>>> may
>>>>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>>> needed. This assessment can also happen more often in
>> adhoc
>>>>>>>>>>>>>>>>>> fashion
>>>>>>>>>>>>>>>>>> offline
>>>>>>>>>>>>>>>>>> before release based upon interest from community. I am
>>>> also
>>>>>>>>>>>>>>>>>> open
>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>> making
>>>>>>>>>>>>>>>>>> it mandatory with every PR, in future, like you are
>>>>> suggesting,
>>>>>>>>>>>>>>>>>> if
>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>> see
>>>>>>>>>>>>>>>>>> sufficient uptake in community on these issues. From
>>>>> experience
>>>>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>>>> there currently and hence I don't want to do this now.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> IMO, it does not matter how CVE is introduced. It may be a
>>>>> new
>>>>>>>>>>>>>>>>>> dependency
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> with an existing CVE or it can be a new CVE for an
>> existing
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> dependency.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> In
>>>>>>>>>>>>>>>>>>> both cases, dependency with the CVE needs to be fixed.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> In one case the PR is not directly responsible for the
>>>> issue
>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>> hence
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> should avoid penalizing them or block them.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Vlad
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On 10/25/17 11:58, Pramod Immaneni wrote:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Thanks that sounds mostly fine except what happens if
>>>> there
>>>>>>>>>>>>>>>>>>> is a
>>>>>>>>>>>>>>>>>>> cve
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> matching that severity in a dependency but it doesnt
>>>> affect
>>>>> us
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> because
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> let's say we don't exercise that part of functionality
>>>>> *and*
>>>>>>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>>>>>>> isn't a
>>>>>>>>>>>>>>>>>>>> fix available or there is a fix but the upgrade requires
>>>>>>>>>>>>>>>>>>>> significant
>>>>>>>>>>>>>>>>>>>> effort
>>>>>>>>>>>>>>>>>>>> (for example if we need to move to a new major version
>> of
>>>>> the
>>>>>>>>>>>>>>>>>>>> dependency
>>>>>>>>>>>>>>>>>>>> or
>>>>>>>>>>>>>>>>>>>> something like that). Is there a way to add an exception
>>>>> like
>>>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>>>> did
>>>>>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>>>>> checkstyle in the interim. How about reporting instead
>> of
>>>>>>>>>>>>>>>>>>>> failing
>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> builds. One of the steps in release process could be to
>>>>>>>>>>>>>>>>>>>> investigate
>>>>>>>>>>>>>>>>>>>> these
>>>>>>>>>>>>>>>>>>>> reports before proceeding with the release. If a PR
>>>>>>>>>>>>>>>>>>>> introduces
>>>>>>>>>>>>>>>>>>>> new
>>>>>>>>>>>>>>>>>>>> cves
>>>>>>>>>>>>>>>>>>>> by
>>>>>>>>>>>>>>>>>>>> virtue of adding a new dependency or changing an
>> existing
>>>>>>>>>>>>>>>>>>>> version,
>>>>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>>> would be of interest and can be subject to failure. Is
>>>>> there
>>>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>> way
>>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>> distinguish that?
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> On Wed, Oct 25, 2017 at 8:52 AM Vlad Rozov <
>>>>>>>>>>>>>>>>>>>> vro...@apache.org>
>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> A CVE (should there be a vulnerability in existing or a
>>>>> newly
>>>>>>>>>>>>>>>>>>>> introduced
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> dependency) will not be exposed during the CI build, but
>>>>> the
>>>>>>>>>>>>>>>>>>>> build
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> will
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> fail if the CVE has severity 8 or above. To get the
>>>>> details,
>>>>>>>>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>>>>>> will
>>>>>>>>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>>>>>> necessary to run dependency check manually.
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> Vlad
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> On 10/24/17 16:27, Pramod Immaneni wrote:
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> There was a lot of discussion on this but looks like
>>>> there
>>>>>>>>>>>>>>>>>>>>> was
>>>>>>>>>>>>>>>>>>>>> no
>>>>>>>>>>>>>>>>>>>>> final
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> agreement. Can you summarize what your PR does? Are we
>>>>>>>>>>>>>>>>>>>>> disclosing
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> actual vulnerabilities as part of the automated build
>>>> for
>>>>>>>>>>>>>>>>>>>>>> every
>>>>>>>>>>>>>>>>>>>>>> PR?
>>>>>>>>>>>>>>>>>>>>>> That
>>>>>>>>>>>>>>>>>>>>>> would be a no-no for me. If it is something that
>>>> requires
>>>>>>>>>>>>>>>>>>>>>> manual
>>>>>>>>>>>>>>>>>>>>>> steps,
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> example as part of a release build, that would be
>> fine.
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 23, 2017 at 1:16 PM, Vlad Rozov <
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> vro...@apache.org>
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Please see https://github.com/apache/
>>>> apex-core/pull/585
>>>>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>>>>> APEXCORE-790.
>>>>>>>>>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Vlad
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On 9/14/17 09:35, Vlad Rozov wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Do you expect anything else from the community to
>>>>> recognize
>>>>>>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> contribution other than committing it to the code
>>>> line?
>>>>>>>>>>>>>>>>>>>>>>> Once
>>>>>>>>>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>>>> steady flow of quality contributions, the
>>>> community/PMC
>>>>>>>>>>>>>>>>>>>>>>>> will
>>>>>>>>>>>>>>>>>>>>>>>> recognize
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> contributor by making that contributor a committer.
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Vlad
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> On 9/12/17 13:05, Sanjay Pujare wrote:
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> For a vendor too, quality ought to be as important
>> as
>>>>>>>>>>>>>>>>>>>>>>>> security
>>>>>>>>>>>>>>>>>>>>>>>> so
>>>>>>>>>>>>>>>>>>>>>>>> I
>>>>>>>>>>>>>>>>>>>>>>>> don't
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> think we disagree on the cost benefit analysis. But
>> I
>>>>> get
>>>>>>>>>>>>>>>>>>>>>>>> your
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> drift.
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> By "creative incentive" I didn't imply any material
>>>>>>>>>>>>>>>>>>>>>>> incentive
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> (although a
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> gift card would be nice :-)) but more along the lines
>>>> of
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> what a
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> community
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> can do to recognize such contribution.
>>>>>>>>>>>>>>>>>>>>>>> Sanjay
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> On Tue, Sep 12, 2017 at 8:10 AM, Vlad Rozov <
>>>>>>>>>>>>>>>>>>>>>>> vro...@apache.org>
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> I guess we have a different view on the benefit and
>>>>> cost
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> definition.
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> For
>>>>>>>>>>>>>>>>>>>>>>> me the benefit of fixing CI build, flaky unit test,
>>>>> severe
>>>>>>>>>>>>>>>>>>>>>>> security
>>>>>>>>>>>>>>>>>>>>>>> issue
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> is huge for the community and is possibly small
>>>> (except
>>>>>>>>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> security
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> issues) for a vendor.
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> By "creative" I hope you don't mean that other
>>>>>>>>>>>>>>>>>>>>>>>>>> community
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> members,
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> users
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> and customers send a contributor a gift cards to
>>>>>>>>>>>>>>>>>>>>>>> compensate
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> cost
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> :). For me PR that is blocked on a failed CI build
>> is
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> sufficiently
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> incentive for a contributor to look into why it
>> fails
>>>>> and
>>>>>>>>>>>>>>>>>>>>>>>> fixing
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> it.
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Vlad
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> On 9/11/17 23:58, Sanjay Pujare wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> I don't want to speak for others and I don't want
>>>> to
>>>>>>>>>>>>>>>>>>>>>>>>>> generalize.
>>>>>>>>>>>>>>>>>>>>>>>>>> But
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> an
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> obvious answer could be "cost-benefit analysis".
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> In any case we should come up with a creative way
>>>> to
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> "incentivize"
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> members
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> to do these tasks.
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>> 
>> 

Reply via email to