flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Harui <aha...@adobe.com.INVALID>
Subject Re: [FlexJS] Why FlexJS compiler statically looks for 'src' folder
Date Fri, 02 Jun 2017 05:39:27 GMT
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" <joshtynjala@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 <aharui@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" <joshtynjala@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 <aharui@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" <joshtynjala@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
>><aharui@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" <joshtynjala@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
>> >><aharui@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" <joshtynjala@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
>> >> >><aharui@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" <joshtynjala@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
>> >> >><piotrzarzycki21@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
>> >> >> >> >> >> piotrzarzycki21@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.
>> >> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>>
>>

Mime
View raw message