On Wed, Nov 8, 2017 at 1:02 PM, Ivan Kelly <iv...@apache.org> wrote:

> > I am not sure why this will screw up the caches. if a RC is approved as
> the
> > final, then there is no sha change and it is final.
> > Your local installation from a RC repo should be exactly same as the one
> > available in the central. If a RC is not approved,
> > then it means changes will come in next RC, if you already cache the
> > previous RC locally, when a new RC is up, the gitsha
> > is changed, maven will update your local cache.
> Does maven check the gitsha when deciding whether to pull a version?
> My understanding is that, if the version in the dependency is a
> non-snapshot version, and it finds an artifact with that version, it
> will just use that version.
>

it doesn't have the notion of gitsha. but it has the timestamp (I also have
limited knowledge on this. I can be wrong) and
a policy to check for updates. If a RC is bad, a new RC will be produced
with new timestamp. Maven should be able to resolve
and find there is an update for it.

e.g.
https://repository.apache.org/content/repositories/orgapachebookkeeper-1015/org/apache/bookkeeper/bookkeeper-server/maven-metadata.xml


>
> Now, consider the case where one of our users wants to test a new
> version of BK works well with the system they have built on top of it,
> so they change the version in the file, add the temp repo to the
> repos, commit and kick off their CI to run unit, integration, scale
> tests etc. If their build system isn't purging the environment every
> time, they will end up with a RC artifact as the final artifact for
> that version, which is bad.
>

If the RC is bad, a new RC will come out to fix the bad RC. They will run
the procedure to verify new RC, no?

I don't really see how bad is the current process. Instead, changing it to
use "-rc" suffix for publishing artifacts, changes the whole release process
that every other projects are using. It also sounds we are bypassing the
staging repository feature provided by Nexus and reinvent a new process
for publishing artifacts. I am not sure it really worth doing this change.
Personally I would like to see if there is a project doing this process
before changing it.


>
> > The point is if you produce artifacts locally using a RC should be
> exactly
> > same as it is final in public. Otherwise, there is no
> > point for review. Because the process of converting a RC to final will
> > never be reviewed.
> Converting the RC to final will produce a new gitsha, yes. But are we
> actually checking that the gitsha matches the version in maven and the
> tarballs generated. I, at least, generally trust that the release
> manager generated the artifacts from the tag they claimed.
>

we don't have the mechanisms to do this gitsha and package matching. we
trust release manager.
BUT at least, what release manager claimed (tag, binary/source
distribution, maven artifacts) are all reviewed and approved.
if you do additional RC to final convert, it means new checkin, new tag,
new binary/source package, and new artifacts. no one really review and
verify all these stuff again.


>
> > "an rc tag"? Do you mean a git tag name with "-rc" suffix? or do you mean
> > the staging artifacts version with "-rc" suffix?
> I mean an -rc suffix on the version.
>
> > I have seen projects using "-rc" suffix for tag name. but I don't see
> > projects using "-rc" suffix in the artifact version.
> >
> > Can you point me an ASF project that is doing in this way? If it works
> well
> > in other projects, we can learn from them.
> Maven itself.
> http://maven.apache.org/developers/release/maven-core-release.html


(maybe I missed something here) I checked the maven release process. the
versioning is about the binary/source distribution, which we are doing the
same thing, no?

I don't see what is the process of publishing artifacts (does maven publish
artifacts?).
the proposal of using "-rc" is actually breaking the process of having a
staging repo in nexus. Can you point me the section how maven does that?


>
>
> -Ivan
>

Reply via email to