Hi Christophe, Gary, Andy,

I’m trying also to build projects on a local Jenkins and I’m facing some issues 
related to the nexus-staging-maven-plugin.
I am reaching out to clarify a few things :

1) On the nexus-staging-maven-plugin documentation page 
(https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin),
 it states that it’s mandatory to have the Nexus Repository Pro version to 
leverage the staging feature. Can you please confirm ? 

2) Is there any – quick - workaround to build all projects and skip the staging 
step if we want to stick with Nexus Repository OSS version ?

3) I understand that all the staging process was meant to be temporary, and to 
add on Gary’s last question, what is the plan moving forward and how could we 
contribute to that effort ?

Thanks,
Sébastien


On 2017-05-16, 1:30 PM, "onap-discuss-boun...@lists.onap.org on behalf of Gary 
Wu" <onap-discuss-boun...@lists.onap.org on behalf of gary.i...@huawei.com> 
wrote:

    Hi Christophe,
    
    Thanks for adding the historical context.
    
    If I understand correctly, the staging approach was meant to be temporary 
right before a release.  Is a release imminent, or has that been canceled?  
What's the current timeline to move all the artifacts back to SNAPSHOT 
versioning (and remove Staging repo from build dependencies) in preparation for 
active ONAP development?
    
    Thanks,
    Gary
    
    
    -----Original Message-----
    From: Closset, Christophe [mailto:cc6...@intl.att.com] 
    Sent: Friday, May 12, 2017 5:52 AM
    To: Gary Wu <gary.i...@huawei.com>; Andrew Grimberg 
<agrimb...@linuxfoundation.org>; onap-discuss@lists.onap.org
    Subject: RE: [onap-discuss] Staging repo in settings.xml
    
    Hi Gary, Andy,
    
    As for the OpenECOMP history, the whole original idea was also to align 
everyone's release number and date to a common one for the launch (the current 
release-1.0.0 branch). 
    Concerns were raised in the dev teams (as you pointed below) that 
everyone's pace would be different eventually and that we should have a way of 
releasing components independently even though we have serious inter 
dependencies within ONAP. So instead of a MEGA build - all components have 
their independent release jobs building on staging. This hybrid approach 
somehow suited us nicely, now we did not go through the blessing process to 
move all these to proper release artifacts and kept moving with this in the 
master branch as Andy explained.
    
    I agree that it's confusing and not ideal right now (the concept of not 
