OK, good to know.   I had never checked to see if Maven put things in the SWC 
to be managed in the Maven Central.  But again, the Ant build does not 
currently generate all of the collateral files (checksums and sigs for each 
SWC) and, IMO, it is easier just to call Maven to do that.

While we're on the subject of "reasonably equal", one thing that is not a 
requirement but I want to point out is that the "mvn clean install" in 
royale-asjs takes significantly longer thant "ant clean main" even if all 
dependencies are already downloaded because currently, Maven produces a SWC for 
every flavor of the Jewel themes where Ant does not because a bare .css file is 
a valid theme in Flex/Royale.  I think there is a way to have a bare .css file 
as a valid Maven artifact.  And figuring that out might make the Maven build 
faster.

Food for thought,
-Alex

On 3/21/20, 8:57 AM, "Christofer Dutz" <[email protected]> wrote:

    Hi Alex,
    
    In general there should be nothing preventing Maven to use the SWCs built 
by ant too.
    
    The additional stuff I mentioned is in the Jars, not the SWCs (perhaps in 
the JS SWCs) and in these there is just a copy of the pom and the values of any 
property during execution. 
    
    Both are not used or needed by any program I know of. Just consider them 
Meta-Data.
    
    They are mainly used for tools like Nexus to know where to put them and if 
you were to sort of find a jar in some directory know how to reproduce it.
    
    Chris
    
    Am 21.03.20, 16:46 schrieb "Alex Harui" <[email protected]>:
    
        
        
        On 3/21/20, 8:19 AM, "Christofer Dutz" <[email protected]> 
wrote:
        
            Well in theory the jars in the compiler built by Maven should also 
work with Ant 
            and the other way around and also should it be possible to use the 
SWCs build by Maven with Ant.
        
        Did you mean "It should be possible to use the SWCs built by Ant with 
Maven"?   That's true, but the Ant scripts do not do that currently and I see 
no reason to have them do that, because as you mention below, Maven puts more 
stuff in and around the jars/swcs.  It is easier for Ant to call Maven to do 
that.
            
            For example if I build the distribution with maven and use that in 
an IDE I have seen the IDEs use the Ant targets (which were built with Maven) 
with the SWCs (which were also built by maven) without any problems.
            
            We need to ensure the files are "reasonably equal" (it doesn't 
break anything for ANT if the jars of the Maven build have additional static 
stuff in "META-INF" package, but the interesting stuff like all the class files 
and resources should be identical)
        
        Agreed.  Bonus points if the RM verification has a smart compare of the 
Jars and SWCs (by unpacking them and comparing the actual class files or SWFs.)
            
            Chris
            
            Am 21.03.20, 16:08 schrieb "Alex Harui" <[email protected]>:
            
                That's a good starting point, but I don't like the "should".  I 
think it is a "must", otherwise, we can release broken functionality.
                
                The Ant release artifacts must be reproducible by Ant and the 
Maven release artifacts must be reproducible by Maven.  It isn't sufficient to 
say that the "build" works in the released sources.  Release artifacts are more 
than just the build output.  Ant or Maven users may need to test a binary 
release artifacts/package with their local changes, not just the individual 
jars/swcs.
                
                To be picky, only the Maven artifacts need to be usable by 
Maven, and only the Ant artifacts need to be usable by Ant, although I'm 
assuming that's what you meant.
                
                HTH,
                -Alex
                
                On 3/21/20, 2:20 AM, "Christofer Dutz" 
<[email protected]> wrote:
                
                    Hi all,
                    
                    I would like to use this thread to collect some 
requirements for the release process.
                    Also would I like to ask you not to formulate things like 
“The release artifacts must be built with X” but rather “The release artifacts 
should be usable by X” cause that’s what really matters. I hope you get what I 
mean.
                    
                    So far I have this:
                    
                      *   The release artifacts should be usable by Maven
                      *   The release artifacts should be usable by Ant
                      *   The release should include tests, which ensure the 
correct function of the royale-maven-plugin
                      *   The release should include tests which ensure the 
correct function of the Ant targets
                      *   It should be possible to verify a release by 
comparing it’s binary artifacts for equality (reproducible builds)
                      *   It should be ensured a release candidate builds 
correctly with Ant and with Maven
                      *   The release process should ideally work on any machine
                    
                    Did I miss something?
                    
                    
                    Chris
                    
                
                
            
            
        
        
    
    

Reply via email to