Something very similar to this appears to have come back:
With Discourse 3.5.2, every time I try to install a particular component (from source), it always installs an old version of it. I can confirm this by exporting: it has the old JavaScript. Also, in browser developer tools, if I search for a file it always shows the old version of the file. It also shows the old name, if I build after having changed it in about.json.
It does this whether I install it manually from GitHub on the Components page, or whether I install it from app.yml.
In accordance with Install a Theme programatically , the end of my app.yml is:
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- file:
path: /tmp/mythemes.yml
contents: |
discourse-new-topic-button:
url: https://github.com/toad/discourse-new-topic-button-theme-component.git
add_to_all_themes: true
# Old repositories - it looks like we'll need to create a new one for every commit because of some bizarre caching?
#url: https://github.com/toad/discourse-new-topic-button.git
#url: https://github.com/toad/discourse-new-topic-button-theme-component.git
#url: https://github.com/toad/discourse-new-topic-button-mod.git
- exec:
cd: $home
cmd: su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'
- exec: echo "End of custom commands"
And the output is:
I, [2025-11-12T01:43:24.323446 #1] INFO -- : > echo "Beginning of custom commands"
I, [2025-11-12T01:43:24.325106 #1] INFO -- : Beginning of custom commands
I, [2025-11-12T01:43:24.327203 #1] INFO -- : File > /tmp/mythemes.yml chmod: chown:
I, [2025-11-12T01:43:24.327361 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'
I, [2025-11-12T01:43:32.778093 #1] INFO -- : discourse-new-topic-button: installed from https://github.com/toad/discourse-new-topic-button.git
Results:
Installed: 1
Updated: 0
Errors: 0
Skipped: 0
I, [2025-11-12T01:43:32.778262 #1] INFO -- : > echo "End of custom commands"
I, [2025-11-12T01:43:32.779694 #1] INFO -- : End of custom commands
If I don’t delete the component before running rebuild, it shows Updated instead of Installed. Either way, we end up with the old version of the component.
Navigating away from the page, shift+reload etc, nothing makes any difference. Moving it to a different repository doesn’t make any difference either, so it’s not caching by URL (two of those repo’s are the same).
I’ve also tried building it directly with rake inside the container.
Any ideas on how I could debug this? It would be useful to be able to see the build log, but rake with –verbose does not give me any more information.
My setup is slightly unusual (this is using rootless Docker in production, though this is the staging server).
Help?!
It looks like it always builds something before commit 990dec4f3e8411215122c74b2684782244eeffa2, which moved New Topic Button to Glimmer support, and will be required for 3.6. So this will break when I upgrade to 3.6; I’ve been trying to fix our fork of the New Topic Button component, but it looks like even the upstream version will break.
Once again, what can I do to debug this? ![]()