really released 'release artifacts' is puzzling at first but we got used to it).
    If (and that's probably a TSC decision to make) we want to move to a fully 
decoupled model - which with the number of repositories growing is probably a 
good idea - then we should also remove the joint numbering somewhat (TSC) so 
that components can truly release independently. This indeed brings the issue 
of managing dependencies in a non-intuitive manner (I'm building ONAP release X 
and I see dependencies with strange numbers, potentially from previous ONAP 
releases )and would need to be adopted by the community as well.
    
    One benefit of the staging approach is that it allows to limit version 
variance during a stabilization period. Staging should be limited in time, 
probably for a period at the end of the official release cycle when everyone's 
artifact are mostly ready. The Release Candidate approach is another way of 
achieving this I believe.
    
    Regards
    Christophe
    
    -----Original Message-----
    From: onap-discuss-boun...@lists.onap.org 
[mailto:onap-discuss-boun...@lists.onap.org] On Behalf Of Gary Wu
    Sent: Friday, May 12, 2017 12:29 AM
    To: Andrew Grimberg <agrimb...@linuxfoundation.org>; 
onap-discuss@lists.onap.org
    Subject: Re: [onap-discuss] Staging repo in settings.xml
    
    Hi Andy, thanks for the explanation.
    
    It sounds like this will require a larger discussion on the overall 
versioning and release strategy across ONAP projects and artifacts.
    
    For everyone's reference, in OPEN-O we decided to keep all artifact 
versions in sync across projects in order to minimize the management and 
support burden.  Under this assumption, the autorelease "mega-build" that 
builds everything together was a way to enforce synchronized version labels and 
to detect cross-project compilation issues since everyone was building against 
SNAPSHOT dependencies that can change at any time.
    
    If we don't want to build against SNAPSHOT dependencies across projects, 
then it means that different projects may have different release cycles, and we 
may end up with a mix of different artifact versions for the official "ONAP 
Version 1" distribution.  This has the benefit of breaking up the autorelease 
"mega-build", at the cost of having to manage and support a mix of artifact 
versions and differing release schedules.
    
    Can someone from ECOMP pipe in to add some historical perspective and/or 
the current assumptions on artifact versioning?
    
    Regarding the issue at hand (Staging in settings.xml), a better approach 
may be to release the upstream artifact using a version label like "1.0.0-RC0" 
as an intermediate Release (i.e. no longer changing) artifact.  This will allow 
downstream projects to build against an artifact version that is truly 
locked-down (and not from Staging), while allowing the upstream team some 
flexibility to make tweaks before releasing the final "1.0.0" version.
    
    If anyone has thoughts on this topic, please jump in.
    
    Thanks,
    Gary
    
    
    -----Original Message-----
    From: Andrew Grimberg [mailto:agrimb...@linuxfoundation.org]
    Sent: Thursday, May 11, 2017 1:17 PM
    To: Gary Wu <gary.i...@huawei.com>; onap-discuss@lists.onap.org
    Subject: Re: [onap-discuss] Staging repo in settings.xml
    
    On 05/10/2017 02:05 PM, Gary Wu wrote:
    > What's the rationale behind including Staging in the global 
    > settings.xml?  This seems unorthodox.
    > 
    > I have now observed instances (e.g. sdnc/core, mso) where a clean 
    > build in a local environment will fail unless Staging is included in 
    > local settings.xml.  This is because there are snapshot artifacts in 
    > Nexus that have been built with a dependency on a "release versioned"
    > artifact which has only been staged but not yet released.  This 
    > doesn't seem right.
    
    You're correct that it's rather unorthodox. The rational was supposed to be 
temporary as the original intent was that each of the base projects would be 
doing _independent_ releases (that whole Continuous Delivery concept). The 
thing is that no actual release happened before ONAP started as I was being led 
to believe was going to happen.
    
    As downstream of the core projects wanted to only depend on a release 
version so that they weren't tied to the SNAPSHOTS except for when a new 
feature that they were developing against was only there, I was asked to add 
the staging repo to the profiles.
    
    Once the core projects released I was supposed to remove the staging repo 
from the global profiles and then anything depending on a release version 
really would only be depending on the actual release version.
    
    So, either the current projects need to do some sort of actual release so 
that the staging repos can be dropped out of the standard global profile (or at 
least disabled unless explicitly enabled) or all the projects need to make 
modifications to how they do their builds / dependencies.
    
    Lastly I have a few things that I want to point out that the current system 
(admittedly flawed right now) is trying to do.
    
    1) I would rather that all projects be more decoupled in their individual 
releases so that things can move _faster_. The current model is trying to 
bootstrap into this.
    
    2) Monster Autorelease style jobs ala ODL and Open-O have some serious 
flaws in that they build the entire world when each project can (and as is 
currently the case for ONAP) build their own staged artifacts so that any sort 
of simultaneous release vehicle only has to assemble and test instead of also 
build. The issue with having each of the individual projects doing their own 
staged artifacts is that they absolutely _must_ depend on release artifacts. 
The current model basically makes this possible.
    
    3) I would really like for us to get away from the idea of a megalithic 
code drop. It means that any time we have issues with one component it blocks 
and potentially causes releases to slip. Tightening the releases down to the 
individual components means that we can on any given "release" date say that 
all the currently released components are part of the new release and if 
someone misses the window it shouldn't be so fare in the future for the next 
one. This is essentially how the Linux Kernel operates now. They basically hold 
to cadence of ~6 - 7 weeks for a kernel release. If someone misses the window, 
well, it's only another
    1.5 - 2 months out before the next one. It means that features tend to get 
better polish.
    
    -Andy-
    
    --
    Andrew J Grimberg
    Lead, IT Release Engineering
    The Linux Foundation
    
    _______________________________________________
    onap-discuss mailing list
    onap-discuss@lists.onap.org
    
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.onap.org_mailman_listinfo_onap-2Ddiscuss&d=DwICAg&c=LFYZ-o9_HUMeMTSQicvjIg&r=dnnJbZr4ZyquG9ib2bthXCpy6mcsShHseeENa-AmKrM&m=SUAeiWnpa1xRNyQa-mO3CXySTiJ64MfG9ypBBv1HwtE&s=irNbs1cbGth-rk2K0htEyeTa9iLUsPqyZe9am-qPTDQ&e=
 
    _______________________________________________
    onap-discuss mailing list
    onap-discuss@lists.onap.org
    https://lists.onap.org/mailman/listinfo/onap-discuss
    

_______________________________________________
onap-discuss mailing list
onap-discuss@lists.onap.org
https://lists.onap.org/mailman/listinfo/onap-discuss

Reply via email to