Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Octane Tracking Issue #17234

Closed
MelSumner opened this issue Nov 28, 2018 · 33 comments
Closed

Octane Tracking Issue #17234

MelSumner opened this issue Nov 28, 2018 · 33 comments
Assignees

Comments

@MelSumner
Copy link
Contributor

MelSumner commented Nov 28, 2018

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.

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 🎉

Tracked Properties

Core Team Champion: Tom Dale | Status: completed 🎉

Element Modifiers

Core Team Champion: Tom Dale | Status: completed 🎉

Editions

Core Team Champion: @tomdale | Status: on track ✅

  • RFC
  • Documentation

Remove jQuery by Default

Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉

Native JS Classes

Core Team Champion: Robert Jackson | Status: completed 🎉

Broccoli 2.0

Core Team Champion: Robert Jackson (@rwjblue) | Status: on track ✅

Ember Guides Updates

Core Team Champion: Jen Weber (@jenweber) | Status: on track ✅

Website Re-design

Core Team Champion: Leah Silber (@wifelette) & Mel Sumner (@MelSumner) | Status: delayed

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 🎉

fn helper

Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉

Injection Parameter Normalization (owner tunnel/class portal)

Core Team Champion: Robert Jackson (@rwjblue) | Status: completed 🎉

@classic decorator

Core Team Champion: Robert Jackson (@rwjblue) | Status: on track

Ember Inspector

[Tracking Issue]

Supporting TODOs

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
  • 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

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.??.0
  • ember-data@3.??.0

Optional Features

  • application-template-wrapper to false
  • jquery-integration to false
  • template-only-glimmer-components to true
.ember-cli
  • Default ember generate component to 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
@tomdale
Copy link
Member

tomdale commented Dec 4, 2018

@MelSumner We should track the build pipeline improvements in https://github.com/embroider-build/embroider as well.

@oligriffiths
Copy link

@MelSumner https://broccoli.build and https://github.com/broccolijs/broccolijs.github.io for the new broccoli site and docs

@knownasilya
Copy link
Contributor

Tracked properties RFC can be checked off and link updated.

@tomdale
Copy link
Member

tomdale commented Dec 11, 2018

@rwjblue
Copy link
Member

rwjblue commented Dec 11, 2018

