Opened 8 years ago

Closed 8 years ago

#12991 closed defect (fixed)

The build does not seem to be pulling in the full dependency list

Reported by: Ed Chatelain Owned by: Rawld Gill
Priority: high Milestone: 1.7
Component: BuildSystem Version: 1.6.1
Keywords: Cc:
Blocked By: Blocking:

Description

I had added this to ticket/12673, but last night they said we should start opening individual tickets.

The build does not seem to be pulling in the full dependency list for things which have been converted to the new amd format. An easy way to see this problem is to update demos/castle/src.js to include: dojo.require("dojox.color"); After the build the build-report.txt will show that demos/castle/src: includes dojox/color, but it does not include dojox/color/_base or dojo/color which are required by dojox/color. And when it is run those files are still pulled in individually. I am having the same problem with dojo.require("dojox.mvc"); dojo.require("dojox.mobile");

I am testing on mac, using the cmd below (from util/buildscripts) to build: ./build.sh action=release profile=demos-all version=1.7.0

Thanks, Ed Chatelain

Change History (5)

comment:1 Changed 8 years ago by Chris Mitchell

Milestone: tbd1.7
Owner: set to Rawld Gill

comment:2 Changed 8 years ago by zhangyp

Similar case applies on the build of mobile-all profile. In the profile, one dependency is dojox.mobile. But it does not pull in dojox.mobile._base specified in the define statement of dojox/mobile.js.

Here is the command line I tried to build mobile-all on Ubuntu 10.10. ./build.sh profile=mobile-all action=clean,release releaseDir=buildDir

Right now, if I need to merge all of the required js modules into one file, I have to specify all of them one by one in the dependency array of the profile.

comment:3 Changed 8 years ago by bill

Component: GeneralBuildSystem

comment:4 Changed 8 years ago by Rawld Gill

Status: newassigned

Verified problem. Regular expression non-magic is not working correctly processing AMD modules that are not explicitly marked as pure AMD modules. Modules may be marked as pure AMD modules by including the pragma

//>>pure-amd

or by tagging the module as AMD with a build tag. For example, the dojo package tags modules as follows:

"resourceTags":{
	"test": [".*/dojo/tests.*", ".*dojo/robot.*"],
	"amd": "return /\\.js$/.test(name) && !/\\/nls\\//.test(name) && !/_base\\/config.+/.test(name) && !/OpenAjax\\.js$/.test(name) && !/resources\\/_modules\\.js/.test(name);"
},

This is found in dojo/package.json.

TODO: add a dojox/package.json.

TODO: improve regular expression in util/build/transforms/depsScan

comment:5 Changed 8 years ago by Rawld Gill

Resolution: fixed
Status: assignedclosed

(In [25172]) improve dependency scan of non-pure AMD modules; fixes #12991; !strict

Note: See TracTickets for help on using tickets.