Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#14051 closed defect (fixed)

ReleaseDir is not taken into account anymore for 1xProfiles

Reported by: xMartin Owned by: Rawld Gill
Priority: high Milestone: 1.7
Component: BuildSystem Version: 1.7.0b1
Keywords: Cc:
Blocked By: Blocking:

Description

Since [26707] a build base on a 1.x profile doesn't work anymore.

I have a profile like that:

dependencies = {
	prefixes: [
		[ "dijit", "../dijit" ]
	],
	layers: [
		{
			name: "dojo.js",
			dependencies: [
				"dijit.Tooltip"
			]
		},
		{
			name: "../../my.js",
			dependencies: [
				"dijit.Dialog"
			]
		}
	]
}

and start the build with the following command:

./build.sh --release --releaseDir ../../../release --releaseName myrelease --profile ../../../my.profile.js

The "dojo" layer is created correctly in "myrelease" dir but the second layer called "../../my.js" is written to the source "dojo/util" dir and not to the release dir. Additionally the ".js" suffix is missing.

Change History (4)

comment:1 Changed 8 years ago by Rawld Gill

Priority: normalhigh
Status: newassigned
Version: 1.7.0b1

The profile + command line above results in the release directory being release/myrelease/, with release/ a sibling of the parent of the source dojo directory (likely something like "dojotoolkit"). This, in turn, causes the layer my.js to be written in the directory release/. This is not possible to do with a backcompat profile. It can be done with the following 1.7 profile:

var profile = {
	releaseDir:"release",

	packages:[{
		name:"dojo",
		location:"dtk/dojo"
 	},{
		name:"dijit",
		location:"dtk/dijit"
	}],

	layers:{
		"dojo/dojo":{
			include:["dojo/main", "dijit/Tooltip"]
		},
		"my":{
			include:["dijit/Dialog"]
		}
	},

	paths:{
		"my":"../my"
	}
};

(note: releaseDir could be given on the command line and removed from the profile)

This profile would be built with the command

./build.sh -p ../../../my --releaseName myrelease -r

Unfortunately as of [26822], using the new-style profiles does not automatically include the default profile properties that are included when using an old-style profile. This needs to be fixed for 1.7.

comment:2 Changed 8 years ago by Rawld Gill

Resolution: fixed
Status: assignedclosed

In [26833]:

refactored default profile settings to work with new profiles as well as backcompat; made copyright handling consistent; fixes #14051; refs #14032; !strict

comment:3 in reply to:  description Changed 8 years ago by Rawld Gill

Replying to stadler:

Hi stadler,

Please pull from trunk and try the profile I provided. Also, take a look at http://livedocs.dojotoolkit.org/build/buildSystem. This is a work in progress that will be finished by release candidate time. It should help you understand the new system.

There's a doc coming on backcompat.

fwiw, the v1.60 profiles are very janky with re to paths, always assuming that packages are siblings of dojo, always assuming util/buildscripts/ is the cwd during the build, and various ideas about what the name, dependencies, and layerDependencies properties should be in a layer (a filename or a module name). This has all been cleaned up in 1.7; but the clean up made some backcompat...this example in particular...impossible to devine into a 1.7 profile automatically. Sorry for the hassle...but it'll be better in the long run.

comment:4 Changed 8 years ago by xMartin

This works for me. Thanks. Note that the "layers" property is not yet explained in the mentioned docs.

Note: See TracTickets for help on using tickets.