{"action":"created","issue":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/10446","labels_url":"https://api.github.com/repos/emberjs/ember.js/issues/10446/labels{/name}","comments_url":"https://api.github.com/repos/emberjs/ember.js/issues/10446/comments","events_url":"https://api.github.com/repos/emberjs/ember.js/issues/10446/events","html_url":"https://github.com/emberjs/ember.js/issues/10446","id":57549627,"number":10446,"title":"Meta: Upgrade retrospective from 1.8.1-beta to 1.11-canary","user":{"login":"tim-evans","id":177701,"avatar_url":"https://avatars.githubusercontent.com/u/177701?v=3","gravatar_id":"","url":"https://api.github.com/users/tim-evans","html_url":"https://github.com/tim-evans","followers_url":"https://api.github.com/users/tim-evans/followers","following_url":"https://api.github.com/users/tim-evans/following{/other_user}","gists_url":"https://api.github.com/users/tim-evans/gists{/gist_id}","starred_url":"https://api.github.com/users/tim-evans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tim-evans/subscriptions","organizations_url":"https://api.github.com/users/tim-evans/orgs","repos_url":"https://api.github.com/users/tim-evans/repos","events_url":"https://api.github.com/users/tim-evans/events{/privacy}","received_events_url":"https://api.github.com/users/tim-evans/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-02-13T02:08:49Z","updated_at":"2015-02-13T02:26:23Z","closed_at":null,"body":"# Note: still working on this; will review and provide fleshed out notes tomorrow\r\n\r\n### Ember upgrade retrospective\r\n\r\nStarted on 1.8.1-beta. Couldn’t upgrade to 1.8.1 because Ember.Set API changed and the view layer changes didn’t support access to low-level helper functions.\r\n\r\nI tried upgrading to 1.10-beta.3 and ember-data 1.0.0-beta.14, but had to downgrade to 1.9.1 due to compilation errors that were very obtuse. The HTMLBars parser wasn’t giving good info on a closing div tag that had no corresponding opening tag. Found that and fixed it.\r\n\r\nI was using origContext on components to punch through to controllers and routers. This was added, then removed, so I had to change it to get that fixed.\r\n\r\nI changed all of our helpers to use HTMLBars style helpers because the old-style Handlebars helpers were missing meta data that I was using to punch through to controllers / routes (by following how internal helpers to Ember did this). One instance of this was options.data.keywords.controller that was used.\r\n\r\nIn addition, all calls to chain helpers (ie. View helpers) changed their API signature to be Handlebars.helpers.view.helperFunction.call instead of Handlebars.helpers.view.call.\r\n\r\nWe have Handlebars helpers that don’t include any dashes (which was possible), but now I’m afraid to bump to 1.12-canary because the function for bypassing the linting of helper / component names is no longer public.\r\n\r\nI spent a good deal of time taking the upgrade as a good time to refactor parts of our application to use components more heavily.\r\n\r\nI encountered bugs around the {{render}} helper, where rendering a template with a model caused unexpected side effects. I solved this by refactoring templates that used this pattern to be components.\r\n\r\nAcceptance tests involving CSS selectors suddenly broke (for some reason, vague selectors in tests that made tests pass in 1.8.1 broke tests in 1.11). I don’t consider this a bad thing, because now tests are more accurate.\r\n\r\nI had some trouble working around a helper that needs to observe properties on a model. I needed to unwrap the model from a promise, and observe on keys that were being used in the helper. It wasn’t painful, but it was unexpected, coming from ‘makeBoundHelper’ just working with this use case.\r\n\r\nI had a bug with our drag and drop / list animation code that was looking at the content of childViews, expecting to be able to access `content.content`, which I had to change to `context.content`.\r\n\r\nAll in all, I had about 60 commits of changes that I had to make to get our test suite passing. This app is **large**. We have around 100 routes, and around 80 components."},"comment":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/comments/74194554","html_url":"https://github.com/emberjs/ember.js/issues/10446#issuecomment-74194554","issue_url":"https://api.github.com/repos/emberjs/ember.js/issues/10446","id":74194554,"user":{"login":"tim-evans","id":177701,"avatar_url":"https://avatars.githubusercontent.com/u/177701?v=3","gravatar_id":"","url":"https://api.github.com/users/tim-evans","html_url":"https://github.com/tim-evans","followers_url":"https://api.github.com/users/tim-evans/followers","following_url":"https://api.github.com/users/tim-evans/following{/other_user}","gists_url":"https://api.github.com/users/tim-evans/gists{/gist_id}","starred_url":"https://api.github.com/users/tim-evans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tim-evans/subscriptions","organizations_url":"https://api.github.com/users/tim-evans/orgs","repos_url":"https://api.github.com/users/tim-evans/repos","events_url":"https://api.github.com/users/tim-evans/events{/privacy}","received_events_url":"https://api.github.com/users/tim-evans/received_events","type":"User","site_admin":false},"created_at":"2015-02-13T02:26:23Z","updated_at":"2015-02-13T02:26:23Z","body":"@mixonic https://github.com/emberjs/ember.js/pull/10379"}}