Hi Dimitri

So further to this – I’ve made a lot of progress with translations today, but 
I’ve run out of time so rather than release anything half baked I’ll hold off 
until tomorrow

John

From:  John Spackman <john.spack...@zenesis.com>
Reply-To:  qooxdoo Development <qooxdoo-devel@lists.sourceforge.net>
Date:  Tuesday, 16 February 2016 at 07:26
To:  qooxdoo Development <qooxdoo-devel@lists.sourceforge.net>
Subject:  Re: [qooxdoo-devel] QxCompiler - add ES6, faster compilation, and 
100% Javascript API to building applications

Hi Dimitri

So it sounds like resources with paths have an issue, or maybe libraries with 
“.” in the namespace – I’ll have a look this morning but as it’s happening with 
UploadMgr then I have a reproducible case I can work on.

I’ve had a look at the stack trace – but I can’t see any clues to what might be 
causing it; by marshalling, do you mean the qx.data.marshall.*?  That should 
not be affected, the only change to code was to allow .defer() to not be called 
immediately after the class was defined.  I’ve just realised that this means 
that dynamically defined classes will not have their defer called, and there’s 
a fix in the next commit for that but I don’t think that’s the issue your 
coming across.

Re Node 0.12: I think there was another problem with early versions of Node <= 
0.12 other than just language – I can’t remember exactly what now but there was 
something that didn’t work properly until I upgraded.  But you’re right, 
QxCompiler could be babelified :)  At one point, the Babel plugin part was 
written as a proper, standalone babel plugin in ES6 but I had some trouble 
getting Webstorm to compile and debug properly so I switched back to native code

Re build server: I’d expect QxCompiler to be installed once, globally and then 
used externally to the projects, i.e. your build code could do the project 
checkout and then use the API to build each project.  The project wouldn’t know 
about QxCompiler at all.

This sounds similar to my use case, except my builds are on-the-fly on product 
servers rather than as part of release: In my case I have multi homed Tomcat 
servers, and each website uses Qooxdoo on the server and client; the server 
apps generate html (think ASP/PHP/JSP but with javascript & Qooxdoo running 
under Rhino) as well as implement server processes, and there is often more 
than one client application per website.  Doing a major release requires 
deleting and recompiling all applications (and typically the cache also), and 
with a minimum of 2 apps (1 server + 1 client) per website that can be quite 
expensive.  At the moment, making a minor patch to the presentation of the 
website (e.g. modifying the html output from my PHP/ASP-like pages) means an 
expensive build process too which is pretty tedious.  

So what I want is to have QxCompiler sitting as a background process, watching 
all these applications and the source files they depend on; when a source file 
changes it rebuilds the app instantly (e.g. 250ms per affected application) and 
notifies Tomcat to reload the server code if necessary.  At the moment, 
incremental builds take QxCompiler approx 700ms including the (not 
insignificant) overhead of starting up node.

Re requirements: I’ve updated the docs to match

I’m working on QxCompiler again this morning and should have an update for you 
by lunchtime 

Cheers
John

From:  Dimitri <mi...@cargosoft.ru>
Reply-To:  qooxdoo Development <qooxdoo-devel@lists.sourceforge.net>
Date:  Monday, 15 February 2016 at 18:16
To:  <qooxdoo-devel@lists.sourceforge.net>
Subject:  Re: [qooxdoo-devel] QxCompiler - add ES6, faster compilation, and 
100% Javascript API to building applications

Hi! Tried again - things are much better now :) However, two issues still 
remain, one of them being resource management.

Indeed, test app loads its icons correctly in both versions. Unfortunately, 
this is not the case for my app. What I've found yet:

- the app loads all the qx.* resources correctly (window 
minimize/maximize/close icons etc.);
- none of the application's own resources could be loaded. The request is made 
to "build-output/myapp/foo.png", which obviously results in a 404.
- in resource-db.json, all resources that *do* load contain non-empty metadata 
block, while those that do *not* have an empty literal {}. The same could be 
observed in qxt for com/zenesis/qx/upload/* resources.

(Please note that our app contains not only images, but audio files in 
different formats, mainly mp3/ogg. We put them into "resource/sounds".)

The app still cannot load. That unmarshalling error seems to have gone, but now 
I've got a "too much recursion" somewhere around the same location in code. 
(stacktrace)
I'll try to produce MWEs for both issues later today. Some other stuff to 
consider:

1. NodeJS <= 0.12 is not supported, while 4.x and 5.x are fine (due to object 
literal extension used at lib/qxcompiler/ClassFile.js:329). Some distros still 
ship NodeJS 0.x with their stable versions. I think this should be mentioned in 
the docs. OTOH, why not babelize QxCompiler itself? :)
2. What practice would you recommend for using QxCompiler on a build server? 
For each build, a clean checkout is made. Doing npm install in the project 
directory is very expensive (~15MB deps). Assuming QxCompiler resides in its 
own directory, what would you recommend? symlink <project>/node_modules -> 
<QxCompiler>/node_modules? install deps with npm -g and use linklocal ? 
Ideally, I'd like some practice that wouldn't change when we finally have a NPM 
distro of QxCompiler.
3. It's worth mentioning in the docs that ImageMagick is required (due to 
"identify" binary being used in qxcompiler/ResourceManager.js).

Cheers,
Dimitri

------------------------------------------------------------------------------ 
Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + 
Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end 
web transactions and take corrective actions now Troubleshoot faster and 
improve end-user experience. Signup Now! 
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140_______________________________________________
 qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to