Releases: ysugimoto/falco
v1.12.0
New Features / Follows Fastly spec
- Lint custom statement #374 (@ysugimoto)
- Add support for long strings with heredoc delimiters #379 (@gabrielg)
- Allow access to body set bu synthetic in tests #382 (@gabrielg)
- Add TIME type support for conditional operators to interpreter #390 (@Co9xs)
Improvements
- Allows subroutine calls in return statements #384 (@gabrielg)
- fix: support --version option #392 (@ronnnnn)
- Add more logic and error definition for long string parsing #394 (@ysugimoto)
Bugfixes
- Fix fastly services recursively in terraform planned JSON #375 (@ysugimoto)
- Fix grouped testing syntax #376 (@bungoume)
- Change fastly.error from FLOAT to STRING #380 (@gabrielg)
- Fix header subfield handling #385 (@gabrielg)
- Write formatter configuration in docs #388 (@ysugimoto)
- fix: formatting is broken if using elseif or elsif #393 (@ronnnnn)
Performance
- Lexer performance improvement #372 (@ysugimoto)
- Benchmark Performance #371 (@ysugimoto)
- Update falco simulate command in README #389 (@TakeshiOnishi)
Miscellaneous
- Implement scheduler for documentation-check #377 (@ysugimoto)
v1.11.2
v1.11.2
v1.11.1
v1.11.1
v1.11.0
New Features
- add dap subcommand and support basic DAP features #349 (@rinx)
- implement
assert.not_error
assertion method #352 (@ysugimoto) - add
bereq.max_reuse_idle_time
variable support #362 (@ysugimoto) - add remote director resource to lint #363 (@ysugimoto)
Improvements
- improve url encode and decode built-in functions #354 (@ysugimoto)
- fix header existence logic, exactly treat as null or empty string #353 (@ysugimoto)
- move base64 related logic to shared codec #355 (@ysugimoto)
- Improve string concatenation logic #364 (@ysugimoto)
- implement raising deprecated error #366 (@ysugimoto)
- docs(dap): add a brief documentation about dap subcommand #367 (@rinx)
Bugfixes
- Fix tiny bug of base64 decode functions #351 (@ysugimoto)
- Fix hex display: pad 01-0F values to two digits #356 (@bungoume)
- fix literal comparing issue for injected variables #357 (@ysugimoto)
v1.10.0
New Features
- add watch option for incremental testing #347 (@ysugimoto)
- implement uuid version7 related new functions #345 (@ysugimoto)
- inject value for tentative in simulator #344 (@ysugimoto)
- add
--genearted
option and add vcl_pipe related linter rule #339 (@ysugimoto) - support Fastly generated specific syntaxes #338 (@ysugimoto)
Improvements
- exact custom token #346 (@ysugimoto)
- adjust default TrailingCommentWidth to 1 #341 (@acme)
- update timezone in test #340 (@acme)
Bugfixes
v1.9.1
Improvements
- strict macro linting #336 (@ysugimoto)
- feat(formatter): prevent indentation of #FASTLY macros #335 (@acme)
- Add feature to disable only specific lint rules with ignore comment #333 (@nodaguti)
- Set exit code to 1 when there are one or more lint errors #332 (@nodaguti)
- Add extra format check for backend.share_key #331 (@nodaguti)
Bugfixes
v1.9.0
New Feature
- Arbitrary process flow marking #327 (@ysugimoto)
- Actual proxy behavior in simulator #328 (@ysugimoto)
Improvments
- Reduce memory allocation using pool #329 (@ysugimoto)
v1.8.0
New Feature
- HTTPS server Support #319 (@ysugimoto)
- Support fastly.try_select_shield new function #320 (@ysugimoto)
- Injectable Edge Dictionary on Simulator #321 (@ysugimoto)
- Subroutine mocking feature #322 (@ysugimoto)
- Implement plugin system #324 (@ysugimoto)
Improvements
- Bump versions on CI #323 (@ysugimoto)
Note
This version includes plugin
system that communicate with CLI command interface. You can create custom linter by implementing plugin protocol, see https://github.com/ysugimoto/falco/blob/main/docs/plugin.md in detail.
v1.7.0
New Feature
- Feature/testing syntax #312 (@ysugimoto)
- Add linter rule of goto #311 (@ysugimoto)
Improvements
- Feature/custom syntax #309 (@ysugimoto)
Note
We implemented a custom syntax definition mechanism in VCL, it means we bring special syntax (statement, token, etc) only for falco rutime.
In terms of this, we specified tokenization/parser spec at https://github.com/ysugimoto/falco/blob/main/docs/parser.md.
For testing, we define grouped testing like describe
keyword using custom syntax. See https://github.com/ysugimoto/falco/blob/main/docs/testing.md#grouped-testing in detail.
v1.6.0
New Feature
- Feature/implement formatter #291 (@ysugimoto)
- Feature/console subcommand #303 (@ysugimoto)
- Add enforcing and ignoring subroutine scope in linter config #296 (@ysugimoto)
Improvement
- Improve parser/ast for complex comments #302 (@ysugimoto)
Bugfixes
- Errors with concurrent simulator requests due to global interpreter state #282 (@richardmarshall)
- Fix offset/length handling in substr & utf8.substr #283 (@richardmarshall)
- Regex patterns must be literals #284 (@richardmarshall)
- Add missing backend.{name}.* variables #285 (@richardmarshall)
Imporatnt
Fastly says that an NGWAF configuration will be provided via Fastly managed dynamic snippet and probably cannot be modified.
Then Falco will raise a linting error for it, so it should be ignored by the configuration. If you're using NGWAF in your deliver service, probably this configuration is needed. see configuration.md