canvas-lms/gems
Ahmad Amireh 581baf6e37 highlight dependencies in canvas:compile_assets
refs FOO-966

as we're working on extracting Gradebook into its own client_app, the
canvas:compile_assets rake task had to be adjusted to build it too, then
i realized that the canvas_quizzes app has to be built _before_ we
generate i18n phrases while Gradebook (and canvas) have to go _after_
that task

the rake task did not appreciate any more complexity, so instead I
tried to focus on making the dependencies between these sub-tasks
clearer and at the same time maintain the parallel execution

changes:

- it's now possible to build a specific client_app via rake tasks
- the symlink needed for canvas_quizzes client app is now restored
  correctly in case of a failure during the i18n rake task. Previously,
  you had to restore it by hand before running any of the tasks again
- in case a client_app does not implement a `script/build`, we call its
  "npm build" script instead (eg `yarn run build`)

test plan:

- run "RAILS_LOAD_ALL_LOCALES=1 rake canvas:compile_assets" before you
  check out the patch and note the time taken
- check out the patch and re-run the task, verify it still works and
  that the time taken is not longer than what it was (if anything, it
  should be a little faster since we're batching more work)

Change-Id: I65e675ceeea93643a1c679ff29039ed5ef71b53d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/247902
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2020-09-24 20:51:51 +00:00
..
activesupport-suspend_callbacks rails 5.2 2018-04-25 19:15:20 +00:00
acts_as_list spec: fixes for ruby 2.6 2020-03-09 15:57:06 +00:00
adheres_to_policy stop logging stats in adheres_to_policy 2019-03-21 16:29:16 +00:00
attachment_fu rails 5.2 2018-04-25 19:15:20 +00:00
autoextend Add dependency resolution to autoextend 2019-12-16 21:38:14 +00:00
bookmarked_collection auditors read path 2020-06-09 16:10:33 +00:00
broadcast_policy break up broadcast policy to_list on creation 2020-02-29 00:23:29 +00:00
canvas_breach_mitigation use same options for authenticity tokens when resetting 2020-01-29 13:14:13 +00:00
canvas_cassandra allow passing consistency through batch ops 2020-08-25 14:55:34 +00:00
canvas_color Handle named colors like ‘red’ in theme editor 2018-02-16 23:26:02 +00:00
canvas_crummy add streaming templates: part 1 2019-07-31 19:23:44 +00:00
canvas_dynamodb allow client injection for dynamodb 2020-09-01 15:48:44 +00:00
canvas_ext rails 5.2 2018-04-25 19:15:20 +00:00
canvas_http tune http throttle computation to seconds 2020-07-28 01:12:49 +00:00
canvas_i18nliner highlight dependencies in canvas:compile_assets 2020-09-24 20:51:51 +00:00
canvas_kaltura make CanvasKaltura.cache aware that Rails.cache is dynamic 2018-03-06 05:46:59 +00:00
canvas_mimetype_fu fix file warnings for specs on linux 2018-09-07 21:50:53 +00:00
canvas_panda_pub standardize on json-jwt, and bump to 1.10.2 2019-10-21 15:07:52 +00:00
canvas_partman bulk_insert for partitioned models 2020-07-09 16:23:22 +00:00
canvas_quiz_statistics Add user_ids to quiz statistics endpoint 2019-12-04 19:24:27 +00:00
canvas_sanitize Fix sandbox "allow-popups" errors 2020-08-13 19:30:06 +00:00
canvas_slug fix slug generation exception 2020-08-27 16:37:05 +00:00
canvas_sort da licença part 53 2017-05-01 21:06:11 +00:00
canvas_stringex spec: fixes for ruby 2.6 2020-03-09 15:57:06 +00:00
canvas_text_helper da licença part 53 2017-05-01 21:06:11 +00:00
canvas_time rails 5.2 2018-04-25 19:15:20 +00:00
canvas_unzip compare UNZIPPED size of sis imports 2020-09-15 14:41:44 +00:00
csv_diff add sis batch setting to disable diffing on high diff row count 2019-04-16 12:31:50 +00:00
diigo da licença part 53 2017-05-01 21:06:11 +00:00
dr_diff remove skipping linters if whitelisted engineer 2020-05-08 15:17:49 +00:00
event_stream use AR scope for event_stream AR procs 2020-09-24 20:34:14 +00:00
google_drive bump some gems to reduce ruby 2.7 deprecation warnings 2020-09-22 16:08:42 +00:00
html_text_helper spec: a bit of cleanup in gems/ tests 2019-02-06 15:19:17 +00:00
i18n_extraction Upgrade sexp_processor in i18n_extraction 2020-02-14 20:48:44 +00:00
i18n_tasks speed up translations loading 2019-07-01 15:25:30 +00:00
incoming_mail_processor don’t try stuff on nil 2019-05-03 21:01:35 +00:00
json_token da licença part 53 2017-05-01 21:06:11 +00:00
linked_in remove all dependecy on instructure-oauth 2017-07-11 19:21:09 +00:00
live_events delay loading live events context until we actually send a live event 2020-09-03 17:20:12 +00:00
lti-advantage spec: publish test results from gems running rspec 2019-08-28 18:45:17 +00:00
lti_outbound allow whitelisted query param to be added to lti launch body 2018-09-19 18:46:36 +00:00
multipart Escape filename for multipart form uploads 2020-02-04 17:32:54 +00:00
paginated_collection da licença part 53 2017-05-01 21:06:11 +00:00
plugins remove outcomes export i18n FF 2020-09-21 14:47:35 +00:00
rubocop-canvas add if_exists option to remove_index 2020-06-09 21:54:40 +00:00
stringify_ids Make stringifying stuff work even with uppercase letters 2019-11-15 03:23:34 +00:00
tatl_tael spec: remove explicit jest guidance for now 2020-05-20 19:21:42 +00:00
turnitin_api bump some gems to reduce ruby 2.7 deprecation warnings 2020-09-22 16:08:42 +00:00
twitter drop Message#asset_context and DelayedNotification#asset_context 2017-08-22 17:47:51 +00:00
utf8_cleaner add missing test to Utf8Cleaner and cleanup 2019-01-11 22:10:24 +00:00
workflow rails 5.2 2018-04-25 19:15:20 +00:00
README.md Add docs on how to run gem tests 2016-03-09 18:08:44 +00:00
test_all_gems.sh Alpine canvas-lms based image 2020-07-15 17:21:56 +00:00

README.md

Gems

Testing

To test all the gems:

cd gems
./test_all_gems.sh

To test an individual gem

Run ./test.sh inside the gem's folder. This is basically the same as:

cd gems/google_drive
bundle
rspec