{ "id": "168419", "key": "TIMOB-24829", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "18429", "description": "", "name": "Hyperloop 2.2.0", "archived": false, "released": true, "releaseDate": "2017-10-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-11-20T10:28:06.000+0000", "created": "2017-06-15T13:00:03.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "hyperloop" ], "versions": [ { "id": "19381", "name": "Hyperloop 2.1.1", "archived": false, "released": true, "releaseDate": "2017-06-02" } ], "issuelinks": [ { "id": "56163", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "169709", "key": "TIMOB-25240", "fields": { "summary": "Android: Improve incremental build times", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-11-20T20:30:18.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" }, { "id": "13715", "name": "Hyperloop", "description": "Hyperloop project" } ], "description": "When compiling an Android Hyperloop project it takes a long time to compile a project.\r\n{quote}\r\n[INFO] Processing JavaScript files\r\n{quote}\r\n\r\nTakes a very long time (minutes!) and results in:\r\n{quote}\r\n[INFO] Encrypting JavaScript files: /home/miga/.titanium/mobilesdk/linux/6.1.0.GA/android/titanium_prep.linux64 \"com.miga.calendarview\" \"/home/miga/dev/titanium/hyper.cal/build/android/assets\" \"alloy/CFG.js\" \"app.js\" \"alloy/backbone.js\" \"alloy/constants.js\" \"alloy/controllers/BaseController.js\" \"alloy/controllers/index.js\" \"alloy/styles/index.js\" \"alloy/sync/localStorage.js\" \"alloy/sync/properties.js\" \"alloy/sync/sql.js\" \"alloy/underscore.js\" \"alloy/widget.js\" \"alloy.js\" \"calendar-android.js\" \"hyperloop/android.accounts.Account.js\" \"hyperloop/android.accounts.js\" \"hyperloop/android.animation.Animator$AnimatorListener.js\" \"hyperloop/android.animation.Animator$AnimatorPauseListener.js\" \"hyperloop/android.animation.Animator.js\" \"hyperloop/android.animation.LayoutTransition$TransitionListener.js\" \"hyperloop/android.animation.LayoutTransition.js\" \"hyperloop/android.animation.StateListAnimator.js\" \"hyperloop/android.animation.TimeInterpolator.js\" \"hyperloop/android.animation.TypeEvaluator.js\" \"hyperloop/android.animation.ValueAnimator$AnimatorUpdateListener.js\" \"hyperloop/android.animation.ValueAnimator.js\" \"hyperloop/android.animation.js\" \"hyperloop/android.app.ActionBar$LayoutParams.js\" \"hyperloop/android.app.ActionBar$OnMenuVisibilityListener.js\" \"hyperloop/android.app.ActionBar$OnNavigationListener.js\" \"hyperloop/android.app.ActionBar$Tab.js\" \"hyperloop/android.app.ActionBar$TabListener.js\" \"hyperloop/android.app.ActionBar.js\" \"hyperloop/android.app.Activity.js\" \"hyperloop/android.app.ActivityManager$TaskDescription.js\" \"hyperloop/android.app.ActivityManager.js\" \"hyperloop/android.app.Application$ActivityLifecycleCallbacks.js\" \"hyperloop/android.app.Application$OnProvideAssistDataListener.js\" \"hyperloop/android.app.Application.js\" \"hyperloop/android.app.Dialog.js\" \"hyperloop/android.app.Fragment$InstantiationException.js\" \"hyperloop/android.app.Fragment$SavedState.js\" \"hyperloop/android.app.Fragment.js\" \"hyperloop/android.app.FragmentManager$BackStackEntry.js\" \"hyperloop/android.app.FragmentManager$OnBackStackChangedListener.js\" \"hyperloop/android.app.FragmentManager.js\" \"hyperloop/android.app.FragmentTransaction.js\" \"hyperloop/android.app.LoaderManager$LoaderCallbacks.js\" \"hyperloop/android.app.LoaderManager.js\" \"hyperloop/android.app.PendingIntent$CanceledException.js\" \"hyperloop/android.app.PendingIntent$OnFinished.js\" \"hyperloop/android.app.PendingIntent.js\" \"hyperloop/android.app.SharedElementCallback$OnSharedElementsReadyListener.js\" \"hyperloop/android.app.SharedElementCallback.js\" \"hyperloop/android.app.TaskStackBuilder.js\" \"hyperloop/android.app.VoiceInteractor$AbortVoiceRequest.js\" \"hyperloop/android.app.VoiceInteractor$CommandRequest.js\" \"hyperloop/android.app.VoiceInteractor$CompleteVoiceRequest.js\" \"hyperloop/android.app.VoiceInteractor$ConfirmationRequest.js\" \"hyperloop/android.app.VoiceInteractor$PickOptionRequest$Option.js\" \"hyperloop/android.app.VoiceInteractor$PickOptionRequest.js\" \"hyperloop/android.app.VoiceInteractor$Prompt.js\" \"hyperloop/android.app.VoiceInteractor$Request.js\" \"hyperloop/android.app.VoiceInteractor.js\" \"hyperloop/android.app.assist.AssistContent.js\" \"hyperloop/android.app.assist.js\" \"hyperloop/android.app.js\" \"hyperloop/android.content.BroadcastReceiver$PendingResult.js\" \"hyperloop/android.content.BroadcastReceiver.js\" \"hyperloop/android.content.ClipData$Item.js\" \"hyperloop/android.content.ClipData.js\" \"hyperloop/android.content.ClipDescription.js\" \"hyperloop/android.content.ComponentCallbacks.js\" \"hyperloop/android.content.ComponentName.js\" \"hyperloop/android.content.ContentProvider$PipeDataWriter.js\" \"hyperloop/android.content.ContentProvider.js\" \"hyperloop/android.content.ContentProviderClient.js\" \"hyperloop/android.content.ContentResolver.js\" \"hyperloop/android.content.ContentValues.js\" \"hyperloop/android.content.Context.js\" \"hyperloop/android.content.ContextWrapper.js\" \"hyperloop/android.content.DialogInterface$OnCancelListener.js\" \"hyperloop/android.content.DialogInterface$OnClickListener.js\" \"hyperloop/android.content.DialogInterface$OnDismissListener.js\" \"hyperloop/android.content.DialogInterface$OnKeyListener.js\" \"hyperloop/android.content.DialogInterface$OnMultiChoiceClickListener.js\" \"hyperloop/android.content.DialogInterface$OnShowListener.js\" \"hyperloop/android.content.DialogInterface.js\" \"hyperloop/android.content.Intent$FilterComparison.js\" \"hyperloop/android.content.Intent$ShortcutIconResource.js\" \"hyperloop/android.content.Intent.js\" \"hyperloop/android.content.IntentFilter$AuthorityEntry.js\" \"hyperloop/android.content.IntentFilter$MalformedMimeTypeException.js\" \"hyperloop/android.content.IntentFilter.js\" \"hyperloop/android.content.IntentSender$OnFinished.js\" \"hyperloop/android.content.IntentSender$SendIntentException.js\" \"hyperloop/android.content.IntentSender.js\" \"hyperloop/android.content.Loader$ForceLoadContentObserver.js\" \"hyperloop/android.content.Loader$OnLoadCanceledListener.js\" \"hyperloop/android.content.Loader$OnLoadCompleteListener.js\" \"hyperloop/android.content.Loader.js\" \"hyperloop/android.content.ServiceConnection.js\" \"hyperloop/android.content.SharedPreferences$Editor.js\" \"hyperloop/android.content.SharedPreferences$OnSharedPreferenceChangeListener.js\" \"hyperloop/android.content.SharedPreferences.js\" \"hyperloop/android.content.SyncInfo.js\" \"hyperloop/android.content.SyncRequest$Builder.js\" \"hyperloop/android.content.SyncRequest.js\" \"hyperloop/android.content.SyncStatusObserver.js\" \"hyperloop/android.content.js\" \"hyperloop/android.content.pm.ActivityInfo.js\" \"hyperloop/android.content.pm.ApplicationInfo$DisplayNameComparator.js\" \"hyperloop/android.content.pm.ApplicationInfo.js\" \"hyperloop/android.content.pm.ComponentInfo.js\" \"hyperloop/android.content.pm.InstrumentationInfo.js\" \"hyperloop/android.content.pm.PackageInfo.js\" \"hyperloop/android.content.pm.PackageInstaller$Session.js\" \"hyperloop/android.content.pm.PackageInstaller$SessionCallback.js\" \"hyperloop/android.content.pm.PackageInstaller$SessionInfo.js\" \"hyperloop/android.content.pm.PackageInstaller$SessionParams.js\" \"hyperloop/android.content.pm.PackageInstaller.js\" \"hyperloop/android.content.pm.PackageItemInfo$DisplayNameComparator.js\" \"hyperloop/android.content.pm.PackageItemInfo.js\" \"hyperloop/android.content.pm.PackageManager$NameNotFoundException.js\" \"hyperloop/android.content.pm.PackageManager.js\" \"hyperloop/android.content.pm.PermissionGroupInfo.js\" \"hyperloop/android.content.pm.PermissionInfo.js\" \"hyperloop/android.content.pm.ProviderInfo.js\" \"hyperloop/android.content.pm.ResolveInfo$DisplayNameComparator.js\" \"hyperloop/android.content.pm.ResolveInfo.js\" \"hyperloop/android.content.pm.ServiceInfo.js\" \"hyperloop/android.content.pm.js\" \"hyperloop/android.content.res.AssetFileDescriptor$AutoCloseInputStream.js\" \"hyperloop/android.content.res.AssetFileDescriptor$AutoCloseOutputStream.js\" \"hyperloop/android.content.res.AssetFileDescriptor.js\" \"hyperloop/android.content.res.AssetManager$AssetInputStream.js\" \"hyperloop/android.content.res.AssetManager.js\" \"hyperloop/android.content.res.ColorStateList.js\" \"hyperloop/android.content.res.Configuration.js\" \"hyperloop/android.content.res.Resources$NotFoundException.js\" \"hyperloop/android.content.res.Resources$Theme.js\" \"hyperloop/android.content.res.Resources.js\" \"hyperloop/android.content.res.TypedArray.js\" \"hyperloop/android.content.res.XmlResourceParser.js\" \"hyperloop/android.content.res.js\" \"hyperloop/android.database.CharArrayBuffer.js\" \"hyperloop/android.database.ContentObserver.js\" \"hyperloop/android.database.Cursor.js\" \"hyperloop/android.database.DataSetObserver.js\" \"hyperloop/android.database.DatabaseErrorHandler.js\" \"hyperloop/android.database.js\" \"hyperloop/android.database.sqlite.SQLiteClosable.js\" \"hyperloop/android.database.sqlite.SQLiteCursorDriver.js\" \"hyperloop/android.database.sqlite.SQLiteDatabase$CursorFactory.js\" \"hyperloop/android.database.sqlite.SQLiteDatabase.js\" \"hyperloop/android.database.sqlite.SQLiteProgram.js\" \"hyperloop/android.database.sqlite.SQLiteQuery.js\" \"hyperloop/android.database.sqlite.SQLiteStatement.js\" \"hyperloop/android.database.sqlite.SQLiteTransactionListener.js\" \"hyperloop/android.database.sqlite.js\" \"hyperloop/android.graphics.Bitmap$CompressFormat.js\" \"hyperloop/android.graphics.Bitmap$Config.js\" \"hyperloop/android.graphics.Bitmap.js\" \"hyperloop/android.graphics.BitmapFactory$Options.js\" \"hyperloop/android.graphics.BitmapFactory.js\" \"hyperloop/android.graphics.Canvas$EdgeType.js\" \"hyperloop/android.graphics.Canvas$VertexMode.js\" \"hyperloop/android.graphics.Canvas.js\" \"hyperloop/android.graphics.Color.js\" \"hyperloop/android.graphics.ColorFilter.js\" \"hyperloop/android.graphics.DrawFilter.js\" \"hyperloop/android.graphics.MaskFilter.js\" \"hyperloop/android.graphics.Matrix$ScaleToFit.js\" \"hyperloop/android.graphics.Matrix.js\" \"hyperloop/android.graphics.Movie.js\" \"hyperloop/android.graphics.Outline.js\" \"hyperloop/android.graphics.Paint$Align.js\" \"hyperloop/android.graphics.Paint$Cap.js\" \"hyperloop/android.graphics.Paint$FontMetrics.js\" \"hyperloop/android.graphics.Paint$FontMetricsInt.js\" \"hyperloop/android.graphics.Paint$Join.js\" \"hyperloop/android.graphics.Paint$Style.js\" \"hyperloop/android.graphics.Paint.js\" \"hyperloop/android.graphics.Path$Direction.js\" \"hyperloop/android.graphics.Path$FillType.js\" \"hyperloop/android.graphics.Path$Op.js\" \"hyperloop/android.graphics.Path.js\" \"hyperloop/android.graphics.PathEffect.js\" \"hyperloop/android.graphics.Picture.js\" \"hyperloop/android.graphics.Point.js\" \"hyperloop/android.graphics.PorterDuff$Mode.js\" \"hyperloop/android.graphics.PorterDuff.js\" \"hyperloop/android.graphics.Rasterizer.js\" \"hyperloop/android.graphics.Rect.js\" \"hyperloop/android.graphics.RectF.js\" \"hyperloop/android.graphics.Region$Op.js\" \"hyperloop/android.graphics.Region.js\" \"hyperloop/android.graphics.Shader$TileMode.js\" \"hyperloop/android.graphics.Shader.js\" \"hyperloop/android.graphics.SurfaceTexture$OnFrameAvailableListener.js\" \"hyperloop/android.graphics.SurfaceTexture$OutOfResourcesException.js\" \"hyperloop/android.graphics.SurfaceTexture.js\" \"hyperloop/android.graphics.Typeface.js\" \"hyperloop/android.graphics.Xfermode.js\" \"hyperloop/android.graphics.drawable.Drawable$Callback.js\" \"hyperloop/android.graphics.drawable.Drawable$ConstantState.js\" \"hyperloop/android.graphics.drawable.Drawable.js\" \"hyperloop/android.graphics.drawable.DrawableWrapper.js\" \"hyperloop/android.graphics.drawable.InsetDrawable.js\" \"hyperloop/android.graphics.drawable.ShapeDrawable$ShaderFactory.js\" \"hyperloop/android.graphics.drawable.ShapeDrawable.js\" \"hyperloop/android.graphics.drawable.js\" \"hyperloop/android.graphics.drawable.shapes.OvalShape.js\" \"hyperloop/android.graphics.drawable.shapes.RectShape.js\" \"hyperloop/android.graphics.drawable.shapes.Shape.js\" \"hyperloop/android.graphics.drawable.shapes.js\" \"hyperloop/android.graphics.js\" \"hyperloop/android.js\" \"hyperloop/android.media.AudioAttributes$Builder.js\" \"hyperloop/android.media.AudioAttributes.js\" \"hyperloop/android.media.MediaDescription$Builder.js\" \"hyperloop/android.media.MediaDescription.js\" \"hyperloop/android.media.MediaMetadata$Builder.js\" \"hyperloop/android.media.MediaMetadata.js\" \"hyperloop/android.media.Rating.js\" \"hyperloop/android.media.js\" \"hyperloop/android.media.session.MediaController$Callback.js\" \"hyperloop/android.media.session.MediaController$PlaybackInfo.js\" \"hyperloop/android.media.session.MediaController$TransportControls.js\" \"hyperloop/android.media.session.MediaController.js\" \"hyperloop/android.media.session.MediaSession$Token.js\" \"hyperloop/android.media.session.MediaSession.js\" \"hyperloop/android.media.session.PlaybackState$Builder.js\" \"hyperloop/android.media.session.PlaybackState$CustomAction$Builder.js\" \"hyperloop/android.media.session.PlaybackState$CustomAction.js\" \"hyperloop/android.media.session.PlaybackState.js\" \"hyperloop/android.media.session.js\" \"hyperloop/android.net.Uri$Builder.js\" \"hyperloop/android.net.Uri.js\" \"hyperloop/android.net.js\" \"hyperloop/android.os.BaseBundle.js\" \"hyperloop/android.os.Bundle.js\" \"hyperloop/android.os.CancellationSignal$OnCancelListener.js\" \"hyperloop/android.os.CancellationSignal.js\" \"hyperloop/android.os.Handler$Callback.js\" \"hyperloop/android.os.Handler.js\" \"hyperloop/android.os.IBinder$DeathRecipient.js\" \"hyperloop/android.os.IBinder.js\" \"hyperloop/android.os.IInterface.js\" \"hyperloop/android.os.Looper.js\" \"hyperloop/android.os.Message.js\" \"hyperloop/android.os.MessageQueue$IdleHandler.js\" \"hyperloop/android.os.MessageQueue$OnFileDescriptorEventListener.js\" \"hyperloop/android.os.MessageQueue.js\" \"hyperloop/android.os.Messenger.js\" \"hyperloop/android.os.Parcel.js\" \"hyperloop/android.os.ParcelFileDescriptor$AutoCloseInputStream.js\" \"hyperloop/android.os.ParcelFileDescriptor$AutoCloseOutputStream.js\" \"hyperloop/android.os.ParcelFileDescriptor$FileDescriptorDetachedException.js\" \"hyperloop/android.os.ParcelFileDescriptor$OnCloseListener.js\" \"hyperloop/android.os.ParcelFileDescriptor.js\" \"hyperloop/android.os.Parcelable$ClassLoaderCreator.js\" \"hyperloop/android.os.Parcelable$Creator.js\" \"hyperloop/android.os.Parcelable.js\" \"hyperloop/android.os.PatternMatcher.js\" \"hyperloop/android.os.PersistableBundle.js\" \"hyperloop/android.os.ResultReceiver.js\" \"hyperloop/android.os.UserHandle.js\" \"hyperloop/android.os.Vibrator.js\" \"hyperloop/android.os.js\" \"hyperloop/android.transition.PathMotion.js\" \"hyperloop/android.transition.Scene.js\" \"hyperloop/android.transition.Transition$EpicenterCallback.js\" \"hyperloop/android.transition.Transition$TransitionListener.js\" \"hyperloop/android.transition.Transition.js\" \"hyperloop/android.transition.TransitionManager.js\" \"hyperloop/android.transition.TransitionPropagation.js\" \"hyperloop/android.transition.TransitionValues.js\" \"hyperloop/android.transition.js\" \"hyperloop/android.util.AttributeSet.js\" \"hyperloop/android.util.DisplayMetrics.js\" \"hyperloop/android.util.Printer.js\" \"hyperloop/android.util.Property.js\" \"hyperloop/android.util.Size.js\" \"hyperloop/android.util.SizeF.js\" \"hyperloop/android.util.SparseArray.js\" \"hyperloop/android.util.SparseBooleanArray.js\" \"hyperloop/android.util.TypedValue.js\" \"hyperloop/android.util.js\" \"hyperloop/android.view.ActionMode$Callback.js\" \"hyperloop/android.view.ActionMode$Callback2.js\" \"hyperloop/android.view.ActionMode.js\" \"hyperloop/android.view.ActionProvider$VisibilityListener.js\" \"hyperloop/android.view.ActionProvider.js\" \"hyperloop/android.view.ContextMenu$ContextMenuInfo.js\" \"hyperloop/android.view.ContextMenu.js\" \"hyperloop/android.view.ContextThemeWrapper.js\" \"hyperloop/android.view.Display$Mode.js\" \"hyperloop/android.view.Display.js\" \"hyperloop/android.view.DragEvent.js\" \"hyperloop/android.view.Gravity.js\" \"hyperloop/android.view.InputDevice$MotionRange.js\" \"hyperloop/android.view.InputDevice.js\" \"hyperloop/android.view.InputEvent.js\" \"hyperloop/android.view.InputQueue$Callback.js\" \"hyperloop/android.view.InputQueue.js\" \"hyperloop/android.view.KeyCharacterMap$KeyData.js\" \"hyperloop/android.view.KeyCharacterMap$UnavailableException.js\" \"hyperloop/android.view.KeyCharacterMap.js\" \"hyperloop/android.view.KeyEvent$Callback.js\" \"hyperloop/android.view.KeyEvent$DispatcherState.js\" \"hyperloop/android.view.KeyEvent.js\" \"hyperloop/android.view.LayoutInflater$Factory.js\" \"hyperloop/android.view.LayoutInflater$Factory2.js\" \"hyperloop/android.view.LayoutInflater$Filter.js\" \"hyperloop/android.view.LayoutInflater.js\" \"hyperloop/android.view.Menu.js\" \"hyperloop/android.view.MenuInflater.js\" \"hyperloop/android.view.MenuItem$OnActionExpandListener.js\" \"hyperloop/android.view.MenuItem$OnMenuItemClickListener.js\" \"hyperloop/android.view.MenuItem.js\" \"hyperloop/android.view.MotionEvent$PointerCoords.js\" \"hyperloop/android.view.MotionEvent$PointerProperties.js\" \"hyperloop/android.view.MotionEvent.js\" \"hyperloop/android.view.SearchEvent.js\" \"hyperloop/android.view.SubMenu.js\" \"hyperloop/android.view.Surface$OutOfResourcesException.js\" \"hyperloop/android.view.Surface.js\" \"hyperloop/android.view.SurfaceHolder$BadSurfaceTypeException.js\" \"hyperloop/android.view.SurfaceHolder$Callback.js\" \"hyperloop/android.view.SurfaceHolder$Callback2.js\" \"hyperloop/android.view.SurfaceHolder.js\" \"hyperloop/android.view.TouchDelegate.js\" \"hyperloop/android.view.View$AccessibilityDelegate.js\" \"hyperloop/android.view.View$BaseSavedState.js\" \"hyperloop/android.view.View$DragShadowBuilder.js\" \"hyperloop/android.view.View$MeasureSpec.js\" \"hyperloop/android.view.View$OnApplyWindowInsetsListener.js\" \"hyperloop/android.view.View$OnAttachStateChangeListener.js\" \"hyperloop/android.view.View$OnClickListener.js\" \"hyperloop/android.view.View$OnContextClickListener.js\" \"hyperloop/android.view.View$OnCreateContextMenuListener.js\" \"hyperloop/android.view.View$OnDragListener.js\" \"hyperloop/android.view.View$OnFocusChangeListener.js\" \"hyperloop/android.view.View$OnGenericMotionListener.js\" \"hyperloop/android.view.View$OnHoverListener.js\" \"hyperloop/android.view.View$OnKeyListener.js\" \"hyperloop/android.view.View$OnLayoutChangeListener.js\" \"hyperloop/android.view.View$OnLongClickListener.js\" \"hyperloop/android.view.View$OnScrollChangeListener.js\" \"hyperloop/android.view.View$OnSystemUiVisibilityChangeListener.js\" \"hyperloop/android.view.View$OnTouchListener.js\" \"hyperloop/android.view.View.js\" \"hyperloop/android.view.ViewGroup$LayoutParams.js\" \"hyperloop/android.view.ViewGroup$MarginLayoutParams.js\" \"hyperloop/android.view.ViewGroup$OnHierarchyChangeListener.js\" \"hyperloop/android.view.ViewGroup.js\" \"hyperloop/android.view.ViewGroupOverlay.js\" \"hyperloop/android.view.ViewOutlineProvider.js\" \"hyperloop/android.view.ViewOverlay.js\" \"hyperloop/android.view.ViewParent.js\" \"hyperloop/android.view.ViewPropertyAnimator.js\" \"hyperloop/android.view.ViewStructure.js\" \"hyperloop/android.view.ViewTreeObserver$OnDrawListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnGlobalFocusChangeListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnGlobalLayoutListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnPreDrawListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnScrollChangedListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnTouchModeChangeListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnWindowAttachListener.js\" \"hyperloop/android.view.ViewTreeObserver$OnWindowFocusChangeListener.js\" \"hyperloop/android.view.ViewTreeObserver.js\" \"hyperloop/android.view.Window$Callback.js\" \"hyperloop/android.view.Window.js\" \"hyperloop/android.view.WindowId$FocusObserver.js\" \"hyperloop/android.view.WindowId.js\" \"hyperloop/android.view.WindowInsets.js\" \"hyperloop/android.view.WindowManager$BadTokenException.js\" \"hyperloop/android.view.WindowManager$InvalidDisplayException.js\" \"hyperloop/android.view.WindowManager$LayoutParams.js\" \"hyperloop/android.view.WindowManager.js\" \"hyperloop/android.view.accessibility.AccessibilityEvent.js\" \"hyperloop/android.view.accessibility.AccessibilityNodeInfo$AccessibilityAction.js\" \"hyperloop/android.view.accessibility.AccessibilityNodeInfo$CollectionInfo.js\" \"hyperloop/android.view.accessibility.AccessibilityNodeInfo$CollectionItemInfo.js\" \"hyperloop/android.view.accessibility.AccessibilityNodeInfo$RangeInfo.js\" \"hyperloop/android.view.accessibility.AccessibilityNodeInfo.js\" \"hyperloop/android.view.accessibility.AccessibilityNodeProvider.js\" \"hyperloop/android.view.accessibility.AccessibilityRecord.js\" \"hyperloop/android.view.accessibility.AccessibilityWindowInfo.js\" \"hyperloop/android.view.accessibility.js\" \"hyperloop/android.view.animation.Animation$AnimationListener.js\" \"hyperloop/android.view.animation.Animation$Description.js\" \"hyperloop/android.view.animation.Animation.js\" \"hyperloop/android.view.animation.Interpolator.js\" \"hyperloop/android.view.animation.LayoutAnimationController$AnimationParameters.js\" \"hyperloop/android.view.animation.LayoutAnimationController.js\" \"hyperloop/android.view.animation.Transformation.js\" \"hyperloop/android.view.animation.js\" \"hyperloop/android.view.inputmethod.CompletionInfo.js\" \"hyperloop/android.view.inputmethod.CorrectionInfo.js\" \"hyperloop/android.view.inputmethod.EditorInfo.js\" \"hyperloop/android.view.inputmethod.ExtractedText.js\" \"hyperloop/android.view.inputmethod.ExtractedTextRequest.js\" \"hyperloop/android.view.inputmethod.InputConnection.js\" \"hyperloop/android.view.inputmethod.js\" \"hyperloop/android.view.js\" \"hyperloop/android.widget.FrameLayout$LayoutParams.js\" \"hyperloop/android.widget.FrameLayout.js\" \"hyperloop/android.widget.SpinnerAdapter.js\" \"hyperloop/android.widget.Toolbar$LayoutParams.js\" \"hyperloop/android.widget.Toolbar$OnMenuItemClickListener.js\" \"hyperloop/android.widget.Toolbar.js\" \"hyperloop/android.widget.js\" \"hyperloop/com.js\" \"hyperloop/com.prolificinteractive.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.CalendarDay.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.CalendarMode.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.DayViewDecorator.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.DayViewFacade.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$LayoutParams.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$SavedState.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$SelectionMode.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$ShowOtherDates.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$State.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$StateBuilder.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.OnDateSelectedListener.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.OnMonthChangedListener.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.OnRangeSelectedListener.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.format.DayFormatter.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.format.TitleFormatter.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.format.WeekDayFormatter.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.format.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.spans.DotSpan.js\" \"hyperloop/com.prolificinteractive.materialcalendarview.spans.js\" \"hyperloop/java.io.File.js\" \"hyperloop/java.io.FileDescriptor.js\" \"hyperloop/java.io.FileFilter.js\" \"hyperloop/java.io.FileInputStream.js\" \"hyperloop/java.io.FileOutputStream.js\" \"hyperloop/java.io.FilenameFilter.js\" \"hyperloop/java.io.FilterOutputStream.js\" \"hyperloop/java.io.IOException.js\" \"hyperloop/java.io.InputStream.js\" \"hyperloop/java.io.OutputStream.js\" \"hyperloop/java.io.PrintStream.js\" \"hyperloop/java.io.PrintWriter.js\" \"hyperloop/java.io.Reader.js\" \"hyperloop/java.io.Serializable.js\" \"hyperloop/java.io.Writer.js\" \"hyperloop/java.io.js\" \"hyperloop/java.js\" \"hyperloop/java.lang.AbstractStringBuilder.js\" \"hyperloop/java.lang.Appendable.js\" \"hyperloop/java.lang.Boolean.js\" \"hyperloop/java.lang.Byte.js\" \"hyperloop/java.lang.Class.js\" \"hyperloop/java.lang.ClassLoader.js\" \"hyperloop/java.lang.Double.js\" \"hyperloop/java.lang.Enum.js\" \"hyperloop/java.lang.Exception.js\" \"hyperloop/java.lang.Float.js\" \"hyperloop/java.lang.Integer.js\" \"hyperloop/java.lang.Iterable.js\" \"hyperloop/java.lang.Long.js\" \"hyperloop/java.lang.Number.js\" \"hyperloop/java.lang.Object.js\" \"hyperloop/java.lang.Package.js\" \"hyperloop/java.lang.Runnable.js\" \"hyperloop/java.lang.Short.js\" \"hyperloop/java.lang.String.js\" \"hyperloop/java.lang.StringBuffer.js\" \"hyperloop/java.lang.StringBuilder.js\" \"hyperloop/java.lang.Thread$State.js\" \"hyperloop/java.lang.Thread$UncaughtExceptionHandler.js\" \"hyperloop/java.lang.Thread.js\" \"hyperloop/java.lang.ThreadGroup.js\" \"hyperloop/java.lang.Throwable$PrintStreamOrWriter.js\" \"hyperloop/java.lang.Throwable.js\" \"hyperloop/java.lang.annotation.Annotation.js\" \"hyperloop/java.lang.annotation.js\" \"hyperloop/java.lang.js\" \"hyperloop/java.lang.reflect.AccessibleObject.js\" \"hyperloop/java.lang.reflect.AnnotatedType.js\" \"hyperloop/java.lang.reflect.Constructor.js\" \"hyperloop/java.lang.reflect.Executable.js\" \"hyperloop/java.lang.reflect.Field.js\" \"hyperloop/java.lang.reflect.Method.js\" \"hyperloop/java.lang.reflect.Type.js\" \"hyperloop/java.lang.reflect.js\" \"hyperloop/java.net.ContentHandler.js\" \"hyperloop/java.net.ContentHandlerFactory.js\" \"hyperloop/java.net.DatagramPacket.js\" \"hyperloop/java.net.DatagramSocket.js\" \"hyperloop/java.net.DatagramSocketImpl.js\" \"hyperloop/java.net.DatagramSocketImplFactory.js\" \"hyperloop/java.net.FileNameMap.js\" \"hyperloop/java.net.InetAddress.js\" \"hyperloop/java.net.NetworkInterface.js\" \"hyperloop/java.net.ProtocolFamily.js\" \"hyperloop/java.net.Proxy$Type.js\" \"hyperloop/java.net.Proxy.js\" \"hyperloop/java.net.ServerSocket.js\" \"hyperloop/java.net.Socket.js\" \"hyperloop/java.net.SocketAddress.js\" \"hyperloop/java.net.SocketImpl.js\" \"hyperloop/java.net.SocketImplFactory.js\" \"hyperloop/java.net.SocketOption.js\" \"hyperloop/java.net.URI.js\" \"hyperloop/java.net.URL.js\" \"hyperloop/java.net.URLConnection.js\" \"hyperloop/java.net.URLStreamHandler.js\" \"hyperloop/java.net.URLStreamHandlerFactory.js\" \"hyperloop/java.net.js\" \"hyperloop/java.nio.Buffer.js\" \"hyperloop/java.nio.ByteBuffer.js\" \"hyperloop/java.nio.ByteOrder.js\" \"hyperloop/java.nio.DoubleBuffer.js\" \"hyperloop/java.nio.FloatBuffer.js\" \"hyperloop/java.nio.IntBuffer.js\" \"hyperloop/java.nio.LongBuffer.js\" \"hyperloop/java.nio.MappedByteBuffer.js\" \"hyperloop/java.nio.ShortBuffer.js\" \"hyperloop/java.nio.channels.AsynchronousFileChannel.js\" \"hyperloop/java.nio.channels.Channel.js\" \"hyperloop/java.nio.channels.CompletionHandler.js\" \"hyperloop/java.nio.channels.DatagramChannel.js\" \"hyperloop/java.nio.channels.FileChannel$MapMode.js\" \"hyperloop/java.nio.channels.FileChannel.js\" \"hyperloop/java.nio.channels.FileLock.js\" \"hyperloop/java.nio.channels.NetworkChannel.js\" \"hyperloop/java.nio.channels.Pipe$SinkChannel.js\" \"hyperloop/java.nio.channels.Pipe$SourceChannel.js\" \"hyperloop/java.nio.channels.Pipe.js\" \"hyperloop/java.nio.channels.ReadableByteChannel.js\" \"hyperloop/java.nio.channels.SeekableByteChannel.js\" \"hyperloop/java.nio.channels.SelectableChannel.js\" \"hyperloop/java.nio.channels.SelectionKey.js\" \"hyperloop/java.nio.channels.Selector.js\" \"hyperloop/java.nio.channels.ServerSocketChannel.js\" \"hyperloop/java.nio.channels.SocketChannel.js\" \"hyperloop/java.nio.channels.WritableByteChannel.js\" \"hyperloop/java.nio.channels.js\" \"hyperloop/java.nio.channels.spi.AbstractInterruptibleChannel.js\" ....\r\n{quote}\r\n(I had to remove some of the output because of the max limit of JIRA)\r\n\r\n\r\n* Test project: https://github.com/m1ga/Ti.CalendarView\r\n* Hyperloop 2.1.1\r\n\r\nCompile time at the end: Project built successfully in 4m 35s 88ms", "attachment": [], "flagged": false, "summary": "Hyperloop: Android - Slow Compile-time, too many JS-wrappers generated", "creator": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 968, "state": "closed", "name": "2017 Sprint 23 SDK", "startDate": "2017-11-05T16:37:25.071Z", "endDate": "2017-11-19T16:37:00.000Z", "completeDate": "2017-11-20T18:57:56.565Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "423737", "author": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "body": "Same thing for me: [INFO] Project built successfully in 4m 56s 522ms to build the hyperloop-samples app. Please give us an hint on how to reduce this huge amount of time!", "updateAuthor": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-07-09T14:18:10.000+0000", "updated": "2017-07-09T14:18:10.000+0000" }, { "id": "424656", "author": { "name": "turbomonkey", "key": "turbomonkey", "displayName": "Brian burns", "active": true, "timeZone": "America/New_York" }, "body": "Same here: [INFO] : Project built successfully in 4m 43s 971ms \r\nPlease provide a work around or something.", "updateAuthor": { "name": "turbomonkey", "key": "turbomonkey", "displayName": "Brian burns", "active": true, "timeZone": "America/New_York" }, "created": "2017-07-25T15:08:33.000+0000", "updated": "2017-07-25T15:08:33.000+0000" }, { "id": "424658", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey guys, quick heads up here! We are working on a fix already, although the ticket state was not updated, yet. It will part of Hyperloop 2.2.0 next month and include a completely rewritten file-watcher for improved compile team. Please hold tight! :-)", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-07-25T15:35:59.000+0000", "updated": "2017-07-25T15:35:59.000+0000" }, { "id": "426896", "author": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "body": "what kind of improvement are you seeing on this? will it be down to reasonable build times with hyperloop?", "updateAuthor": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-18T09:36:06.000+0000", "updated": "2017-08-18T09:36:06.000+0000" }, { "id": "427230", "author": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "body": "This is unbearable...when will the fix be out? It's taking over 5 minutes for us to build on Android now.", "updateAuthor": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "created": "2017-08-25T00:44:01.000+0000", "updated": "2017-08-25T00:44:01.000+0000" }, { "id": "427319", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey Guys, just a quick update on this and a few words about the expected performance. Since this is a major change to the internal Android Hyperloop build, we are currently writing some extended tests for this to make sure everything works as expected. With this fix, Hyperloop will also no longer copy any generated wrapper files into the {{Resources}} directory of your app.\r\n\r\nTo get an idea about the performance increase here are some numbers from my machine with the [hyperloop-examples|https://github.com/appcelerator/hyperloop-examples] app:\r\n\r\nHyperloop 2.1.3: 2m 16s 983ms\r\nHyperloop 2.2.0 (first build): Total 38s 502ms, Hyperloop: 6s 444ms\r\nHyperloop 2.2.0 (subsequent build, no changes): Total: 33s 373ms, Hyperloop: 2s 337ms\r\nHyperloop 2.2.0 (subsequent build, new native types used): Total: 37s 61ms, Hyperloop: 4s 57ms\r\n\r\nLooking at the above numbers you can see the build is significantly faster now. The build time on subsequent builds heavily depends on the amount of new native types you use compared to the previous build as this triggers the complete Hyperloop build pipeline for the new set of types.\r\n\r\nThe current release estimate for Hyperloop 2.2.0 with this improvement is mid to late September, so hang in there just a little longer!", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-28T17:46:31.000+0000", "updated": "2017-08-28T17:46:31.000+0000" }, { "id": "427320", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "(y) nice! That will make it useful, looking forward to the next release", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-28T17:51:21.000+0000", "updated": "2017-08-28T17:51:21.000+0000" }, { "id": "427323", "author": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "body": "Make it happen asap! ;-)", "updateAuthor": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-28T18:57:05.000+0000", "updated": "2017-08-28T18:57:05.000+0000" }, { "id": "427587", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (master): https://github.com/appcelerator/hyperloop.next/pull/205", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-05T13:16:41.000+0000", "updated": "2017-09-05T13:17:20.000+0000" }, { "id": "428629", "author": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "body": "Since this is already marked \"Resolved\", is there a timeframe for the Hyperloop 2.2 release?", "updateAuthor": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-02T08:13:41.000+0000", "updated": "2017-10-02T08:13:41.000+0000" }, { "id": "428630", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "This week!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-02T08:29:33.000+0000", "updated": "2017-10-02T08:29:33.000+0000" }, { "id": "428640", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix.\r\n\r\nBuild time are lower now with 2.2.0RC2 than with 2.1.3.\r\nClosing.\r\n\r\nStudio Ver: 4.10.0.201709271713\r\nSDK Ver: 6.2.2.GA\r\nOS Ver: 10.12.3\r\nXcode Ver: Xcode 8.3.3\r\nAppc NPM: 4.2.9\r\nAppc CLI: 6.2.4\r\nTi CLI Ver: 5.0.14\r\nAlloy Ver: 1.9.14\r\nNode Ver: 7.10.1\r\nJava Ver: 1.8.0_101\r\nDevices: ⇨ google Pixel --- Android 7.1.1\r\nHyperloop: 2.2.0RC2", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-02T20:15:55.000+0000", "updated": "2017-10-02T20:16:19.000+0000" }, { "id": "428926", "author": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "body": "We would really love to see releases more frequently for Hyperloop. This is a showstopper bug!", "updateAuthor": { "name": "AppDev", "key": "appdev", "displayName": "AppDev", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-11T05:59:59.000+0000", "updated": "2017-10-11T05:59:59.000+0000" }, { "id": "429142", "author": { "name": "creative_jira_user", "key": "uzbbert", "displayName": "Creative", "active": false, "timeZone": "Europe/Amsterdam" }, "body": "We need more releases for compile time in general. Titanium development is 90% waiting and 10% coding. Liveview doesnt work without studio (and nobody uses studio because its sluggish) so thats not a solution either.\r\n\r\nCompile time should be a MAX of 20 seconds for either platform. Not *[INFO] Project built successfully in 3m 43s 779ms*", "updateAuthor": { "name": "creative_jira_user", "key": "uzbbert", "displayName": "Creative", "active": false, "timeZone": "Europe/Amsterdam" }, "created": "2017-10-16T16:44:11.000+0000", "updated": "2017-10-16T16:44:11.000+0000" }, { "id": "431001", "author": { "name": "rdperottoni", "key": "rdperottoni", "displayName": "Rodolfo Perottoni", "active": true, "timeZone": "Australia/Brisbane" }, "body": "I'm on an i7/16gb/256GBSSD Mac. 5-7+ minutes build time. I don't know how to maintain apps anymore with such crazy build times.", "updateAuthor": { "name": "rdperottoni", "key": "rdperottoni", "displayName": "Rodolfo Perottoni", "active": true, "timeZone": "Australia/Brisbane" }, "created": "2017-11-20T04:00:21.000+0000", "updated": "2017-11-20T04:00:21.000+0000" }, { "id": "431005", "author": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "body": "Same here...we are on the latest Ti sdk and Hyperloop, but still seeing 4+ minute build times on Android. It's completely unacceptable. And our machines are the most expensive mac book pros you can buy.", "updateAuthor": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "created": "2017-11-20T04:34:55.000+0000", "updated": "2017-11-20T04:34:55.000+0000" }, { "id": "431019", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "To confirm: You are sure to use Hyperloop 2.2.x (2.2.2 is the latest)? Ensure by specifying the {{version=\"2.2.2\"}} node in your tiapp.xml. Thx!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-11-20T10:27:02.000+0000", "updated": "2017-11-20T10:27:41.000+0000" }, { "id": "431040", "author": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "body": "Yes and we are seeing build times of ~3 minutes on Android without including Hyperloop. It spends the majority of the time on the \"Processing javascript files\" stage. This is happening with our clients that have medium sized Alloy projects with 100+ controllers.", "updateAuthor": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "created": "2017-11-20T16:51:37.000+0000", "updated": "2017-11-20T16:51:37.000+0000" }, { "id": "431041", "author": { "name": "creative_jira_user", "key": "uzbbert", "displayName": "Creative", "active": false, "timeZone": "Europe/Amsterdam" }, "body": "I concur, build times are outrageous.\r\n\r\nJust dumping some ideas here to improve compile time:\r\n - only recompile files that have changed\r\n - stop minifying for dev builds\r\n\r\nI know it can be done, in fact I have seen acceptable compiletimes in the past with Liveview. Liveview needs to work outside of the studio context though using a simple \"--liveview\" parameter for \"appc ti build\". In fact, it should be enabled by default.\r\n\r\nCompile-time should really be sub 20s, it might even be fair to demand < 5s.", "updateAuthor": { "name": "creative_jira_user", "key": "uzbbert", "displayName": "Creative", "active": false, "timeZone": "Europe/Amsterdam" }, "created": "2017-11-20T16:59:59.000+0000", "updated": "2017-11-20T16:59:59.000+0000" }, { "id": "431042", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-11-20T17:09:20.000+0000", "updated": "2017-11-20T17:09:20.000+0000" }, { "id": "431054", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "As [~btknorr] and others already noticed, this is only partly related to Hyperloop. In fact, Hyperloop now makes use of heavy caching on all of its build steps and only acts on changed files. This should really be noticeable on incremental builds.\r\n\r\nThe remaining issue is the unnecessary processing of JS files which indeed takes a long time on larger projects. We already identified a few bugs in our build verification on Android which we are currently addressing in CLI-1278 and TIMOB-25508.\r\n\r\nIf some of you could provide complete trace logs of your larger project builds and attach them to TIMOB-25240 that would also help a lot. Thanks guys!", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-11-20T20:05:24.000+0000", "updated": "2017-11-20T20:05:24.000+0000" }, { "id": "431056", "author": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "body": "I added my trace log to the ticket like you suggested...hopefully it will help. Thanks!", "updateAuthor": { "name": "btknorr", "key": "btknorr", "displayName": "Brian Knorr", "active": true, "timeZone": "America/Chicago" }, "created": "2017-11-20T20:30:18.000+0000", "updated": "2017-11-20T20:30:18.000+0000" } ], "maxResults": 22, "total": 22, "startAt": 0 } } }