closes: COREFE-209 COREFE-207 COREFE-230
this should help bugs, spec flakiness, and bundle sizes
test plan:
* make sure that the pages that are still using the old 5.x one from
@instructure/ui-core still work, namely:
app/jsx/account_course_user_search/components/CoursesToolbar.js
app/jsx/blueprint_courses/components/CourseFilter.js
app/jsx/grade_summary/SelectMenu.js
* make sure themeing of instUI components still works and picks up
theme editor settings
* make sure bundle sizes are smaller, not bigger
* check tinymce-a11y-checker that it still works the same
(With the rce-enhancements feature both on and off)
Perf test plan:
* make sure tree shaking is working
load it up in one of the webpack bundle visualizers to see
* make sure we are not loading *all* of the icons
this commit also updates the instUI6 version we use from 6.9 6o 6.10
which has fix for <Alert> unmounting that ed fixed:
Test plan:
* you should see less console arrows about react unmounting nodes
Associated with the CanvasSelect component
Change-Id: Ied2ff1d1521b0900126136170f103dea27bc554a
Reviewed-on: https://gerrit.instructure.com/204545
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
We made this change in @instructure/ui-themeable in g/203714
but that is for the current master on instUI 6, we need it now even
though we are still on instUI 5 so this will back port it in so we can
use it now.
Test plan:
* Things that use `themeable` should work both with and without the
“Drop ie11” commit applied.
Specifically:
bin/rspec ./spec/selenium/dashboard/planner/student_planner_assignments_spec.rb:88
Should not fail with
TypeError: Class constructor Yr cannot be invoked without 'new'
Change-Id: I7ef8ef9eda1057badabbb08fcdd6875ad8064e89
Reviewed-on: https://gerrit.instructure.com/203950
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
these files are not actually bundles that someone would js_bundle onto
a page like anything else in the app/coffeescripts/bundles dir
If we left them here webpack would make chunks for them and that is a
waste. moving them out of that dir solves the problem
test plan:
* the content migration and account quota settings selenium specs should
still pass
Change-Id: Ieca3904f6254548d597087209ca180bf599181bd
Reviewed-on: https://gerrit.instructure.com/193848
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
This also replaces our old react-tinymce package with the official
@tinymce/tinymce-react package.
closes CORE-2836
test plan:
- typing in the rce should update the word count in the status bar
- the html path of the current cursor position should also be shown in
the status bar
- generally test all the rce things because of the package replacement
Change-Id: Ibe2b182ff55ba2dc77988dcd4c1865a28667db95
Reviewed-on: https://gerrit.instructure.com/193154
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Jenkins
Product-Review: Jon Willesen <jonw+gerrit@instructure.com>
Closes: CORE-1143
Test plan:
* load canvas in prod mode in a non-English language. Click around
And make sure everything works
* in prod mode, do a test to compare load time to what’s on beta.
* page load time and js bundle size should be smaller
* click around in the quizzes client apps and the ember grade book
And make sure those things work
Change-Id: I93c28c4a6d22db95cd1c7e59cd3f5221d46fe1ed
Reviewed-on: https://gerrit.instructure.com/143422
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Closes: CORE-2868 CORE-2869
This is needed because without
Doing that, our bundle sizes are going to blow up from the things we
Import from InstUI
Test plan:
* the result of a dynamic export will now give you a object grab bag
That has a “default” property. Not just the thing of whatever the
“default" export was.
* so to test this, go to some page that does a dynamic import (like
the dashboard page) and make sure that still works\
* run a prod build
* make sure that translations still work as before
Change-Id: I3dd1b32216052afd5fbc5d6cec40ea18264f65e9
Reviewed-on: https://gerrit.instructure.com/191578
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
This makes it so you can drop-in replace .coffee files in plugins
With .js files, without having to move them from app/coffeescripts/
To app/jsx
Test plan:
* with this applied, my commit that decaffeinates migration_tool
should pass
Change-Id: I06800406f497ec54a5f0294050fabf87755022fe
Reviewed-on: https://gerrit.instructure.com/191742
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
closes CORE-2874
This makes it so we use es Modules instead of AMD for the generated
Code we make in our webpack loader so that it works if those extensions
Are AMD OR ES Modules. As it is written before this, if any plugin
Was written as an es module it would not work unless the
Babel add-module-exports plugin was also used.
We have to do this before I can merge my other commits that
AMD->ES modules stuff in plugin repos
Test plan:
* plugins that add extensions to other files should still work
Change-Id: I2b6d6ee7fcabc28864b29e7f8df336316d1a3b61
Reviewed-on: https://gerrit.instructure.com/191710
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
closes: CORE-2785
This is all stuff that needs to be ran on every page, but It is not
critical that it be ran before anything else. By moving this into
an async chunk, it will not block any of the critical javascript from
running if it is ready (downloaded) before this stuff is.
Test plan:
* all of these behaviors and things should still run
* but you should see that they load from their own webpack chunk file
In the network panel
* and you should see that while that chunk is downloading, the critical
JS is not blocked from executing
Change-Id: If47d966979238d68da14bb4b69cba32be7f87dcc
Reviewed-on: https://gerrit.instructure.com/189372
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
closes: CORE-2770
we don’t need timezone data from before canvas was created (pre 2011)
or, realistically, 15 years from now. by using this
moment-timezone-data-webpack-plugin we can strip them out of our webpack
bundle and our common vendor JS file will be smaller.
and smaller js bundles = faster page loads
test plan:
* try to think of a compelling reason why we would need to properly
handle timezone weirdness that is either older than 2011 or more than
15 years from now
* if you can think of something, then we can’t do this
* run the prod webpack build, the vendor file should be smaller
Change-Id: I1823fb48cc14bc0687f5222d7f4344118825698e
Reviewed-on: https://gerrit.instructure.com/188810
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
closes: CORE-2588 CORE-2591
This completely removes the legacy RCE codepath. So you will need to
Have an https://github.com/instructure/canvas-rce-api running to use
sidebar in any Rich Content Editors.
Test plan:
* smoke test to make sure that the editor and sidebar work as it did
When you had the RCS feature flag on.
* there should not be any more settings or feature flags around turning
on the RCS service
Change-Id: I1c3e7f5a45eed5e010d8e425ae561e45f739fd3a
Reviewed-on: https://gerrit.instructure.com/186525
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
closes: CORE-2699 CORE-2700 UIDEV-99
This commit gets canvas-lms itself upgraded to babel 7. To do that we
also had to upgrade jest to v24. We had already got canvas-rce and
canvas-planner on jest24/babel7 but now this gets everything to babel 7.
so you will see a lot of things removed from yarn.lock since we don’t
don’t have to have different versions of everything for babel and jest
The other major thing this does is make it so any JS file in canvas
can become an @instructure/ui-themeable themeable component. This means
you no longer should have to put your css in app/stylesheets for any new
react components that you are writing.
Test plan:
1. Make sure that the perf of `yarn build:js` is on-par with what it was
before. We pass everything through the themeable babel transform now
so there is a chance it is slower. If it is majorly slower, we’ll have
to figure something out.
2. run a production weback build. The common (or any bundle for that
matter should get output exactly the same as it did before)
things to manually qa check:
* in a NODE_ENV=production enviornment, go to
/accounts/site_admin/developer_keys
* click the "+ Developer Key" button, it should open the modal.
(there are selenium tests that do this, but it was one thing that had
to be fixed to get jenkins to pass)
* on a course that is set up as a master course, click on the thing that
opens the blueprint courses tray.
* verify that when you click "Associations" and "Sync History" links in
that tray, that they dynamically load the webpack chunk for the
modal contents for that thing and then the modal is shown
(again, there are selenium specs that test that exact thing but it
is always good to manually test it too)
Change-Id: I802584228962b54480a500f8fe422f45c2dcac4c
Reviewed-on: https://gerrit.instructure.com/183965
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
I guess since our team owns these we can opt them in now
Test plan:
* nothing should change
Change-Id: Ic7207e1033869ef60644c41bd5c80a3e8532a6dd
Reviewed-on: https://gerrit.instructure.com/171471
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
this is the commit that actually does the syntax conversion from
coffeescript to javascript.
test plan:
* automated builds, which have javascript/selenium tests that cover
the screenreader_gradebook should pass.
* look at the log output of the linters-and-js build and verify
That the tests for “ScreenReader Gradebook” ran. (Without a change
In this commit, it was only running .coffee specs. But I changed it
So this step is to just make sure that did the right thing)
* manually try out the "individual gradebook" page and click around
to see that everything works
Change-Id: I32aeb14270ce751df49a1c7ae87cc57dceab69f6
Reviewed-on: https://gerrit.instructure.com/168020
Tested-by: Jenkins
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
If you see this in git blame, it is actually the parent-parent
(^^) commit that you want
These are all coffeescript files that are not imported via AMD
In any other file (eg there is no file that has
define([‘path/to/foobar’, (foobar) => …
That means these can be converted now. The ones that do have something
That imports them like that ^ need to be all converted at the same time
Otherwise you have to rewrite that as:
define([‘path/to/foobar’, ({default: foobar}) => …
Test plan:
* these files should all do exactly the same as what they used to
Change-Id: I3956cb16943e1404ab5bde39978bdc198d0e5b07
Reviewed-on: https://gerrit.instructure.com/167600
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
These are all things that were improperly importing either:
* a “default” object when there was only named exports
* a named export when there is only a default export
They work now because we tell babel to transpile es modules down
to commonJS in the “env” preset in babelrc but we want to eventually
not do that and these will need to be fixed before then
Test plan:
* no functionality should actually change in the code generated by
Webpack
* this build should pass
* but so should the build for the commit that follows this that
sets the `“modules”: false` option for babel-preset-env in
.babelrc
Change-Id: Ic6f49fb94ee0d0592ca5e34ef7ed0a5633c40d80
Reviewed-on: https://gerrit.instructure.com/167054
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
closes CORE-1460
Test Plan:
- When the selenium chrome deprecations build
runs, you should see data in sentry.
- You should see no change in behavior when run
in prod or without DEPRECATION_SENTRY_DSN environment
variable set.
Change-Id: I7703d44612af6189a13122de15fdb0d067d2110d
Reviewed-on: https://gerrit.instructure.com/161736
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
These were included in most bundles too
Change-Id: Ic0c8ec13c7c5b0f0a734f056d1918c8c7836bd30
Reviewed-on: https://gerrit.instructure.com/155490
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
These things (and all of their deps) are things that are required on
most of our pages. Because of the way our webpack is currently set up,
if something is not in the “CommonsChunk” (aka: vendor bundle), then
It will be bundled into any bundle where it was used. This meant that,
For example, discussions, announcements, account_course_user_search, etc
Each had their own copy of lodash and all of these instUI components
bundled into their own webpack file. That meant, as you browsed around
From page to page, you’d download like 10 different copies of lodash and
Re-download all of these instUI components (aka, wasted bandwidth,
Slower page loads). It also meant running webpack in production mode
would be slower because there was more bundling work for webpack to do
But most importantly there was more total bytes of JS for uglifyJS to
Uglify.
Test plan:
* `yarn webpack-production` should be faster.
(The difference for me was Time: 406140ms to Time: 276743ms)
* browsing around canvas on a non-super-fast connection with an empty
cache should feel faster since you’re downloading less JS per new page
view
Change-Id: I0d0de9aafe2fc94d2d734993ac8527c7e4af165b
Reviewed-on: https://gerrit.instructure.com/155134
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
This makes it so our sentry instance can be much more detailed
in the data that it collects
Change-Id: If44ea7bc54646988d681e6ad775951eb0e35436a
Reviewed-on: https://gerrit.instructure.com/154010
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
This makes it so that our karma build shows accurate source maps
to istanbul when reporting code coverage.
It also makes it so sentry errors get reported a bit better
Test Plan:
- Run build in non-prod with COVERAGE or SENTRY_URL env variables set
- Full source maps should be present
Change-Id: I19e4df833cad34b7877483f69aec676dfdd8fe7c
Reviewed-on: https://gerrit.instructure.com/153978
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Run `script/nuke_node.sh` to clean everything up
Run `yarn install` it should install everything for everything
Run `yarn build` and `yarn test` they should work exactly as before
Change-Id: I11a27ff2d705c6cbb3b3f9029dd8b32138706146
Reviewed-on: https://gerrit.instructure.com/151356
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
closes: CORE-1434
Test plan:
* all the icons should look the same as they did before
* make sure that icons that should flip for RTL (like the icons on
The course/user search pagination arrows, the icon to open the
Submission details tray in new gradebook, the “>” icons to expand
a submenu for the menus in new gradebook, etc)
Change-Id: I490d2dcd91b1b7ca2a116a1416718cd797f74901
Reviewed-on: https://gerrit.instructure.com/149482
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Reviewed-by: Chris Hart <chart@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Change-Id: Ice63f1cf2397c02c470af6ec6750de36efb61550
Reviewed-on: https://gerrit.instructure.com/148904
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
closes: CORE-1203
test plan:
* all automated tests should still pass meaning there was no file
that depended on i18n that didn't "import" it
Change-Id: I68356bee03ca8aa22e87895e76dcd00efa37ab56
Reviewed-on: https://gerrit.instructure.com/143457
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
closes: CORE-1201
test plan:
* the qunit & selenium tests that we have around this should still pass
(except for that one that had to be changed because the spec was
actually expecting the wrong thing and the old code was erroneous)
* load the app in fully production build and make sure translations
still work
Change-Id: Id06c38f60c1670fb93e85d5479ec747035c1158b
Reviewed-on: https://gerrit.instructure.com/143456
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
I was totes using this.
This reverts commit f2d1d07011.
Change-Id: Ia1959c3533f25155a957ecac4442fd01896e2896
Reviewed-on: https://gerrit.instructure.com/143598
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
Product-Review: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
updates all the instui components used for these alerts to 4.x
Closes: CORE-762 CORE-732
Change-Id: Ia5af600b5747bfbeca4015d30d2be900700a90ae
Reviewed-on: https://gerrit.instructure.com/143337
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
This was a thing so you could get Mac notifications of your webpack
build progress. I don’t think anyone actually uses it though.
I’ll add a bunch of people to the review on this and if you or someone
You know uses it still, let me know and we can keep it in if it is
helpful.
Change-Id: Iebf7fb16ebd532e63cbb31b325f7cd8e1b711e02
Reviewed-on: https://gerrit.instructure.com/143257
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
refs: CORE-24
test plan:
* this net result of this change should mean that we are using the exact
same code as we were using before, just pulled from github directly
in our package.json instead of vendored into our repo.
* testing the follow-on commits should show this worked correctly
Change-Id: Ie6d022d5fe8ed1a607f66f9d426c47ec7e8f5b14
Reviewed-on: https://gerrit.instructure.com/142381
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
It turns out our the webpack IgnorePlugin we set up stopped working
so this fixes it and adds a spec that will catch it if it ever breaks
again in the future
Test plan:
* the webpack vendor should be smaller
* date strings in other languages should still work
Change-Id: I3a23c358eec73309f97bac119c7028e25d52e448
Reviewed-on: https://gerrit.instructure.com/142416
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Vendor/md5.js doesn’t exist anymore, we get it from npm directly
So we don’t need this config line
Change-Id: Ib6de829e7d708d07d9a3bd5bc666ab8dc4e99a4a
Reviewed-on: https://gerrit.instructure.com/142824
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Lately, when I have been running webpack I have noticed this warning:
[BABEL] Note: The code generator has deoptimised the styling of
“…/public/javascripts/translations/gradebook.js" as it exceeds
the max of "500KB".
And I thought:
1. oh man, so sad that we have a half meg of strings for just the
gradebook bundle
And:
2. Why are we getting babel warnings about stuff in
public/javascripts/translations in the first place? Those are
generated files and have no need to be passed through babel.
So this commit at least fixes#2. We’ll fix#1 in the next sprint with
Our i18n work.
This shaved 1/6th of the time to run a webpack build for
Me when I tested it (50s vs 60s). Not bad :), every little bit helps.
Test plan:
* run webpack
* you should not see that “[BABEL] Note: The code generator…” warning
* run prod compile_assets and boot rails in prod mode.
* make sure all the strings are still translated for you
Change-Id: I2f1b6759ab5ace82662cb3c713449bbf3fef7fd5
Reviewed-on: https://gerrit.instructure.com/142380
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
...and pass them through amdtoes6, eslint, and prettier
This converts most of our coffeescript spec files to javscript, to
es module syntax and applies our eslint code formatting rules to it.
Because this is just spec files, as long as the tests still run
and they all still pass, this should be good. That makes these a lot
easier and safer to deal with converting than the stuff in
app/coffeescripts
After this commit there should not be any .coffee files in the
/spec/ directory.
test plan:
* jenkins should run the same # of js specs as before and they should
all pass
Change-Id: I701c101777486e2e37d0ec1327692f16099352cd
Reviewed-on: https://gerrit.instructure.com/141556
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
this just updates our webpack config so if you rename
spec/coffeescripts/fooSpec.coffee to spec/coffeescripts/fooSpec.js
and change the syntax to js it will accept that just the same as
the coffee file it replaced.
test plan:
* verify that the specs in the commits that follow this
have their specs run and they pass
Change-Id: I3a58c2bbffa6022a5c63a0f50dd5f37d311e1dc7
Reviewed-on: https://gerrit.instructure.com/141554
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
to make it clear why it's there and under what conditions
it should be changed
refs CORE-933
Change-Id: I449eaaa54baddc3ab6667f2a16d97570bb61f21b
Reviewed-on: https://gerrit.instructure.com/139438
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
This also removes md5 asset chunk hashing.
test plan:
* task force consensus
Change-Id: Id67efa204bef719fdb10b3a6d429915744ff2044
Reviewed-on: https://gerrit.instructure.com/139415
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
test plan:
* all eyes of the hot potato approve
Change-Id: Idaa349b2a5b526b46bfe72df2673093fb6ff88b3
Reviewed-on: https://gerrit.instructure.com/139120
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Jeremy Neander <jneander@instructure.com>
the new version of webpack has a new plugin (EnvironmentPlugin) that
makes the syntax for doing this same thing a little more concise
test plan:
* webpack should work the same as it used to
Change-Id: I7116cc26386283c84a3d82fbbbd06f5497829a1c
Reviewed-on: https://gerrit.instructure.com/133390
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
...so people can start upgrading all of their stuff
closes: CORE-735
test plan:
* check out a follow on commit after this and make test that
* make sure theming works for new components
Change-Id: I1ab6141152c353cbae88657b8913431c2634a4f2
Reviewed-on: https://gerrit.instructure.com/135330
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Resolvesinstructure/canvas-lms#1101
In production, generate separate sourcemap files so that bundles appear
split into their original, un-obfuscated source files in browser
devtools.
Note: `source-map` generation on large projects can cause node/v8 to
exhaust its memory allocation (see webpack/webpack#1914,
webpack/webpack#2157). This is the reason for the change to
package.json. In the future (e.g. when Canvas uses Node 8, or the
NODE_OPTIONS feature is back-ported to Node 6, this can go back to
a traditional npm script that doesn't directly invoke `node`.
Test Plan:
- Remove the `public/dist/webpack-*` directories.
- Run `JS_BUILD_NO_UGLIFY=true npm run webpack-production`. No sourcemap
files should be present in `public/dist/webpack-production`.
- Run `npm run webpack-production`. Sourcemap files should be present in
`public/dist/webpack-production`
Change-Id: Iebc85b5f52a6c7c25fdc5c2326cf9436dd42c2dd
Reviewed-on: https://gerrit.instructure.com/128070
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
add timezone locales that were lost when moving from vendoring the
library to pulling it from npm. custom locales were apparently added
to the vendored lib.
fixes CNVS-38138
test plan:
- change user locale to each of the following:
ar, da, fa, ht, hy, mi, nn, tr
- load a page
- ensure there is not a 404 when trying to load the timezone js file
Change-Id: Idff0059e3e445d1602f5d595d595af4780b34517
Reviewed-on: https://gerrit.instructure.com/123653
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
Fixes: CNVS-38653
This will prevent compile_assets from continuing
if webpack had any warnings.
Test plan:
* Comment out `new webpack.IgnorePlugin(/\.flow$/),`
in frontend_build/baseWebpackConfig.js
* run webpack
* it should return a non-zero exit code
Change-Id: Iecfd47bc4e83e15a288397e102716535a5a4ef0d
Reviewed-on: https://gerrit.instructure.com/122994
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: brian kirkby <bkirkby@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
fixes CNVS-34165
test plan:
- make sure you are running with RAILS_LOAD_ALL_LOCALES=1
for (web and webpack if you are running docker)
- change locale to each of es, de, fr, fr-ca, he and pl
- create/edit a quiz
- in the due date try setting the due date to a day in each month
- no need to save
- make sure after clicking the day it doesn't change to a different
month or year
Change-Id: I2da96f80678193e084786d867b27f2944a6e402c
Reviewed-on: https://gerrit.instructure.com/119926
Tested-by: Jenkins
Product-Review: brian kirkby <bkirkby@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Reviewed-by: brian kirkby <bkirkby@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>