I would modify my flex-config.xml, so I don't have to modify every project.
-Alex On 6/2/17, 8:38 AM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: >If I need to set an option, then I might as well set -output or >-js-output. >I simply wouldn't use -outputFolderMap. > >- Josh > >On Fri, Jun 2, 2017 at 8:25 AM, Alex Harui <aha...@adobe.com.invalid> >wrote: > >> OK, sorry, I did miss that. I thought you were the one who wanted the >> output in the same folder, but I was mistaken. >> >> Keep in mind that: >> >> 1) The SWF compiler (MXMLC for both the regular Flex SDK and FlexJS) >> defaults to putting the output in the same folder. So, if you have: >> >> /projects/SomeProject/SomeProject.mxml >> >> By default, the SWF is: >> >> /projects/SomeProject/SomeProject.swf >> >> 2) I have another folder of projects that don't have src folders at all. >> So before November 2016, when the default was as you propose it to be >> again, the problem was this. If I have two projects: >> >> /projects/SomeProject/SomeProject.mxml >> /projects/SomeOtherProject/SomeOtherProject/mxml >> >> Compiling one overwrites the bin folder of the other in projects/bin. >> >> >> IMO, there is "no right answer", so I now think that we should add a >> configuration option like: >> >> -outputFolderMap=src/main/flex,bin >> -outputFolderMap+=.,../bin >> >> Then folks can configure defaults any way they want. The "." is the >> special case for no matches with other patterns. You have proposed the >> default to be >> >> >> -outputFolderMap+=.,../bin >> >> >> It is currently: >> >> -outputFolderMap+=.,bin >> >> >> AIUI, Maven actually specifies the equivalent of: >> >> -outputFolderMap=src/main/flex,target >> >> So folks who want to leverage that somehow could do so. >> >> >> Thoughts? >> -Alex >> >> >> On 6/2/17, 7:33 AM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: >> >> >You seem to be missing the most important part of my proposal. The >> >compiler >> >will put the "bin" directory in the parent of the main source folder, >> >regardless of whether it's named "src", "source", "alex-is-cool" or >>*any* >> >name whatsoever. I put some pseudo-code to explain that in one of my >> >emails, but I guess you missed it. That's the main proposal. In >>addition >> >to >> >that, "src/main/flex" would still be a special exception because it's a >> >more complex nested structure (otherwise, you'd get "src/main/bin"). I >> >hope >> >that makes it clear! >> > >> >- Josh >> > >> >On Thu, Jun 1, 2017 at 10:39 PM, Alex Harui <aha...@adobe.com.invalid> >> >wrote: >> > >> >> Maybe I don't understand your proposal. Currently I think you can >>say >> >> that there are exceptions for "src" and "src/main/flex". AIUI, your >> >> proposal is that only "src/main/flex" would be handled differently. >> >> >> >> -Alex >> >> >> >> On 6/1/17, 12:13 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: >> >> >> >> >Why would you need to stop and reconfigure all of those projects? >>With >> >>the >> >> >change that I suggested, all of your projects that use "src" would >> >> >continue >> >> >to work just fine with no changes required. >> >> > >> >> >Yes, I'm perfectly happy making any changes after this release. >> >> > >> >> >- Josh >> >> > >> >> >On Thu, Jun 1, 2017 at 12:05 PM, Alex Harui >><aha...@adobe.com.invalid> >> >> >wrote: >> >> > >> >> >> Believe me, I am not worried about perfection here. >> >> >> >> >> >> I am saying that if we make changes, we should allow the set of >> >>patterns >> >> >> to be configurable so we don't have to change the compiler to add >>new >> >> >> patterns. I already have a large set of projects with only "src" >> >>and I >> >> >> would prefer not to have to stop and reconfigure all of those >> >>projects. >> >> >> When I have to debug into the compiling of a Flash Builder >>project, >> >>it >> >> >> will save me time to not have to remember to add the output >>folder. >> >> >> >> >> >> Having a config option would allow you to have what you want and >>for >> >>me >> >> >>to >> >> >> have what I want. Can we agree to add a config option, but maybe >> >>after >> >> >> this release? >> >> >> >> >> >> Thanks, >> >> >> -Alex >> >> >> >> >> >> >> >> >> On 6/1/17, 11:51 AM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: >> >> >> >> >> >> >If there are other nested source directory structures >>recommended as >> >> >> >standard practice by opinionated tools, similar to how Maven use >> >> >> >"src/main/flex", then sure, let's add them as we become aware of >> >>them. >> >> >> > >> >> >> >"srcx/main/flex" would indeed not be solved by my recommended >> >>change. >> >> >> >However, "source", "srcx", or "whatever-i-want-to-call-it" would >> >>all be >> >> >> >solved, and I think a single directory with a different name than >> >> >>"src" is >> >> >> >vastly more common than another nested directory structure like >> >> >> >"srcx/main/flex". At least from my experience looking at real >>world >> >> >> >projects over the years. Let's not let perfection stop us from >> >>making >> >> >>an >> >> >> >improvement that will reduce the time users spend on figuring out >> >>why >> >> >> >something isn't working as expected and contributors spend >> >>explaining >> >> >>why >> >> >> >"src" is a special case when it doesn't need to be. >> >> >> > >> >> >> >- Josh >> >> >> > >> >> >> >On Thu, Jun 1, 2017 at 11:11 AM, Alex Harui >> >><aha...@adobe.com.invalid> >> >> >> >wrote: >> >> >> > >> >> >> >> If we allow one exception, why not more than one? >> >> >> >> >> >> >> >> What if we add an "outputFolderExceptions" list and default it >>to >> >> >>just >> >> >> >> contain "src/main/flex". Then I could add "src" in my SDK >> >>installs >> >> >>to >> >> >> >>get >> >> >> >> what I want. Still not sure how it solves the original problem >> >> >>though. >> >> >> >> If someone has a src/main/flex pattern and changes it to >> >> >>srcx/main/flex >> >> >> >> seems like they will still be surprised. >> >> >> >> >> >> >> >> -Alex >> >> >> >> >> >> >> >> On 6/1/17, 10:39 AM, "Josh Tynjala" <joshtynj...@gmail.com> >> wrote: >> >> >> >> >> >> >> >> >If we do as I suggest, there would no longer be a list of >> >>patterns. >> >> >>I >> >> >> >>want >> >> >> >> >to allow *any* folder name. That's what I mean by >>generalizing. >> >>Just >> >> >> >> >automatically put the "bin" directory relative to the parent >> >> >>directory >> >> >> >>of >> >> >> >> >the main source file. (with one exception: Maven-style project >> >> >> >>structures >> >> >> >> >with src/main/flex would still be a special case). >> >> >> >> > >> >> >> >> >Right now, if you compile like this... >> >> >> >> > >> >> >> >> >mxmlc src/MyProject.mxml >> >> >> >> > >> >> >> >> >...you get a "bin" directory in the same parent directory as >> >>"src". >> >> >> >> > >> >> >> >> >I want to allow you to use ANY name instead of "src" too, like >> >>this: >> >> >> >> > >> >> >> >> >mxmlc source/MyProject.mxml >> >> >> >> >mxmlc whatever-i-want-to-call-it/MyProject.mxml >> >> >> >> > >> >> >> >> >... and still get a "bin" directory relative to "source" or >> >> >> >> >"whatever-i-want-to-call-it". Replace "source" or >> >> >> >> >"whatever-i-want-to-call-it" with *any* folder name at random, >> >>and I >> >> >> >>want >> >> >> >> >it to just work. >> >> >> >> > >> >> >> >> >The compiler would do something similar to this pseudo-code: >> >> >> >> > >> >> >> >> >File mainClass = new >> >> >> >> >> >> >>>File("/path/to/MyProject/whatever-i-want-to-call-it/ >> MyProject.mxml"); >> >> >> >> >File bin = mainClass.getParent().getParent().resolve("bin"); >> >> >> >> > >> >> >> >> >You'd get /path/to/MyProject/bin/ >> >> >> >> > >> >> >> >> >- Josh >> >> >> >> > >> >> >> >> > >> >> >> >> >On Thu, Jun 1, 2017 at 10:18 AM, Alex Harui >> >> >><aha...@adobe.com.invalid> >> >> >> >> >wrote: >> >> >> >> > >> >> >> >> >> I just want to optimize for a couple of common cases in >>order >> >>to >> >> >> >>save me >> >> >> >> >> and maybe other folks some time. If for some reason I need >>to >> >> >> >>compile a >> >> >> >> >> Flash Builder project from the command-line or Ant or Java >> >> >>debugger, >> >> >> >>I >> >> >> >> >> don't have to remember to set the -output parameter. >> >> >> >> >> >> >> >> >> >> I used to get FB projects in JIRA and email and then unpack >> >>them >> >> >>and >> >> >> >> >> compile them outside of FB because then I can get the >>debugger >> >>on >> >> >> >>them >> >> >> >> >> more easily. All of our examples are set up so you can >>compile >> >> >>them >> >> >> >> >>from >> >> >> >> >> the command line and not have to type the -output parameter. >> >>And >> >> >>if >> >> >> >>you >> >> >> >> >> make a mistake typing the output folder name, it ends up >> >>creating >> >> >>a >> >> >> >>new >> >> >> >> >> folder with that name. >> >> >> >> >> >> >> >> >> >> I'm not sure what you mean by generalizing. Are you >>suggesting >> >> >> >>allowing >> >> >> >> >> folks to add more patterns to the set of folders where the >> >> >>compiler >> >> >> >>will >> >> >> >> >> chose the parent of the folder pattern? I'm not sure how >>that >> >> >>solves >> >> >> >> >>the >> >> >> >> >> problem. Seems like you'd still be surprised if you use >> >>"source" >> >> >>or >> >> >> >> >> something that isn't in the default list so a warning would >> >>still >> >> >> >>help, >> >> >> >> >> but if that's what you want to do, seems like it wouldn't >>hurt. >> >> >> >> >> >> >> >> >> >> My 2 cents, >> >> >> >> >> -Alex >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On 6/1/17, 9:59 AM, "Josh Tynjala" <joshtynj...@gmail.com> >> >>wrote: >> >> >> >> >> >> >> >> >> >> >I'm not sure that I understand why you mentioned changing >> >>Flash >> >> >> >> >>Builder's >> >> >> >> >> >default source path. That seems mostly tangential here. >> >> >> >> >> > >> >> >> >> >> >I'm saying that the compiler shouldn't care whether it's >>named >> >> >> >>"src", >> >> >> >> >> >"source", or "whatever-i-want-to-call-it". It should simply >> >> >>default >> >> >> >>to >> >> >> >> >> >putting "bin" in the parent of that folder. A warning might >> >>be a >> >> >> >>good >> >> >> >> >> >temporary workaround, but generalizing this behavior is >> >> >> >>significantly >> >> >> >> >> >better, in my opinion. >> >> >> >> >> > >> >> >> >> >> >- Josh >> >> >> >> >> > >> >> >> >> >> >On Thu, Jun 1, 2017 at 9:26 AM, Alex Harui >> >> >> >><aha...@adobe.com.invalid> >> >> >> >> >> >wrote: >> >> >> >> >> > >> >> >> >> >> >> I think "src" is for Flash Builder. I don't know what it >> >>would >> >> >> >>take >> >> >> >> >>to >> >> >> >> >> >> get FB to default to something else. I know I have lots >>of >> >> >> >>projects >> >> >> >> >> >>with >> >> >> >> >> >> just a "src" folder. >> >> >> >> >> >> >> >> >> >> >> >> I agree it is confusing. We could output a warning or >> >>error if >> >> >> >>you >> >> >> >> >> >> haven't specified -output, -js-output and don't have >>"src" >> >>or >> >> >> >> >> >> "src/main/flex" folders. Something like "Warning: output >> >> >>folder >> >> >> >>not >> >> >> >> >> >> specified and src or src/main/flex folders not specified. >> >> >>Output >> >> >> >> >>will >> >> >> >> >> >>be >> >> >> >> >> >> in <name of output folder". >> >> >> >> >> >> >> >> >> >> >> >> Would that help eliminate confusion? That's easy for >> >>someone >> >> >>to >> >> >> >>add >> >> >> >> >>to >> >> >> >> >> >> MXMLFlexJSPublisher.java. >> >> >> >> >> >> >> >> >> >> >> >> Thoughts? >> >> >> >> >> >> -Alex >> >> >> >> >> >> >> >> >> >> >> >> On 6/1/17, 8:52 AM, "Josh Tynjala" >><joshtynj...@gmail.com> >> >> >>wrote: >> >> >> >> >> >> >> >> >> >> >> >> >I think I had some trouble trying to get -output to >>accept >> >>a >> >> >> >> >>directory >> >> >> >> >> >>for >> >> >> >> >> >> >a JS-only project, and that's when I figured out that >> >> >>-js-output >> >> >> >> >> >>exists. >> >> >> >> >> >> >Maybe I was doing something wrong at the time. Or maybe >>it >> >> >>didn't >> >> >> >> >>quite >> >> >> >> >> >> >work properly yet. >> >> >> >> >> >> > >> >> >> >> >> >> >Although, I still think it's confusing to those who >>don't >> >> >>realize >> >> >> >> >>that >> >> >> >> >> >> >"src" and "src/main/flex" get special treatment and then >> >>"bin" >> >> >> >>ends >> >> >> >> >>up >> >> >> >> >> >> >somewhere else if they happen to choose a different name >> >>for a >> >> >> >>new >> >> >> >> >> >> >project. >> >> >> >> >> >> >Between me and Santanu, that's two people who had to >>waste >> >> >>time >> >> >> >>on >> >> >> >> >> >> >figuring >> >> >> >> >> >> >out why "bin" ended up somewhere we didn't expect. I >>could >> >> >>live >> >> >> >> >> >>without it >> >> >> >> >> >> >being the current working directory if "bin" would >>simply >> >>go >> >> >>into >> >> >> >> >>the >> >> >> >> >> >> >parent directory of the directory containing the main >> >>class by >> >> >> >> >>default, >> >> >> >> >> >> >regardless of whether it's named "src" or not. If >> >> >> >>"src/main/flex" is >> >> >> >> >> >>the >> >> >> >> >> >> >only special case, that's better, in my opinion. >> >> >> >> >> >> > >> >> >> >> >> >> >- Josh >> >> >> >> >> >> > >> >> >> >> >> >> >On Thu, Jun 1, 2017 at 8:16 AM, Alex Harui >> >> >> >> >><aha...@adobe.com.invalid> >> >> >> >> >> >> >wrote: >> >> >> >> >> >> > >> >> >> >> >> >> >> And if you just use -output and not -js-output the bin >> >> >>folder >> >> >> >> >>will be >> >> >> >> >> >> >> where you specified -output, and if you specify >> >> >> >> >> >> >> -output=somefolder\somefile.swf the output will be in >> >> >> >> >> somefolder\bin. >> >> >> >> >> >> >> >> >> >> >> >> >> >> The logic is trying to say: >> >> >> >> >> >> >> 1) If you specify -output as a SWF, we will use the >> >>parent >> >> >> >>folder >> >> >> >> >>of >> >> >> >> >> >>the >> >> >> >> >> >> >> SWF >> >> >> >> >> >> >> 2) If you specify -output as a folder, we will use >>that >> >> >>folder >> >> >> >> >> >> >> 3) If you specify -js-output, we will use that >> >>regardless of >> >> >> >>what >> >> >> >> >>you >> >> >> >> >> >> >>used >> >> >> >> >> >> >> for -output >> >> >> >> >> >> >> 4) If you didn't specify -output or -js-output then >> >> >> >> >> >> >> A) If you have a src folder or src/main/flex folder >>we >> >> >>will >> >> >> >>use >> >> >> >> >>the >> >> >> >> >> >> >> parent of src >> >> >> >> >> >> >> B) Otherwise we will use the parent folder of the >>main >> >> >>source >> >> >> >> >>file. >> >> >> >> >> >> >> >> >> >> >> >> >> >> I don't agree that CWD is the right default. For me, >> >>I've >> >> >> >>always >> >> >> >> >> >>had a >> >> >> >> >> >> >> folder full of test cases and am not always changing >> >> >>folders. >> >> >> >>I >> >> >> >> >> >>think >> >> >> >> >> >> >>the >> >> >> >> >> >> >> regular Flex MXMLC worked this way as well so I didn't >> >>want >> >> >>to >> >> >> >> >>change >> >> >> >> >> >> >>that >> >> >> >> >> >> >> pattern. >> >> >> >> >> >> >> >> >> >> >> >> >> >> 4A is just a convenience for those who follow certain >> >>common >> >> >> >> >> >>patterns so >> >> >> >> >> >> >> they don't have to do as much typing on the command >>line. >> >> >>It >> >> >> >> >>might >> >> >> >> >> >>also >> >> >> >> >> >> >> "do the right thing" for Flash Builder users. I think >> >>Maven >> >> >> >> >>always >> >> >> >> >> >> >> specifies the output folder. >> >> >> >> >> >> >> >> >> >> >> >> >> >> My 2 cents, >> >> >> >> >> >> >> -Alex >> >> >> >> >> >> >> >> >> >> >> >> >> >> On 6/1/17, 7:48 AM, "Josh Tynjala" >> >><joshtynj...@gmail.com> >> >> >> >>wrote: >> >> >> >> >> >> >> >> >> >> >> >> >> >> >In that case, the SWF will use the -output option: >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >mxmlc -output=path/to/MyProject.swf -js-output=. >> >> >> >> >>source/MyProject.as >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >- Josh >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >On Thu, Jun 1, 2017 at 7:30 AM, piotrz >> >> >> >> >><piotrzarzyck...@gmail.com> >> >> >> >> >> >> >>wrote: >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >> Ahh..Ok now it is clear. What about if we have >> >> >> >> >> >> >> >> -compiler.targets=JSFLEX,SWF - >> >> >> >> >> >> >> >> So -js-output will be also the place where SWF file >> >>will >> >> >> >> >>landed? >> >> >> >> >> >>- If >> >> >> >> >> >> >> >>yes >> >> >> >> >> >> >> >> in >> >> >> >> >> >> >> >> that case this param could have different name. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> Thanks, >> >> >> >> >> >> >> >> Piotr >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ----- >> >> >> >> >> >> >> >> Apache Flex PMC >> >> >> >> >> >> >> >> piotrzarzyck...@gmail.com >> >> >> >> >> >> >> >> -- >> >> >> >> >> >> >> >> View this message in context: http://apache-flex- >> >> >> >> >> >> >> >> >>development.2333347.n4.nabble.com/FlexJS-Why-FlexJS- >> >> >> >> >> >> >> >> >> >> >>compiler-statically-looks-for-src-folder-tp61991p61997.html >> >> >> >> >> >> >> >> Sent from the Apache Flex Development mailing list >> >> >>archive >> >> >> >>at >> >> >> >> >> >> >> >>Nabble.com. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>