Hi Alex,

regarding the build time for Maven ... I too have noticed that. But as far as I 
understood it the themes are all sass files that are compiled to css files, 
correct? 

The packaging of these into a SWC aren’t what's taking long, it's the sass 
compilation. Not sure how to optimize that ... 

The actual "compilation" is then pretty fast. I think the only thing the 
compiler really does here is to create the "library.swf" inside.

And it's not always just a CSS but sometimes there are assets coming along ... 
if it was just a CSS we could come up with a different "packaging" that just 
deploys the CSS but currently we kept all the same for user-simplicity.

Chris


Am 21.03.20, 17:26 schrieb "Alex Harui" <[email protected]>:

    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