We're upgrading our icons to Font Awesome 6!

3 posts were split to a new topic: Trouble with new Fontawesome 6 icons in theme components

@awesomerobot I have followed the instructions in your post to the best of my (limited) abilities, and am running into several things, only one of which is to do with the change in Font Awesome icons, I think. But let’s deal with that here.

Here is a screenshot of what’s going on in the console:

Focusing on the Deprecation notice, it seems that the icon "search’ is an issue, with the new icon named “magnifying-glass”. A search for “search” in the developer tools search function returns (unsurprisingly) many results - (6,504 matching lines in 278 files) - and I really cannot see the wood for the trees. But I can say that there is NOTHING like the results displayed in your original post, paragraph 3!

Your suggestions of how to track down the component causing this issue would be gratefully received!

I will post about the emberjs issue in another post later.

Thank you - Discourse is normally a breeze, but this has me flummoxed.

2 Likes

Hey @PatrickF

Do you have Search Banner installed by any chance?

If so, can you check if the component is up to date?

I can see it has been updated one month ago:

5 Likes

Ah yes, that’s not ideal :sweat_smile:

If you turn off JS and CSS sourcemaps, then that can help to reduce the number of files in the results. Then you can look for any results specifically in themes.

4 Likes

Ah, we do indeed have search banner installed - and it was customised by someone a while back. I will take a look at this now.

Good spot, thank you!

Edit to add:

OK, I can see that we need a new line in <search-icon.gjs>:
@icon="magnifying-glass"

I have downloaded this file by exporting the component - but how do I upload the file with amendments?
(I don’t think I can since our Discourse community is hosted by Discourse, right?)

I don’t see an update button anywhere in Discourse either - should I just re-install the component?

4 Likes

You can install custom theme components on most hosting plans

2 Likes

Thanks, I’ve read all this documentation linked multiple times.

I can’t see an update button anywhere as per @Arkshine’s post:

My Components panel looks like this:


The only button on this page is Install, further down the page. Presumably if I re-install the theme all of our customisation will be overwritten.

I appreciate that I’m (probably) coming across as a bit dense here :joy: but what I see in Discourse meta doesn’t seem to be reflected in what I see on our instance of Discourse.

Thanks for your patience.

2 Likes

It looks like you manually uploaded a modified version of the original theme component.
You would see a button if it was installed from a GitHub repository link. (Also author would be Discourse)

Yes, you have to reinstall the updated component. You can use the “Settings Editor” button to export/import your settings.

Do you remember what customization you did? If it’s only CSS, I recommend you use the official version and add CSS customizations to your theme or a separate theme component. This way, you will always get the latest update.

5 Likes

@Arkshine, @Moin - thank you for your help.

I deleted the existing theme and reinstalled from the GitHub repository and all is good. The site looks as it did, and the notice about FontAwesome has gone away. And the theme will update automatically from now on.

Thanks again!

4 Likes

Updated discourse.
Still this notice is appearing.

No theme/plugins showing update notice.
Is there anything else have to do?

1 Like

Check out logs. I think it shows which one or several icons are using old name. If it one of those that can be changed by an admin, that doesn’t show name of that component.

2 Likes

Thanks a lot @Jagster
I found this console log

Deprecation notice: The icon name "undo" has been updated to "arrow-rotate-left". Please use the new name in your code. Old names will be removed in Q2 2025. [deprecation id: discourse.fontawesome-6-upgrade] [info: https://meta.discourse.org/t/325349]

But not sure where to update this icon.

1 Like

Can you confirm first that all your plugins/components are up to date?

2 Likes

Yes, all are updated.
Just updated yesterday.

2 Likes

With safe mode, can you figure out if from a plugin or a theme component?

2 Likes

I understand the renames are imposed by an upstream project outside your control, but why can’t the compatibility mappings just be left there forever? What harm do they do?

Does anyone working on Discourse or its dependencies understand the concept of a published API which is used by other people?

You don’t break an API unless there’s a really good reason to. The names of things only seen internally by developers not being completely perfect according to someone’s whims is not a good enough reason to break other people’s code.

I’m really getting tired of the amount of work required just to keep existing things from breaking with Discourse. It’d be OK if there was a world-changing improvement to justify the time and hassle each time, but there never is. It feels like breaking changes keep being made for petty reasons without consideration of the time and hassle they cause other people.

4 Likes

Sorry for the frustration, we try to make these updates easy and provide months of time to get them done — but there’s always a trade-off. If we kept remappings indefinitely we’d already have multiple layers of them from V4 → V5 → V6 and this would be debt that would require its own understanding and maintenance. If we did this for every piece of code Discourse would be much larger and more difficult to understand and work with.

Yes, which is why we provide deprecation warnings and instructions for updating. We aren’t just updating a file and passing on all the work — every time we make an update like this we have to write documentation, warning systems, and update hundreds of themes, theme components, and plugins ourselves. For Ember updates our engineers have come up with entirely new systems to make legacy customizations possible at all.

Even much larger software companies update their APIs in breaking ways. I’ve needed to update our Google Fonts component at least 2 times due to API changes, and Google is worth something like two trillion dollars. Every authentication service we integrate with for log-in has required us to update due to API changes.

If you don’t have the time for occasional maintenance then I’d recommend reducing the amount of customization as much as possible. If you use off-the-shelf themes/components/plugins for Discourse then most of the time we’ll update them for free.

You can also avoid updating Discourse, but everything always changes and you’d eventually face new security issues or browser compatibility issues. Every option has costs and trade-offs.

9 Likes

And yet a program written for Windows 95 can still be used, unmodified, 30 years later. So it is possible.

Just because other companies take the easy way out doesn’t mean you have to. It’s a choice.

It’s a choice constrained by operating in reality, which comes with a lot of trade-offs around time and budget. We don’t need to veer off into an “anything is technically possible” tangent.

That aside, the nice thing about Discourse is that it’s free and open source — so if you’d like to run a version from 1 or 10 years ago you can certainly do that, it’s just likely to create more problems than it would solve.

3 Likes

Thanks @Arkshine
The notification disappeared automatically.
Today found it again, then checked browser console I found the name of icons and after updating those the notification disappeared.

4 Likes