FWIW, @tomdale that seems quite orthogonal to the Octane Edition to me (not saying we shouldn't be more careful and have better checks/balances, just that its not related to octane at all)...

@mike-north
Copy link
Contributor

its not related to octane at all

My reasoning for bringing this up recently is that a default blueprint that supports multiple programming models (i.e., a future default octane blueprint) may include extra cruft that a pure "classic" app or pure "octane" app doesn't need at all.

If we can validate that this is not a concern, I agree that this isn't very closely related to octane

@NullVoxPopuli
Copy link
Contributor

imo, the octane blueprint, https://github.com/ember-cli/ember-octane-blueprint should be the ideal brand new / shiny app. I don't think the old programming model should be involved in the blueprint. :-\

@rwjblue
Copy link
Member

rwjblue commented Dec 23, 2018

@MelSumner - I think we need to get some MU related things here in this checklist (I don't spot any, but AFAICT MU is still considered part of the octane feature set...).

@gossi
Copy link

gossi commented Dec 23, 2018

It's already been called Octane layout instead of MU layout ... and the more I think about it the more it makes sense!

@MelSumner
Copy link
Contributor Author

@MelSumner - I think we need to get some MU related things here in this checklist (I don't spot any, but AFAICT MU is still considered part of the octane feature set...).

@rwjblue we linked to the MU quest issue in the first section- "Finish What We Started" - is there more that you think we should track?

@gossi
Copy link

gossi commented Jan 7, 2019

Regarding ember-cli-create I put this issue together: ember-cli/ember-cli#8343. Depending on how much of the embroider spec will be implemented as part of octane (= publication format), the issue I linked is mainly speaking about the authoring format which can be complementary to the publishing format.

Personally, I wouldn't see ember-cli-create as part of octane while the authoring format could be (which basically sets the foundation for ember-cli-create).

Let me know, if that would make a good addition or better postpone it to post-octane release or how I can help with that.

@NullVoxPopuli
Copy link
Contributor

octane blueprint > move addon to ember-cli org can be checked off :)

@jenweber
Copy link
Contributor

Update, here's a quest issue for tracking the Angle Brackets conversion in the guides ember-learn/guides-source#139

@simonihmig
Copy link
Contributor

The Remove jQuery RFC can be checked off! ✅
I also created a tracking issue, which we can link to maybe: #17476

@mike-north
Copy link
Contributor

mike-north commented Jan 15, 2019

User story around feature flags and optional features, as it pertains to the octane blueprint

As a workshop instructor, I need to know the default values for various optional/feature flags in the octane blueprint, in order to understand concretely what my students will get when they run ember new, and build material around ember new that remains valid over a significant period of time.

@rwjblue
Copy link
Member

rwjblue commented Jan 29, 2019

FYI - I just published @ember/render-modifiers 1.0.0 with support back to Ember 2.12 (by way of ember-modifier-manager-polyfill). There is still a bit of work to do (need tons more documentation), but its a good start...

@ppcano
Copy link
Contributor

ppcano commented Feb 1, 2019

@MelSumner I will work on the Native JS Classes blueprints.

@mike-north
Copy link
Contributor

Has anyone put thought into what should happen for https://github.com/ember-cli/ember-new-output in the Classic+Octane world?

@rwjblue
Copy link
Member

rwjblue commented Feb 3, 2019

The output in that repo will match the output of ember new, which according to our current plans will change to octane blueprint “when it’s ready”.

@michaelrkn
Copy link
Contributor

It looks like module unification is missing from the "Practical Implementation of Roadmap RFC" section.

@MelSumner
Copy link
Contributor Author

It looks like module unification is missing from the "Practical Implementation of Roadmap RFC" section.

I believe that Template Imports are the major piece that hasn't shipped yet, so that's the bit that we're tracking in this issue. Does that help, @michaelrkn ?

@michaelrkn
Copy link
Contributor

@MelSumner Got it, thanks!

@simonihmig
Copy link
Contributor

Hey everybody, the implementation of the "Remove jQuery" RFC is mostly done (at least as far as the first Ember 3.x stage is concerned, see #17476). What's still open and blocking the (default, non-octane) blueprints to switch to no jQuery by default is the built-in ability of ember-data to work with fetch instead of $.ajax (without having to apply the ember-data patch mixin), see the WIP PR: emberjs/data#5386.

Just to let you know... maybe this should be addressed at one of the next core team meetings, to help bring this over the finish line?

@NullVoxPopuli
Copy link
Contributor

NullVoxPopuli commented Feb 8, 2019

a couple things related to ember-cli that I would like to be added to the list:

  • addons need some hooks for installing custom types, for example
moduleConfig.collections = Object.assign(moduleConfig.collections, {
  // ember-simple-auth
  authenticators: {
    types: ['authenticator'],
    defaultType: 'authenticator'
  }
});

(the above, courtesy of @sly7-7 :D )
and

moduleConfig.types = Object.assign(moduleConfig.types, {
  // ember-intl
  'ember-intl@adapter': { definitiveCollection: 'main' },
  'ember-intl@translation': { definitiveCollection: 'main' },
  translation: { definitiveCollection: 'main' },
  formats: { definitiveCollection: 'main' },
  cldr: { definitiveCollection: 'main' },
  'util:intl': { definitiveCollection: 'utils' },
  'intl:util': { definitiveCollection: 'utils' },

  // ember-gestures
  'ember-gesture': { definitiveCollection: 'main' },
});

and then the other thing also related to ember-cli is supporting multiple dummy apps.
So far we have some design proposals here:

Also, not sure how to track this, but with @miguelcobain 's ember-paper library, I'd like to coordinate with getting the octane setup process super simple (currently it's not simple to use ember-paper in octane apps)

seems like it mostly has to do with there styles get exposed to the host app. idk if there is something simple we can do so that existing style addons can "just work", or if we're going to make all the style addons add an octane / isModuleUnification condition?

@MelSumner
Copy link
Contributor Author

@NullVoxPopuli

  • the lack of hooks should be filed as a bug (as detailed as possible) (and we can add the octane label to it)
  • we don't intend to track specific addons here (this issue is trying to stay focused on tracking the items listed in the roadmap RFC), but maybe we can figure out a way to share an "upgrade your addon" guide? Maybe we could convince @miguelcobain to write one for the emberjs.com blog. ;)

@MelSumner
Copy link
Contributor Author

Hey everybody, the implementation of the "Remove jQuery" RFC is mostly done (at least as far as the first Ember 3.x stage is concerned, see #17476). What's still open and blocking the (default, non-octane) blueprints to switch to no jQuery by default is the built-in ability of ember-data to work with fetch instead of $.ajax (without having to apply the ember-data patch mixin), see the WIP PR: emberjs/data#5386.

Just to let you know... maybe this should be addressed at one of the next core team meetings, to help bring this over the finish line?

@dgeb / @igorT can you help with this blocker?

@igorT
Copy link
Member

igorT commented Feb 15, 2019

@MelSumner Yup, brought this up at the ED meeting, we are gonna follow up and refactor the ember-fetch PR emberjs/data#5386

@ppcano
Copy link
Contributor

ppcano commented Feb 17, 2019

@MelSumner

Update blueprints for each object type to use native JS classes has been merged at #17621. Initially, the blueprints will generate Native Classes only when using the octane blueprints.

@lifeart
Copy link
Contributor

lifeart commented Feb 21, 2019

@tomdale, @MelSumner, @rwjblue

Template Imports ( Working Draft )

knownasilya/ember-template-imports#10

@Panman82
Copy link
Contributor

Panman82 commented May 6, 2019

FYI, the Component Templates Co-locations RFC is not on this tracking issue yet. :)

emberjs/rfcs#481

@MelSumner
Copy link
Contributor Author

@Panman8201 correct- it's outside of the scope for Octane. :)

@auvipy
Copy link

auvipy commented Dec 24, 2019

I think this need to bee updated with ember octane 3.15+ release :)

@MelSumner
Copy link
Contributor Author

Since we've shipped Octane, going to close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests