Skip to content

v2.3.0-beta.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@jfmengels jfmengels released this 14 Aug 07:48

Features

--template now supports running with and initializing with configurations that link to parent directories (like "source-directories": ["src", "../src"])

The default configuration created by elm-review new-package now contains more rules.

Performance

After first parsing a file, we store the parsed AST in the file system under elm-stuff, so that we can avoid having to do the expensive parsing at every run. Previously, we were using elm-syntax's encoder/decoder for that, but the total size of the cache was pretty big (roughly 6 to 8 times the total size of the Elm files of the project), which was a lot of data to load from the file system, which is a slow process.

Thanks to @MartinSStewart's hard work on elm-serialize and on integrating it with elm-review, we now write a way more compressed version of the AST, which is about a third of what it was before. On a 160k LoC project, that went from 41MB of data to about 14MB. This cuts roughly 15% of the time both on the first initial run (writing the files is faster) and on the successive runs (loading the files is faster).

List of commits

  • Upgrade xo ee277bf
  • Remove unused return value a569897
  • Remove unused catch bindings 60609b3
  • Run flow in a one-off manner 0077694
  • new-package: Add no debug rules to default configuration 4bec40c
  • new-package: Add NoMissingTypeExpose to default configuration 7c3e21b
  • new-rule: Do not add a rule to the README if it already exists d984891
  • new-rule: Do not add a rule to elm.json if it already exists 1e1c779
  • Improve detection of "provided rules" section 67d7136
  • Capitalize Watch module 8e08660
  • Capitalize ErrorMessage module 3b5a7ca
  • Capitalize AppWrapper module c26f5cc
  • Capitalize AppState module d729032
  • Capitalize Runner module e5cc0fe
  • Capitalize Help module 0f83cf3
  • Capitalize Init module 930d477
  • Capitalize NewRule module a17be1c
  • Template: Support directories with .. when running init 8ee0cf9
  • Template: Support directories with .. when building/reviewing ceac00e
  • Make the spinner succeed if the template has already been built 9365a31
  • Make the spinner show as failed when a crash happens 59330fa
  • Re-order imports in Main d68f714
  • Add the project name to the license, and add dummy values for tests 92f9d49
  • Remove remaining absolute paths from CLI output 65b3776
  • CLI tests: Hide messages about files not being removed 71ba143
  • CLI tests: Don't compare elm-stuff 38d35d8
  • CLI tests: hide build output 4598b40
  • Fix crash when running with --FOR-TESTS and there is a compilation error 9cc1eea
  • Add thanks to @MartinSStewart 0cb577c
  • Simplify File codec 66132cd
  • Add ability to specify GitHub auth token for CLI tests through and an ENV variable 6f2442f
  • Remove bytes related code in vendored serialize 7b598a7
  • Remove need for Toop dependency ac45855
  • WIP Vendorize elm-serialize b530495
  • Move AstCodec module to avoid conflicts with configuration files 43b55a7
  • Re-order top 10 expression variants aad93bf
  • Rename expression variants b766179
  • Reduce size of cache files by encoding Node as a list of 5 elements 0837f41
  • Reduce size of cache files by encoding range as a list of 4 elements cd0fb78
  • Cache files using elm-serialize encode from json functions e5616a1
  • Fix compilation errors and finish the wiring 81a7d23
  • Small change 89d20c4
  • Wire everything up 8591515
  • Finish codecs b0e0271
  • Start adding elm-syntax codecs 99d25d7
  • Build the project when running the CLI tests 57ff70f
  • Write elm.json with 4 tabs 9ac2d5e
  • new-package: Ignore common editor files in the generated gitignore 1ce3748
  • Remove ignored Git directory 93c8534
  • Format package.json with indentation of 2 873c1d5
  • Add warning about the use of CLI errors' "message" field in JSON output mode 19d9414
  • Fix encoding: change "str" to "string" eaed787
  • Add test cases for when there are compilation errors 1cb2399
  • Format error messages in JSON just like other reports 054001d
  • Separate styledMessage.log into 2 functions 7bcecd3
  • Use cross-spawn-promise 3007a9d
  • JSON report: Make the output look like the Elm compiler 83e1caf
  • Turn color from "formatted" field in JSON report into a hex string 5eb51a3
  • Generate fake Elm files in init tests in order to make test more consistent 52c5211
  • Fix --elmjson not working 813dc27
  • Bump elliptic from 6.5.2 to 6.5.3 (#16) 3845dfe
  • Simplify report message when there are no errors 92ceee7
  • Extract parts of the init procedure into separate functions 8df97e4
  • Add try it out sections to new rules and packages 8120684
  • Fix typo in generated new-rule source file ce9167b
  • new-rule: Add new rule to the example 9d822fe
  • new-package: Generate example/ folder c3cdb08
  • Fix typo in new-rule error message 9a96fff
  • Remove init tests from package.json 03d9316
  • Add test for init with --template in the CLI tests b019f58
  • Refactor CLI tests wrt checking generated files 55021b2
  • Add test for init in the CLI tests f682351
  • Fix linting 31af425
  • Create CLI test for new-rule c7efa82
  • Create test for new-package 8625a52
  • Fix rule name regex allowing incorrect characters e554e98
  • Pre-fill answers for new-package 80b60f3
  • Add missing word in error message 6d577c0
  • Download all files from the remote config when running init 354a4aa
  • Disable Spinner when running CLI tests be1ccc2
  • Detect major version differences of the elm-review dependency 39d6174
  • Make elm-review outdated test configuration even more outdated 99b49a0
  • Add spinner to explain what is going on 300ffb5
  • Upgrade dependencies of downloaded templates 5425529
  • Re-organize template-dependencies 01ee796
  • Explain to use --github-auth on rate limiting problems 77e53d6

v2.3.0-beta.1...v2.3.0-beta.2