-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(tests): Use freshly-build files in compressed mode. #6218
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Use the freshly-built build/*_compresssed.js files when bootstrapping in compressed mode, rather than using the checked-in files in the repository root. This helps ensure that compressed and uncompressed mode will be testing (as closely as possible) the same code.
cpcallen
added
component: build process
PR: chore
General chores (dependencies, typos, etc)
labels
Jun 15, 2022
4 tasks
14 tasks
cpcallen
added a commit
to cpcallen/blockly
that referenced
this pull request
Oct 4, 2022
Use the freshly-built build/*_compresssed.js files when bootstrapping in compressed mode, rather than using the checked-in files in the repository root. This helps ensure that compressed and uncompressed mode will be testing (as closely as possible) the same code. Obsoletes google#6218 (though the issues discussed there have not actually yet been addressed in this branch).
cpcallen
added a commit
that referenced
this pull request
Nov 3, 2022
* feat(build): Make build tasks invoke their prerequisites - Divide gulp targets into three kinds: main sequence, manually invokable, and script-only. The first two categories automatically invoke their prerequisites. - Give (most of) the affected gulp targets shorter and more memorable names that could become their npm script names in future. * feat(build): Make package tasks invoke their prerequisites Have the package task invoke the cleanBuildDir (as well as cleanPackageDir) and build tasks. Remove the checkBuildDir task as it is now redundant since a fresh build is done every time. * feat(build): Make git tasks invoke their prerequisites * feat(build): Make cleanup, license [sic] tasks invoke their prerequisites Turns out they don't have any, so this commit just classifies their gulp targets according to the established scheme. * feat(build): Make appengine tasks invoke their prerequisites In this case prepareDeployDir will eventually depend on package but does not for now. * feat(build): Have npm scripts run npm ci first where applicable Have any npm script that have external effects (e.g. publishing an npm package, pushing a new version to appengine, or updating GitHub Pages) start by running npm ci to ensure that all dependencies are up-to-date with respect to package-lock.json. (This is done by npm and not a gulp script because gulp itself might need updating. So might npm, but that is less likely to make any difference to what gets published/pushed.) * chore(build): have tests use package target Have the tests just run the package target (with debug flags) since that runs the the build target automatically. * feat(tests): Write Closure Compiler output directly to dist/ Since they are already UMD-wrapped, have Closure Compiler write output chunks directly to RELEASE_DIR, i.e. dist/. * chore(tests): Use freshly-build files in compressed mode. Use the freshly-built build/*_compresssed.js files when bootstrapping in compressed mode, rather than using the checked-in files in the repository root. This helps ensure that compressed and uncompressed mode will be testing (as closely as possible) the same code. Obsoletes #6218 (though the issues discussed there have not actually yet been addressed in this branch). * chore(build): Write intermediate langfiles to build/msg Write the results of create_messages.py to build/msg instead of build/msg/js. * fix(build): Use build/msg/en.js instead of msg/messages.js in tests This has no direct effect but fixes a long-standing misdesign where we are testing against the input to, rather than the output of, the language file processing pipeline. * feat(demos): Use freshly-built files Use the freshly-built dist/*_compresssed.js and build/msg/* files rather than using the checked-in files in the repository root. This helps ensure that these demos are using the most recent version of Blockly (even in the develop branch). * fix(build): Update appengine deployment to include built files Modify the prepareDemos task as follows: - Use the git index instead of HEAD, so that most local changes will be applied (without copying whatever .gitignored cruft might be in the local directory). - Run clean and build and then copy build/msg and dist/*_compressed.js* to the deploy directory. This fixes the problem created by the previous commit, wherein the demos relied on built files that were not being deployed to appengine. * fix(build): Update GitHub Pages deployment to include built files Modify the updateGithubPages task to run clean and build and then git add build/msg dist/*_compressed.js*, so that they will be included in the deployed pages. This fixes the problem created by the previous^2 commit, wherein the demos relied on built files that were not being deployed to GitHub Pages. * chore(build): Remove build products from repository Remove *_compressed.js* and msg/js/* from the blockly repository. Also remove the now-obsolete checkinBuilt gulp task. * chore(build): Apply relevant changes to test_tasks.js Apply changes made to run_all_tests.sh and check_metadata.sh to the corresponding parts of their JS replacements in test_tasks.js. * chore(build): Make updates suggested in PR #6475 - Remove `clean:builddir` and `clean:releasedir` - `clean` is sufficient. - Remove duplicate `require` from `appengine_tasks.js`. * feat(build): Use shorter npm script names Since scripts that run build tasks now automatically run their prerequisite tasks, the previous naming scheme of task `build` running all the `build:subtask`s no longe really makes very much sense. Additionally, following a chat discussion, there seems to be a rough consensus to use "messages" to refer to the .json input files, and "langfiles" to the generated .js output files. Consequently, simplify npm script names by renaming as follows: - "generate:langfiles" -> "messages" - "build:langfiles" -> "langfiles" - "build:js" -> "tsc" - "build:deps" -> "deps" - "build:compiled" -> "minify" - "build:compressed": delete this synonym for "build:compiled", ("minify" was chosen as agnostic to Closure Compiler vs. WebPack.) * chores(build): Add deprecation notice for old scripts To reduce potential confusion/frustration, restore the previous npm scripts but have them display a deprecation notice instead (note that npm prints the script contents before running it, so echo is not needed). * docs(build): Add comments distinguishing 'messages' from 'langfiles'
Obsoleted by #6475. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The basics
npm run format
andnpm run lint
The details
Resolves
Proposed Changes
Use the freshly-built
build/*_compresssed.js
files when bootstrapping in compressed mode, rather than using the checked-in files in the repository root.Behaviour Before Change
When running in compressed mode, the code that is run is whatever was last copied to the repository root by
npm run checkin:built
.Behaviour After Change
When running in compressed mode, the code that is run is whatever was most recently built by
npm run build
(possibly vianpm test
).Reason for Changes
This helps ensure that compressed and uncompressed mode will be testing (as closely as possible) the same code.
Test Coverage
Passes
npm test
. No changes in manual testing are needed.Documentation
Instructions for updating hosted playgrounds may need to be updated.
Additional Information
I'm leaving this as a draft PR until someone (possibly myself) has the chance to investigate the issue with GitHub Pages @BeksOmega raised when I previously proposed this change.