Hi Dave,

There is a single Ant script called releasecandidate.xml, but it has multiple 
targets in it.  3 targets are used in your step 1, although I don't understand 
what you mean by staging.  I think Maven requires staging for voters to test 
the bits.

A separate target is used for 3, although we cannot currently copy to dist or 
npm from repository.a.o since only Maven artifacts are on repository.a.o and we 
push a non-Maven artifact to npm and dist.

I'm pretty sure I understand the Apache policy and the scripts are following 
it, and I used them as RM for 0.9.4 correctly.  Please be more specific if you 
wish to drill down on some aspect of it.

I agree that creating packages should be simple, but so far, nobody but me has 
been able to get the Maven commands to complete without errors that all seem to 
be related to network issues, not issues in the tools or scripts.  It is 
possible that we could change our packaging, but has its own drawbacks.  We 
want to use Maven to test that Maven support will work and we want to use Ant 
to prove our Ant support works.  I'm told there are ways to change the Maven 
commands to try to upload all of the artifacts after they are built instead of 
as they are being built, but I personally don't want to take the time to try it 
out, since I might end up doing all of that work and it won't help folks with 
unreliable networks.  That's why I thought that if we could build releasable 
artifacts on builds.a.o, we could trust its network reliability to 
repository.a.o.

Regarding reproducible builds, there are some clues that it is or will be 
possible soon:
https://dzone.com/articles/reproducible-builds-in-java
http://zlika.github.io/reproducible-build-maven-plugin/

We would have to modify the SWF compiler as well.  But it could be worth doing 
if it helps make it easier to cut releases.

-Alex

On 12/7/18, 11:56 AM, "Dave Fisher" <[email protected]> wrote:

    Hi - Alex,
    
    Inline.
    
    > On Dec 5, 2018, at 10:54 AM, Alex Harui <[email protected]> wrote:
    > 
    > Hi Dave,
    > 
    > Feel free to make a proposal.
    
    I think that it is important to clearly separate the following.
    
    (1) Preparing Release Packaging. Source release and the several binary 
packages optionally pushed to dist.apache.org/dev but NOT staged. Staging seems 
to get us in trouble.
    (2) VOTE on the Release Candidate.
    (3) Distribute the Release. Copying to dist, npm and maven through 
repository.apache.org. Updating our download pages. Waiting for Apache Mirror 
distribution. Sending the Announcement Email.
    
    (1) and (3) must be distinctly separate processes.
    
    (1) can be mvn and ant. Anyone should be able to do it whether or not they 
are release manager
    (3) can be a shell script, mvn, and/or ant. Sending the announcement can be 
manual.
    
    
    > 
    > I'm not trying to kill any discussion, but I know for me personally, I 
would much rather debug an Ant script than debug English instructions, and 
consider that not all of our committers are native English speakers.  I am 
really bad at following a long list of English instructions and am likely to 
make small errors that matter, like mis-typing versions.  Right now, I can type 
the release version in once and rely on command prompt history to get it right 
after that.
    > 
    > It seems wrong that a project like Royale, which produces an SDK for 
desktop applications, would have a lot of manual steps in creating a release.  
In fact, Flex has an Ant-on-AIR library, such that Royale could write an AIR 
app to generate a release, similar to the Flex Installer.  Then Royale RMs 
would be debugging ActionScript to add fault tolerance to the release process.  
Maybe that would make the process more accessible.
    
    Creating packages should be very simple. Agreed. In the Apache Way the 
release of those packages requires a VOTE of at least 72 hours (unless there 
are very good reasons to be faster.) You cannot really have one script to both 
create the packages and to release them.
    
    > 
    > The other topic area I've wondered about is whether we could generate our 
releases on builds.a.o (or my CI server).  I don't think the Jenkins nodes are 
allowed to push to Git or SVN and I think Maven' Release Plugin requires that.
    
    This is a question for [email protected] and/or try some things on GitHub 
with TravisCI. This would be for creating packages.
    
    >  We could put my private key on my CI server, but I'd rather it be clear 
which commits came from the server and not actually me.  But if there was a 
machine that built the release artifacts, RM's wouldn't have to configure their 
machines or deal with network issues.  I've been intrigued by the discussion 
about reproducible binaries on other Apache lists.  If we made Royale binaries 
reproducible, then it could be possible to ship binaries from a release server 
since the PMC voters could build the source packages and it would match the 
binaries from that server.  AIUI, RM don't have to build the artifacts on their 
computers, they only have to verify the artifacts.
    
    JAR files are never exactly the same. There are date time stamps in there 
along with slightly different byte code depending on exactly which Java SDK is 
used.
    
    > 
    > Yet another topic area is: who is going to do any work to change how we 
cut releases?  It seems like other PMC members do not have the time to truly 
understand the process or to try to improve on it.
    
    My real point is that I think that the (1), (2), (3) separation required by 
the Apache Way has never been properly followed, but I could be wrong.
    
    Perhaps I’ll have time to look later this month. No promises.
    
    Regards,
    Dave
    
    > 
    > My 2 cents,
    > -Alex
    > 
    > On 12/4/18, 11:05 PM, "Dave Fisher" <[email protected]> wrote:
    > 
    >    Alex, 
    > 
    >    Thanks for taking care of this. Can we start a discussion about which 
parts of the release should be “manual” visa vi fully automated.
    > 
    >    Everyone - let’s try to follow KISS - keep it stupid / simple.
    > 
    >    Regards,
    >    Dave
    > 
    >    Sent from my iPhone
    > 
    >> On Dec 4, 2018, at 10:44 PM, [email protected] wrote:
    >> 
    >> Author: aharui
    >> Date: Wed Dec  5 06:44:34 2018
    >> New Revision: 31364
    >> 
    >> Log:
    >> Apache Royale 0.9.4
    >> 
    >> Added:
    >>   release/royale/0.9.4/
    >>     - copied from r31363, dev/royale/0.9.4/rc2/
    >> Removed:
    >>   dev/royale/0.9.4/rc2/
    >> 
    > 
    > 
    > 
    
    

Reply via email to