Ghost icon indicating copy to clipboard operation
Ghost copied to clipboard

Admin app modernization

Open NullVoxPopuli opened this issue 1 year ago • 5 comments

Issue Summary

Hello! I noticed the admin app is 3.24, which is quite old.

Ember has a lot of very nice features in v6, and the upcoming edition, Polaris.

Since 3.24 -- these are all the features ya'll could have 🎉 :

  • gjs/gts - Docs - Interactive Tutorial - REPL
  • vite via The V2 App Blueprint, RFC
    • Fast initial build, and instant rebuilds.
  • better data patterns
  • better reactivity and component patterns and features
  • native typescript support (including blueprints)
  • typed templates
  • helpers can be plain functions
  • new APIs (ones that I found most fun, anyway)
  • any value can be used in any syntax position (components, modifiers, helpers, etc don't need to be in specific places) - https://guides.emberjs.com/release/in-depth-topics/rendering-values/
  • improved error messages (and template stacks reported in errors)
  • named blocks / slots
  • variable locations are now explicitly known, and you never need to wonder where something is defined (this now goes for components, helpers, modifiers, etc, too (when going all in on gjs/gts))
  • no more inject as service, you can import { service } from '@ember/service' directly
  • as of 6.1, all the addons in the blueprint are v2 addons (v2 addons are "normal npm libraries") which means your app doesn't build them (as your app does with classic / v1 addons)
  • no need for RSVP

Is there appetite for updating / receiving PRs that do updates?

Overall - these efforts fit in to the following categories

  • be less weird, improve understandability, eliminate magic
  • improve compatibility with the broader ecosystem and general / default expectations
  • improve performance (of the framework and the tooling)

Of note, I noticed that the monorepo here is using yarn@v1 -- this would need to change as yarn@v1 does a lot of incorrect things with dependencies, and tools like, vite will not allow for it (unless duplicate / incorrect dependencies are desirable haha)

Detailed releases blog entries:

  • https://blog.emberjs.com/ember-3-25-released/
  • https://blog.emberjs.com/ember-3-26-released/
  • https://blog.emberjs.com/ember-3-27-released/
  • https://blog.emberjs.com/ember-3-28-released/
  • https://blog.emberjs.com/ember-4-0-released/
  • https://blog.emberjs.com/ember-4-1-released/
  • https://blog.emberjs.com/ember-4-2-released/
  • https://blog.emberjs.com/ember-released-4-3/
  • https://blog.emberjs.com/ember-released-4-4/
  • https://blog.emberjs.com/ember-4-5-released/
  • https://blog.emberjs.com/ember-4-6-released/
  • https://blog.emberjs.com/ember-released-4-7/
  • https://blog.emberjs.com/ember-4-8-released/
  • https://blog.emberjs.com/ember-4-9-released/
  • https://blog.emberjs.com/ember-released-4-10/
  • https://blog.emberjs.com/ember-released-4-11/
  • https://blog.emberjs.com/ember-released-4-12/
  • https://blog.emberjs.com/ember-5-0-released/
  • https://blog.emberjs.com/ember-released-5-1/
  • https://blog.emberjs.com/ember-released-5-2/
  • https://blog.emberjs.com/ember-released-5-3/
  • https://blog.emberjs.com/ember-released-5-4/
  • https://blog.emberjs.com/ember-released-5-5/
  • https://blog.emberjs.com/ember-released-5-6/
  • https://blog.emberjs.com/ember-released-5-7/
  • https://blog.emberjs.com/ember-released-5-8/
  • https://blog.emberjs.com/ember-released-5-9/
  • https://blog.emberjs.com/ember-released-5-10/
  • https://blog.emberjs.com/ember-released-5-11/
  • https://blog.emberjs.com/ember-released-5-12/

Steps to Reproduce

I was poking around here: https://github.com/TryGhost/Ghost/blob/main/ghost/admin/package.json#L120

In particular ember-source 3.24 -> 3.28 should be super easy, as it's all non-breaking changes and you get a lot of really good features at 3.28, including gjs/gts.

Code of Conduct

  • [X] I agree to be friendly and polite to people in this repository

NullVoxPopuli avatar Nov 21 '24 20:11 NullVoxPopuli

Why, @Linear? it's rude to close without explanation 😢

NullVoxPopuli avatar Nov 21 '24 20:11 NullVoxPopuli

Sorry! I definitely did not mean to close the Github issue.

9larsons avatar Nov 22 '24 17:11 9larsons

Yarn has been upgraded to v4 here: https://github.com/TryGhost/Ghost/pull/21818

crutchcorn avatar Dec 06 '24 19:12 crutchcorn

Hey, sorry it took so long for us to reply to this properly!

You're right, we've really struggled with the overhead of keeping up with Ember updates.

We're now focusing our efforts on newer parts of the app, which we're building in React, so we have even less appetite for doing updates ourselves.

Getting the existing app into a better state would be a very worthwhile effort.

Therefore, we'd love to see PRs that work towards this, but for us to be able to manage the workload of managing them, they'd need to be small and we'd need to ensure the functionality that was changing was well-tested (I think we have a reasonable amount of test coverage).

I realise by now the motivation or capacity might be gone, but I'll leave this open in case anyone is still interested 😄

ErisDS avatar Mar 31 '25 09:03 ErisDS

Gonna rescind my statement that getting the existing ember app into an up-to-date state would be worthwhile. 3 months later, we're a lot closer to fully replacing it than I imagined.

There's still a LOT to do, but it makes far more sense to focus all effort (even merging PRs) on the new stack. For that reason, I'm going to disable ember in renovate fully, so that we have less noise and are able to focus on getting through the backlog of other dependency updates that built up (largely thanks to the ESM mess).

ErisDS avatar Jun 15 '25 19:06 ErisDS

Our bot has automatically marked this issue as stale because there has not been any activity here in some time.

The issue will be closed soon if there are no further updates, however we ask that you do not post comments to keep the issue open if you are not actively working on a PR.

We keep the issue list minimal so we can keep focus on the most pressing issues. Closed issues can always be reopened if a new contributor is found. Thank you for understanding 🙂

github-actions[bot] avatar Oct 07 '25 06:10 github-actions[bot]