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.
> >> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >>
> >>
>
>

Reply via email to