-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
Summary
The purpose of this issue is to provide an overall issue to track the status of the work necessary to ship the Octane Edition of Ember.js.
If anyone wants to work on any of the items in this list, please check in the #st-octane channel of our Discord chat first.
The following to-do list will be updated to include links to individual issues as they are created. The issues themselves will contain more details for each item on this list.
Goals from Roadmap RFC
Finish What We Started (Part 1 of 2)
As per the 2018 Roadmap RFC, there is commitment and focus to finishing the things we've already started.
- Broccoli 2.0 in ember-cli
Module Unification [Tracking Issue]- De-scoped from this edition as per https://blog.emberjs.com/2019/03/11/update-on-module-unification-and-octane.html- Glimmer Components as the default component API
- Native JavaScript Classes as the default object model
Native JavaScript modules- De-scoped from this edition- exposing modules in the build pipeline
- publishing Ember as npm packages
- importing npm packages
Octane Edition Features (Part 2 of 2)
As per the roadmap RFC, these are the goals for the Octane edition; however it should be noted that
"the final timeline and feature set of Ember Octane will be determined by the core teams and are not set in stone in this RFC."
- No jQuery by default
Svelte Builds(moved to next edition)- Native JavaScript Classes
- Glimmer components
Incremental rendering and rehydration(moved to next edition)Treeshaking(moved to next edition)- Eliminating the runloop (removing the need for developers to use Ember.run)
Stabilizing Ember Data(moved to next edition)
Practical Implementation of Roadmap RFC
Decorators
Core Team Champion: Tom Dale | Status: completed 🎉
- RFC Decorators rfcs#408
- Supplemental RFC - Decorator support - [RFC #440]
- Implementation
- Documentation
- enable feature flag
- ember-cli-babel needs to transpile them by default
Glimmer Components (as the default component API)
Core Team Champion: Tom Dale | Status: completed 🎉
- RFC Glimmer Components rfcs#416
- Implementation [PR]
- Documentation (PR'd to Octane guides)
Tracked Properties
Core Team Champion: Tom Dale | Status: completed 🎉
- RFC
- [Issue]
- written [RFC #410]
- reviewed
- FCP (1/25/19)
- merged
- Implementation (POC in-progress, @pzuraq)
- Documentation
- enable feature flag
- fix the infinite render CP bug Infinite loop/"Maximum call stack size exceeded" with getter/sortBy (with Octane preview blueprint) #17799 ( [BUGFIX][FEAT][Tracked Properties] Adds Arg Proxy Feature Flag #17835)
- observer interop compat
- performance tests
Element Modifiers
Core Team Champion: Tom Dale | Status: completed 🎉
- RFC
- written [RFC #415]
- reviewed
- FCP
- merged
- Supporting RFC: Forwarding Element Modifiers with "Splattributes" [RFC #435]
- Implementation (as an addon) [ember-render-modifiers]
- Documentation [tracking issue]
- API docs (@GavinJoyce)
- guides (@wycats - interacting with the dom guide)
Editions
Core Team Champion: @tomdale | Status: on track ✅
- RFC
- written- [RFC #371]
- reviewed (in-progress, @tomdale champion)
- FCP
- merged
- Documentation
Remove jQuery by Default
Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉
- RFC
- written [RFC #386]
- reviewed
- FCP
- merged
- Implementation
- [Tracking Issue] (in progress, @simonihmig)
- Blocker: Rebase tchack use fetch warp-drive-data/warp-drive#5900
- Documentation
Native JS Classes
Core Team Champion: Robert Jackson | Status: completed 🎉
- RFC
- written [RFC #240]
- reviewed
- FCP
- merged
- Implementation
- (shipped in 3.6)
- Migration codemod [ember-es6-class-codemod] (in-progress @rwjblue @pzuraq)
- Update blueprints for each object type to use native JS classes:
- route
- router [tracking issue]
- component
- controller
- service
- Documentation [tracking issue]
Broccoli 2.0
Core Team Champion: Robert Jackson (@rwjblue) | Status: on track ✅
- Implementation
- Documentation
- Broccoli website for more in-depth guides (@oligriffiths - https://broccoli.build/)
- Broccoli basics added to Ember guides [Tracking issue] (in-progress, @oligriffiths)
Ember Guides Updates
Core Team Champion: Jen Weber (@jenweber) | Status: on track ✅
- RFC to update the table of contents [RFC #431]
- Current Guides Analysis [Project]
- Update guides to use Angle Bracket invocation [tracking issue]
- Octane preview guides MVP [tracking issue]
- Switch to built-in components on Octane branch [tracking issue]
- Octane stable release Guides MVP quest issue
- Octane Components Guide (v2) tracking issue @wycats
Website Re-design
Core Team Champion: Leah Silber (@wifelette) & Mel Sumner (@MelSumner) | Status: delayed
- RFC Website Redesign RFC rfcs#425
- Implementation (goal: August 2019) Repo: ember-styleguide - want to help? Ping in #dev-ember-learning channel in Discord.
- Documentation (update ember-learn/handbook)
Scope Creep
These are new items that we discovered were necessary to add while implementing Octane features.
on modifier
Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉
- RFC
{{on}}Modifier rfcs#471 [tracking issue] - Implementation (polyfill complete, implementation in Ember in-progress)
- Documentation (@pzuraq )
fn helper
Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉
- RFC
{{fn}}Helper rfcs#470 [tracking issue] - Implementation (polyfill in-progress)
- Documentation (@pzuraq )
Injection Parameter Normalization (owner tunnel/class portal)
Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉
- RFC Injection Parameter Normalization rfcs#451 [tracking issue]
- Implementation (in-progress, PR [FEATURE] Implement injection parameter normalization RFC. #17858)
- Documentation
@classic decorator
Core Team Champion: Robert Jackson (@rwjblue) | Status: on track
- RFC
@classicDecorator rfcs#468 - Implementation (will be an addon)
- Documentation (WIP being documented in Ember Atlas instead of official guides) (@pzuraq )
Ember Inspector
Supporting TODOs
- Contextual Helpers and Modifiers RFC (FCP - 1/25/19](Contextual Helpers and Modifiers (a.k.a. "first-class helpers/modifiers") rfcs#432) (@chancancode)
- Implementation: Octane Blueprint for ember-cli
- Addon MVP - https://github.com/NullVoxPopuli/ember-octane-blueprint
- move addon to ember-cli org (@NullVoxPopuli) (https://github.com/ember-cli/ember-octane-blueprint)
- Documentation: CLI optional feature flags introduced by new features in Octane edition (documented in regular guides, not CLI guides)
- (optimization) Guarding the optional feature flags for file size savings
Stretch Goals/De-scoped items
These are items that were de-scoped from Octane and are now being tracked as stretch goals.
- Svelte Builds (the last code cleanup easily allowed this item to become a stretch goal)
- Stabilizing ember-data
- Router Service
- Related: RouteInfo Metadata [RFC #398]
- Related: Router Helpers [RFC #391]
- Implementation: router helpers
- Documentation
- Publishing packages (from roadmap)
- Incremental Rendering (de-scoped as of 2/19/19)
- RFC
- Implementation
- Documentation
- Removing Synchronous Rendering from Tests (will be released as an addon)
- RFC [Issue]
- Implementation
- Documentation
- Incremental Rehydration/ Rehydration
- RFC (in-progress, @rondale-sc )
- Implementation
- Documentation
- Template imports
- RFC SFC & Template Import Primitives rfcs#454
- Implementation (POC in-progress, @wycats)
- Documentation
- Decorators polyfill addon (no repo yet)
- Implementation
- Documentation
- Implementation: Embroider (packaging spec) (@ef4 ) (update: we anticipate this to be usable but in a BETA state for Octane release, in order to better ensure stability)
- Native JS Modules: Importing NPM Packages
- Implementation: importing from NPM packages - [ember-auto-import]
- Implementation: ember-auto-import into default blueprint [Tracking Issue]
- Documentation (in progress, @NullVoxPopuli)
Project Management
Details
- set up octane strike teams in each of the relevant Ember orgs:
- discussion: ember wizard (like ember-cli-create)
- @rwjblue to discuss with ember-cli team
- discussion: track stretch goals?
- discussion: track de-scoped (and why) items - yes
- discussion: tracking the website update project
- discussion: what scope creep items are we noticing? what should be included in the next edition of Ember?
- need: call for more community members to join in on Octane work
- figure out how to track Inspector work
- plan: documentation concern: how to track the old and the new in the guides and API while folks are transitioning.
Upgrading Apps to Octane
Required
Dependencies
ember-source@3.??.0ember-data@3.??.0
Optional Features
application-template-wrappertofalsejquery-integrationtofalsetemplate-only-glimmer-componentstotrue
.ember-cli
- Default
ember generate componentto include (per RFC #481):--no-component-class--component-structure=flat
Optional / Incremental
- Migrate Ember components to Glimmer components
- Migrate from
EmberObject.extend()to native classes - Migrate from computed properties to tracked properties
Final Checklist
- Add Octane blueprint as the default to ember-cli (once it's determined that it works as intended)
- Publish blog post & include: render modifiers clarification, codemods, upgrade guides
- Remove blueprint references from the Guides and tutorial
- Merge guides into master