Release Notes for Sencha Cmd 3.1.2
Date: May 15, 2013
Version Number: 3.1.2.342
Windows -
Mac OS X -
Linux/64 -
Linux/32
Noteworthy
This maintenance release contains improvements and fixes for many issues
reported by our friend in the community. Many issues relate to the whole
sencha app upgrade process, the meaning of "merge conflicts" and
cases where Cmd did not handle those conflicts cleanly.
Framework Packages
Packages were introduced in Sencha Cmd 3.1.0. In that release, there was only
one location for packages and that was set by workspace.package.dir
to be ${workspace.dir}/packages. This meant that Ext JS 4.2's (many)
packages would be copied to that folder.
In this release, frameworks can now contain their packages and these are no
longer copied out of the framework when the framework is introduced to the
workspace.
This detail was handled by Sencha Cmd, so this applies to Ext JS 4.2.0 as well
as Ext JS 4.2.1. This is handled during framework upgrade and Sencha Cmd will
remove the framework's packages from the workspace.packages.dir.
Upgrades
The general method for upgrading an application is sencha app upgrade
and while that remains true in this release, you now have more control over
the process. If you have multiple applications in a workspace, for example,
you need to decouple the framework and application upgrades. By default,
sencha app upgrade now operates as if you specified
sencha app upgrade --noframework and proceeds to upgrade the current
application to the current framework. This presupposes that you have already
upgraded the framework as part of a upgrading a different application in the
workspace.
If you have created packages, you can upgrade them like so from the package
folder:
sencha package upgrade
NOTE: If you are not upgrading frameworks, you may have to manually
delete the "ext-*" packages from the "packages" folder and
the "ext" folder as well. Then run the following to copy the framework
and packages to the workspace:
sencha -sdk /path/to/extjs generate workspace .
app.js
The majority of upgrade issues revolved around the "app.js" file. In
previous releases, Sencha Cmd would add entries to "app.js" during
code generation calls like sencha generate model (but also for
controllers and the rest). Further, the location of this file differed by
framework.
Due to the complications this approach creates and the fact that often these
updates are not wanted on the application, these commands
no longer update"app.js". You will need to add the newly created
controllers, views, stores, etc. to the appropriate class. In many cases this
will be on one of your controllers and not your application.
To make applications consistent across frameworks, and compatible-by-default
with Sencha Architect, "app.js" now resides in the root folder of
generated applications. The sencha app upgrade command will move
this file from the "app" folder for Ext JS applications.
Merge Conflicts
With Sencha Cmd 3.0, we introduced tracking of generated code to allow upgrades
to reconcile changes you may have made with changes to the "standard" flavor
of certain key files. This is tracked in ".sencha/app/codegen.json".
When generating code, if there is a file in the way, Cmd will use this data
to do a 3-way merge with the version Cmd originally produced as the base,
the version in the way as "Custom" and the new version as "Generated". In
the case of overlapping changes, Cmd will report s "MERGE CONFLICT" in the
log and write the standard (at least to many source control systems) conflict
indicators in the file:
<<<<<<< Generated
// change to Cmd generated content
=======
// changes you have made
>>>>>>> Custom
In this release we have fixed several cases where merge conflicts were falsely
reported during sencha app upgrade (which regenerates certain core
files like "app.js") and cases where subsequent steps of the upgrade
would wrongly try to use a file containing merge conflicts.
There are two strategies for handling merge conflicts:
- Your source control comparison tools
- Call a merge tool of your choice during the upgrade process to resolve
conflicts as they occur.
The use of source control to review the resulting changes from an upgrade is
not new. The best practice here (as always) is to perform upgrades with a
clean working tree (no pending changes). This will allow you to discard or
revert whatever you need.
Using a Third-party Merge Tool
New in this release is the ability to configure an external merge tool to be
called during the upgrade process. You can do this in a personal configuration
file in your HOME directory. For example:
C:\Users\Me>md .sencha
C:\Users\Me>cd .sencha
C:\Users\Me\.sencha>md cmd
C:\Users\Me\.sencha>cd cmd
C:\Users\Me\.sencha\cmd>notepad sencha.cfg
For example, you add these entries like those below to use the
Perforce Visual Merge tool:
cmd.merge.tool=C:\\Program Files\\Perforce\\p4merge.exe
cmd.merge.tool.args=${cmd.merge.tool.args.p4merge}
For further details, consult the comments in the "sencha.cfg" file
in your install folder of Sencha Cmd. The support for personal Sencha Cmd
configuration files is also documented in that same file.
New Features
- Compiler (2)
-
SDKTOOLS-449 Compiler should support allow stdout as an output target
-
SDKTOOLS-476 Compiler -classpath switch should allows tags to be added to the files in the path
- Misc (2)
-
SDKTOOLS-389 The framework should be able to add to the workspace repository for app builds
-
SDKTOOLS-448 Cmd should load per-user and version-independent config files in addition to base configuration
Total: 4
Bugs Fixed
- Build (4)
-
SDKTOOLS-384 Package build needs to produce package-all.scss file for non-theme packages
-
SDKTOOLS-446 Application commands should warn instead of fail when Cmd version does not match exactly
-
SDKTOOLS-450 Sencha.cfg properties are not overrideable via ant "-D" switches
-
SDKTOOLS-477 Default help target for applications and packages should not require that Ant be in the PATH
- Compiler (4)
-
SDKTOOLS-383 Application build should include package SASS variables in (forward) dependency order
-
SDKTOOLS-461 Auto-dependency scanner does not recognize ftype and ptype references
-
SDKTOOLS-462 Auto-dependency scanner does not recognize "defaults" object configuration
-
SDKTOOLS-475 Compiler 'circular requires' error should be downgraded to a warning
- Generator (2)
-
SDKTOOLS-483 Paths for manifest.js and shortcuts.js are incorrect in a app's theme.html file
-
SDKTOOLS-486 App generation needs to preserve Architect-generated files
- Misc (11)
-
SDKTOOLS-281 Preprocessor option "feature logger" cannot be controlled by build properties
-
SDKTOOLS-297 Generated app.js file contains redundant loader configuration
-
SDKTOOLS-360 sencha app upgrade --noframework can produce false merge conflicts
-
SDKTOOLS-367 When generating a Touch app, the Loader's path to the framework is wrong
-
SDKTOOLS-392 App builds for all frameworks/versions should consistently use build.properties
-
SDKTOOLS-414 No error message indicating that embedded version of Compass/Sass require Ruby 1.8 or 1.9
-
SDKTOOLS-421 App build process skips resource copy under certain conditions
-
SDKTOOLS-443 Commented out script tags can break page compiler
-
SDKTOOLS-445 Required package properties are not inherited by secondary packages during builds
-
SDKTOOLS-447 System proxy settings are not picked up by upgrade or package commands
-
SDKTOOLS-480 sencha app upgrade from Touch 2.1 to 2.2 misses some files
- Sass (1)
-
SDKTOOLS-426 Themes cannot control the image paths if they are not built using Cmd
- Slicer (1)
-
SDKTOOLS-478 Screenshot-runner has invalid check for duplicate slicer paths
- Upgrade (2)
-
SDKTOOLS-460 sencha app upgrade will corrupt certain files after detecting a merge conflict
-
SDKTOOLS-484 Touch app upgrades generate merge conflicts
Total: 25
Known Issues
- Compiler (1)
-
SDKTOOLS-327 Sencha Touch applications cannot use optimizer
- Misc (1)
-
SDKTOOLS-487 app refresh creates empty folder
Total: 2
Release Notes for Sencha Cmd 3.1.1
Date: April 5, 2013
Version Number: 3.1.1.274
Windows -
Mac OS X -
Linux/64 -
Linux/32
New Features
Bugs Fixed
- Compiler (1)
-
SDKTOOLS-409 YUI CSS Compression produces invalid CSS for Windows Phone
Total: 1
Release Notes for Sencha Cmd 3.1.1 Beta 1
Date: March 28, 2013
Version Number: 3.1.1.270
Windows -
Mac OS X -
Linux/64 -
Linux/32
New Features
- Compiler (1)
-
SDKTOOLS-350 Enable optimizer for production Ext JS application builds
- Package (1)
-
SDKTOOLS-394 Package repository needs before/after hooks to handle pkg add/remove events
Total: 2
Bugs Fixed
- Misc (1)
-
SDKTOOLS-388 Sencha runner in ant-utils does not pass null property values
- Package (1)
-
SDKTOOLS-393 The shorthand "sencha repository" command throws an error but the longer "sencha package repository" works
Total: 2
Release Notes for Sencha Cmd 3.1.0
Date: March 21, 2013
Version Number: 3.1.0.256
Windows -
Mac OS X -
Linux/64 -
Linux/32
Bugs Fixed
- Compiler (1)
-
SDKTOOLS-370 Compiler produces wrong loader path metadata under some circumstances
- Generator (1)
-
SDKTOOLS-372 sencha generate theme fails for Ext JS 4.2 workspace
- Misc (4)
-
SDKTOOLS-369 Apps need to be able to build without building in their theme
-
SDKTOOLS-373 sencha generate app fails mysteriously if you don't supply the app name
-
SDKTOOLS-374 Resource inheritance does not include base themes for app builds
-
SDKTOOLS-376 sencha app upgrade fails on Touch 2.1 app generated using previous versions of Cmd
- Slicer (1)
-
SDKTOOLS-371 Theme build process fails when mixed with some third-party components due to hard-coded require-all statement
Total: 7
Release Notes for Sencha Cmd 3.1.0 RC2
Date: March 14, 2013
Version Number: 3.1.0.239
Windows -
Mac OS X -
Linux/64 -
Linux/32
New Features
- Misc (1)
-
SDKTOOLS-326 Sencha Touch applications should be able to use packages
Total: 1
Bugs Fixed
- Compiler (2)
-
SDKTOOLS-258 Sencha Touch builds get Ext.device.* in all builds
-
SDKTOOLS-348 Overrides of mixins must be sorted ahead of users of the mixin
- Documentation (1)
-
SDKTOOLS-356 Several commands are missing internal help
- Misc (3)
-
SDKTOOLS-329 sencha js minify reports "unsupported compressor" if paths contain spaces
-
SDKTOOLS-344 sencha app build fails for folders containing spaces
-
SDKTOOLS-349 App refresh does not update packages in workspace based on what app requires
Total: 6
Release Notes for Sencha Cmd 3.1.0 RC
Date: February 27, 2013
Version Number: 3.1.0.192
Windows -
Mac OS X -
Linux/64 -
Linux/32
New Features
- Misc (3)
-
SDKTOOLS-331 sencha ant command should recognize -Dprop=value property definition
-
SDKTOOLS-332 sencha ant should execute the default target of the ant file if no targets are specified
-
SDKTOOLS-333 sencha ant command should use dir from "sencha -cwd=dir" to find ant file
Total: 3
Bugs Fixed
- Misc (5)
-
SDKTOOLS-339 app.locale and app.theme definition is case-sensitive
-
SDKTOOLS-340 3.1 needs to be compatible with extjs 4.1 app build process without theme slicing
-
SDKTOOLS-341 3.1 needs to be able up run "app upgrade -noframework' against extjs 4.1 apps
-
SDKTOOLS-342 3.1 needs an upgrade path for extjs apps from 4.1 to 4.2
-
SDKTOOLS-343 "sencha theme *" need correct behaviors with 4.1 / 4.2
Total: 5
Release Notes for Sencha Cmd 3.1.0 Beta
Date: February 13, 2013
Version Number: 3.1.0.130
Ext JS: This version of Sencha Cmd 3.1 is not compatible with Ext JS 4.1.x
but this will be corrected in the next release. For this release, only
Ext JS 4.2.0.488 is supported.
Sencha Touch: This version of Sencha Cmd 3.1 is compatible with
Sencha Touch 2.1+ however the new optimizer and package features (discussed
below) are not yet supported for Sencha Touch applications.
Class Optimizer
This release of Sencha Cmd introduces the optimize command on the
Compiler. The initial optimization provided is to rewrite class declarations
into a more optimal form. This is beneficial because compiled code avoid many
run-time checks and process things synchronously (vs. asynchronously as with
the Sencha class system). This results is significantly fewer function calls
and memory allocation required to load the JavaScript code of the framework
and application.
Packages
The biggest new feature of Sencha Cmd 3.1 is that of packages. These are in
many ways similar to applications from a build perspective. Like applications,
packages contain:
- JavaScript
- SASS
- Resources
Packages come in three basic flavors: theme, code and locale. All package types
can contain any of the above assets. They primarily differ in how applications
use them. For theme and locale packages, only one of each can be active during
a given build. An application may require multiple theme and locale packages,
but only one will be activated for a build based on build properties. The
defaults are stored in your .sencha/app/sencha.cfg file and these
can be specified on the command line to override the default.
Packages live at the top of the application/workspace in a "./packages"
folder. That is, package "foo" is stored in "./packages/foo". In this
release, only Ext JS 4.2 applications or other packages can use packages. In
order to use a package, an application "requires" it in its app.json file:
{
"name": "foo",
"type": "code",
"version": "1.0.0",
"compatVersion": "1.0.0",
"requires": [{
"name": "bar",
"version": "1.1.0"
}]
}
Packages can require other packages in their "package.json" file in the same way.
Guides describing all of the particulars of packages will be available soon.
New Features
- Compiler (1)
-
SDKTOOLS-324 Compiler should optimize class declarations
- Misc (5)
-
SDKTOOLS-268 Code generators should support 3-way merge to facilitate user modification of generated code
-
SDKTOOLS-269 Model generator should support regeneration to modify the fields
-
SDKTOOLS-270 Model generator should be compatible with Sencha Architect
-
SDKTOOLS-272 Plugin infrastructure should allow for multiple independent plugins
-
SDKTOOLS-325 Ability to generate, build and consume packages
Total: 6
Bugs Fixed
- Compiler (3)
-
SDKTOOLS-302 Can't configure compile options for Touch builds
-
SDKTOOLS-316 Compiler incorrectly translates empty for loop
-
SDKTOOLS-317 Compiler incorrectly optimizes hex numbers
- Misc (5)
-
SDKTOOLS-151 Windows (Win7) new build tools make build causes error when using image resources file itself
-
SDKTOOLS-245 Signing fails in Mac OS with Sencha CMD 3.0.0.190 (Freshly Generated App)
-
SDKTOOLS-271 Code generators incompatible with Sencha Architect should report error if run from an Architect project
-
SDKTOOLS-285 Missing auto dependency on identifier property for touch models
-
SDKTOOLS-311 Slicer is not producing proper image slices for Neptune
Total: 8
Release Notes for Sencha Cmd 3.0.2
Date: December 26, 2012
Version Number: 3.0.2.288
Bugs Fixed
- Misc (1)
-
SDKTOOLS-282 App upgrade does not properly upgrade themes to new package structure
Total: 1
Release Notes for Sencha Cmd 3.0.1
Date: December 23, 2012
Version Number: 3.0.2.285
Bugs Fixed
- Generator (3)
-
SDKTOOLS-226 The buildPaths property is obsolete and should be removed from app.json.tpl
-
SDKTOOLS-251 Sencha generate form extends Ext.form.Fieldset instead of Ext.form.Panel
-
SDKTOOLS-273 Generated config.rb extensions can have naming conflicts
- Misc (5)
-
SDKTOOLS-222 App cache checksum fails for images
-
SDKTOOLS-252 Testing build have included sencha-touch.js file what would make a duplicate while running the app
-
SDKTOOLS-259 when upgrading touch app from 2.0.x -> 2.1.x, sdk location isn't updated
-
SDKTOOLS-262 Native build option in app-build still references 'buildPaths' app.json property
-
SDKTOOLS-277 Move 'sencha package' to 'sencha app package'
- Slicer (1)
-
SDKTOOLS-257 Theme build does not merge images properly and is inconsistently documented
Total: 9
Release Notes for Sencha Cmd 3.0.0 (GA)
Release Date: November 6, 2012
Version Number: 3.0.0.250
Bugs Fixed
- Misc (16)
-
SDKTOOLS-159 Need a common strategy for ext and touch apps for rebuilding css via compass
-
SDKTOOLS-173 sencha ant production build does not work for Ext JS apps
-
SDKTOOLS-175 Compiler does not recognize hasMany/hasOne/belongsTo as Model dependencies
-
SDKTOOLS-176 Application compile step needs to be customizable
-
SDKTOOLS-194 Error reporting in "sencha app upgrade" is not always clear
-
SDKTOOLS-200 Invalid resourced created on sencha create app (touch 2.1-rc1 cmd 188)
-
SDKTOOLS-205 Overeager matching for -namespace
-
SDKTOOLS-208 senchacmd --sdk /pathtosdk generate app SampleApp /pathtosampleapp Fails
-
SDKTOOLS-210 sencha generate app Does Not Create 'model' and 'store' directories for Ext JS apps
-
SDKTOOLS-215 Need a -run switch for "sencha app build -run native" since build no longer runs by default
-
SDKTOOLS-217 There is a conflict with the use of stores, models and views config in controller and bootstrap.js
-
SDKTOOLS-219 Compile directives can conflict with IE conditional comments so allow spaces between // and @
-
SDKTOOLS-229 Ext JS app build does not remove debug code
-
SDKTOOLS-231 Update sencha.exe to work on 64-bit JRE
-
SDKTOOLS-238 NullPointerException in 3.0.0.230
-
SDKTOOLS-242 Apps in Workspaces have wrong default ext image paths
- MobilePackager (1)
-
SDKTOOLS-196 Native Android packaging fails on Sencha Cmd v3.0.0.181
Total: 17
Release Notes for Sencha Cmd 3.0.0 RC1
Release Date: October 25, 2012
Version Number: 3.0.0.230
Highlights
The highlights are improved UTF-8/multi-charset handling and correcting the
overwriting issues with "sencha app upgrade". To use the new charset directive in
your JS files, place this as the first line:
//@charset ISO-8859-1
Instead of "ISO-8859-1", the value to the right of charset
can be
any valid Java
charset
name. The default is "UTF-8".
The charset
directive is used to describe the encoding of an input
file to the compiler. This does not effect the encoding of the output file. The
content of the input file is converted to Unicode internally.
Also, auto-dependency detection has been improved so there should be fewer cases
where you need "requires" or "uses" for the compiler and not the dev environment
(due to synchronous loading).
Bugs Fixed
- Cmd (1)
-
TOUCH-3562 Sencha generate app corrupts binary template files
- Documentation (1)
-
SDKTOOLS-178 Clarification on compiler debug directive
- Misc (13)
-
SDKTOOLS-185 Concatenate process does not properly encode French characters
-
SDKTOOLS-186 Running sencha app build on CI server will hang trying to connect to device
-
SDKTOOLS-187 Obfuscated third-party libraries using Ext JS require symbol metadata
-
SDKTOOLS-188 [BUG] Sencha Cmd 3.0.0.181 app upgrade
-
SDKTOOLS-193 Concatenate encodes app-all.js using ANSI instead of UTF8
-
SDKTOOLS-195 The sencha theme build command does not accept simple theme name argument
-
SDKTOOLS-198 Compiler does not detect instantiation point auto-dependencies
-
SDKTOOLS-199 Using 'upgrade' command overwrites files
-
SDKTOOLS-205 Overeager matching for -namespace
-
SDKTOOLS-206 Issue with exclude -all?
-
SDKTOOLS-207 Ant clean target not working
-
SDKTOOLS-211 JSB parse options get reset during compilation
-
SDKTOOLS-47 Fetching Components via xtype
Total: 0
Release Notes for Sencha Cmd 3.0.0 Beta 3
Release Date: October 5, 2012
Version Number: 3.0.0.190
Bugs Fixed
- Compiler (1)
-
SDKTOOLS-177 No dianogstic message when set match criteria match nothing in the classpath
- Generator (1)
-
SDKTOOLS-170 ExtJs autogenerated sample app contains maintainFlex property, which is nowhere implemented in code
- Misc (4)
-
SDKTOOLS-162 Sencha Cmd v3.0 :: CSS is overriden and erased // bad relative reference to images
-
SDKTOOLS-172 Metadata is generated for the fake MVC Application-derived class
-
SDKTOOLS-180 Using -append on compile concat or meta commands fails if output file has no path specified
-
SDKTOOLS-184 Dependency re-scan should be triggered when options change on compile context
Total: 9
Release Notes for Sencha Cmd 3.0.0 Beta 2
Release Date: September 26, 2012
Version Number: 3.0.0.181
Customizable Builds
In this release we have introduced a new, top-level build script to provide a
consistent and customizable build process for Ext JS and Sencha Touch applications
The "sencha app build" is one way to perform an application build. This now calls
in to an Ant script to perform
the actual build. This means the build can now be customized as needed.
The Ant equivalent of "sencha app build [production|testing|native|package]" is:
sencha ant [production|testing|native|package] build
If you have Ant in your PATH, you can use it directly:
ant [production|testing|native|package] build
This runs the generated Ant build script to build your application. The reason
the arguments are swapped vs "sencha app build" is to accommodate how Ant processes
the command line.
That's all that is necessary to use the Ant script. You don't have to do
anything extra to get Ant (it is provided by Sencha Cmd) and you don't have to
know anything about Ant. That is, unless you want to customize the build script.
For details on tuning your application's Ant build script, start by reading the
comments contained in "build.xml" (the Ant build script). Also you can consult the
Ant Manual
for details on using Ant.
Alternatively, you can chose to wrap your own build process around the
"sencha app build" command.
Bugs Fixed
- Cmd (3)
-
TOUCH-3450 [2.1 beta3] Bug in the config.rb file (SASS Compile)
-
TOUCH-3454 [2.1 beta3] sencha generate app failed on linux64
-
TOUCH-3466 [2.1.0-b3] Ext.Loader path problem
- Misc (7)
-
SDKTOOLS-110 Generated app templates need to be loadable via file protocol
-
SDKTOOLS-155 Problems with the encoding characters using the compiler compression
-
SDKTOOLS-157 Sencha Cmd does not auto-detect xtype/xclass dependencies
-
SDKTOOLS-158 Sencha app upgrade doesn't work
-
SDKTOOLS-163 sencha app build: classes out of order
-
SDKTOOLS-164 Sencha Cmd 3.0 and Cygwin
-
SDKTOOLS-37 app-all.js is using ANSI not UTF8
- compiler (1)
-
SDKTOOLS-156 Compiler does not recognize xtype in Ext.define and create appropriate alias entries
- jsbuilder (2)
-
SDKTOOLS-101 Including a file that contains a string with more than 8192 characters breaks build process
-
SDKTOOLS-104 Remove "url" from app.json
Total: 13