discourse/lib/tasks
Alan Guo Xiang Tan d0117ff6e3
PERF: Switch `plugin:install_all_official` to clone plugins concurrently (#24511)
Why this change?

`plugin:install_all_official` is quite slow at the moment taking roughly
1 minute and 51 seconds on my machine. Since most of the time is spent
waiting on the network, we can actually speed up the Rake task
significantly by executing the cloning concurrently. With a 8 cores
machine, cloning all plugins will only take 15 seconds.

What does this change do?

This change wraps the `git clone` operation in the
`plugin:install_all_official` Rake task in a `Concurrent::Promise` which
basically runs the `git clone` operation in a Thread. The `--quiet`
option has also been added to `git clone` since running stuff
concurrently messes up the output. That could be fixed but it has been
determined to be not worth it since the output from `git clone` is
meaningless to us.
2023-11-22 21:43:42 +08:00
..
add_topic_to_quotes.rake
admin.rake
annotate.rake
api.rake
assets.rake DEV: Simplify sprockets configuration (#24111) 2023-10-26 17:29:53 +01:00
auto_annotate_models.rake
autospec.rake
avatars.rake
backfill.thor DEV: Format .thor files (#23059) 2023-08-10 13:59:13 +02:00
categories.rake
cdn.rake
db.rake DEV: Respect `SKIP_TEST_DATABASE` when running `rake db:create` (#24407) 2023-11-16 20:01:12 +08:00
destroy.rake
dev.rake
docker.rake DEV: Support customizing `docker:test:setup` with envs (#24508) 2023-11-22 15:12:02 +08:00
documentation.rake
emails.rake
emoji.rake DEV: Update minitest to 5.19.0 (#22821) 2023-07-27 12:18:40 +02:00
export.rake
groups.rake
hashtags.rake
i18n.rake
images.rake
import.rake DEV: Create missing user profiles in "import:ensure_consistency" rake task 2023-08-09 20:56:14 +02:00
incoming_emails.rake
integration.rake
javascript.rake DEV: Modernise highlightjs loading (#24197) 2023-11-10 20:39:48 +00:00
log.rake
maxminddb.rake DEV: Avoid constant redefinition warnings in specs (#23241) 2023-08-24 23:16:32 +02:00
plugin.rake PERF: Switch `plugin:install_all_official` to clone plugins concurrently (#24511) 2023-11-22 21:43:42 +08:00
populate.rake DEV: Convert `admin-incoming-email` modal to component-based API (#22701) 2023-07-20 16:31:20 -05:00
populate.thor DEV: Format .thor files (#23059) 2023-08-10 13:59:13 +02:00
posts.rake
profile.rake
qunit.rake DEV: Run QUnit tests for official Discourse themes (#24405) 2023-11-17 07:17:32 +08:00
redis.rake
release_note.rake DEV: Add link to PR when generating release notes 2023-09-12 09:26:46 +02:00
revisions.rake
rspec.rake
s3.rake
scheduler.rake
search.rake
site.rake FEATURE: Add dark mode option for category backgrounds (#24003) 2023-10-20 12:48:06 +00:00
site_settings.rake DEV: Add rake command to help detect dead settings (#23300) 2023-08-29 09:42:52 -06:00
smoke_test.rake DEV: Drop `/theme-qunit` from smoke test (#23562) 2023-09-13 16:14:27 +01:00
svg_icons.rake
svg_sprites.rake
tags.rake
themes.rake DEV: Run QUnit tests for official Discourse themes (#24405) 2023-11-17 07:17:32 +08:00
topics.rake FEATURE: do not bump topics when retroactively closing (#23115) 2023-08-16 11:20:47 +10:00
turbo.rake
typepad.thor DEV: Format .thor files (#23059) 2023-08-10 13:59:13 +02:00
uploads.rake FEATURE: Add dark mode option for category backgrounds (#24003) 2023-10-20 12:48:06 +00:00
users.rake DEV: Add task to anonymize user data (#20522) 2023-10-03 16:59:43 +08:00
version_bump.rake DEV: Do not squash commits in `version_bump:stage_security_fixes` (#23547) 2023-09-12 18:00:42 +01:00