Thanks for your work and your investigation everyone! Please let me know if I understand the problem correctly:
- The @edx/studio-frontend package is a requirement of edx-platform, with version
^1.17.0, which basically mean “anything between 1.0.0 (included) and 2.0.0 (excluded)” (see: https://semver.npmjs.com/). - The @edx/studio-frontend package was recently (~ April 4th) updated to 1.18.2. Because of the unpinned required requirement in edx-platform, this causes new builds of Docker images to upgrade to the newest release.
- The 1.18.2 release does not ship with some required files, such as
node_modules/@edx/studio-frontend/dist/common.min.js, thus causing errors in the studio. - The files that are missing in 1.18.2 were present in 1.17.0, as we can see by running:
$ find node_modules/@edx/studio-frontend/ -name "common*.css"
node_modules/@edx/studio-frontend/dist/common.min.js
- The first version in which the dist/ folder was missing is 1.18.0: https://registry.npmjs.org/@edx/studio-frontend/-/studio-frontend-1.18.0.tgz Compare with 1.17.0 where the dist/ foldr was present: https://registry.npmjs.org/@edx/studio-frontend/-/studio-frontend-1.17.0.tgz
It seems to me that there are two bugs here, both upstream:
- The @edx/studio-frontend package should have a version pinned to 1.17.0 in edx-platform’s package.json.
- The 1.18.* versions of package @edx/studio-frontend should include the dist/ folder.
I have no idea why edX.org is not affected by (2). My guess is that npm packages are either installed in place or stored in a CDN, which caches older versions for some reason.
I propose to fix the issue in Tutor by pinning the studio-frontend version in the open-release/maple.master branch of edx-platform. Would someone like to open a pull request on edx-platform to that effect? You should link to this comment in your PR description. Then, open a PR on Tutor to cherry-pick your commit.
Thanks again for your work!