Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 70BC4200C88 for ; Fri, 2 Jun 2017 16:34:02 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6FA3B160BD2; Fri, 2 Jun 2017 14:34:02 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 66A71160BD1 for ; Fri, 2 Jun 2017 16:34:01 +0200 (CEST) Received: (qmail 23242 invoked by uid 500); 2 Jun 2017 14:34:00 -0000 Mailing-List: contact dev-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list dev@flex.apache.org Received: (qmail 23224 invoked by uid 99); 2 Jun 2017 14:34:00 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2017 14:34:00 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id AC246C028B for ; Fri, 2 Jun 2017 14:33:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 4.692 X-Spam-Level: **** X-Spam-Status: No, score=4.692 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_REPLY=1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URI_HEX=1.313] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id DweLaVERua6o for ; Fri, 2 Jun 2017 14:33:55 +0000 (UTC) Received: from mail-it0-f48.google.com (mail-it0-f48.google.com [209.85.214.48]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id CBFBE5FDA6 for ; Fri, 2 Jun 2017 14:33:54 +0000 (UTC) Received: by mail-it0-f48.google.com with SMTP id m47so20594667iti.0 for ; Fri, 02 Jun 2017 07:33:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=tAtRl5a63SAkySB0Z9GPm7nUxlzms5OSB5vVgEjqQgU=; b=CQnK7xllKI2SwLCPP+6QvwHYsR+7rNpZnD97rHmuKxcIT8Nov9MvDbfUW9akHUzIZ8 qRIROGYaQKM2hPs7Q/6X0yEszAXhig7Ko7mpTjRql45mfQ49M1JskbUsSmiw2E6zwWGn c+YAWRjBwKEoh3PyJfIMb4FhSqZuJqK0HePWC4dRDwF8EIIn+2aQPB7/zIA1ovBEfCeQ OFYra47+Z/NhyzMP6hPM39iwGIHXL0tuC+4yiLKLOMiD2cMHgMgL8xxoNheiKyKg0rWY kakEjAUaO5io7MVZ0TwNFvPn0kLM3mbU+cYNA2lNjOm3Yx4KkCplXoiRU9hQOKbpdRJN iqOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=tAtRl5a63SAkySB0Z9GPm7nUxlzms5OSB5vVgEjqQgU=; b=SzX2jF8jK1Ve0ExGzHgaAkRXD+oouoj1uxstHYr5wsl59iICwOSkfP17OsxAGMlD4a uDYPjdHX79TBXSt0kRF/Va19P8F8CLkOadV+/zRRuFvFHwABORyP1Nj+ilUO+LKfNVmv 5ht+N9EAgQOI1Azxb18GqJL/7MsstezAljr7rlxaYdPPHPbisf5HcoTXMHe+IRUlI63P c0v+StGyBLDw/vf7RDhme/cJMzv/u3v9C3cC3wsgw1FrhLJMhQq60uxtYUFD1gMvwnyd 7TIojbEX2frChmctmgnDipMzsr45Ae2R3uWClBhw/dWSE9ApWOmOtkNDbX2VJQ0oZrNx LCRg== X-Gm-Message-State: AODbwcCrhojjxJRjqvPlaC2P1A7ngJWWPt85s24XSTTeB6szyR6W2qXC agNp5fiKeRzZAwq0GjW9a6BXaDGUAQ== X-Received: by 10.36.50.66 with SMTP id j63mr5214380ita.42.1496414033963; Fri, 02 Jun 2017 07:33:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.127.85 with HTTP; Fri, 2 Jun 2017 07:33:13 -0700 (PDT) In-Reply-To: References: <1496317757242-61991.post@n4.nabble.com> <1496325067791-61994.post@n4.nabble.com> <1496327404126-61997.post@n4.nabble.com> From: Josh Tynjala Date: Fri, 2 Jun 2017 07:33:13 -0700 Message-ID: Subject: Re: [FlexJS] Why FlexJS compiler statically looks for 'src' folder To: dev@flex.apache.org Content-Type: multipart/alternative; boundary="001a114a8eecee72080550fb0a4a" archived-at: Fri, 02 Jun 2017 14:34:02 -0000 --001a114a8eecee72080550fb0a4a Content-Type: text/plain; charset="UTF-8" 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 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" 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 > >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" 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 > >> >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" 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 > >> > >> >> >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" 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 > >> >> > >> >> >> >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 >> >> >> >> > >> >> >> >> 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" > >>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 > >> >> >> > >> >> >> >> >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" > >> >>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 > >> >> >> > >> >> >> >> >>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. > >> >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> > >> >> >> > >> >> > >> >> > >> > >> > > --001a114a8eecee72080550fb0a4a--