Releases: ysugimoto/falco
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
v1.5.0
New Feature
- Add assert.not_subroutine_called #247 (@bungoume)
- follow new fastly documentation #271 (@ysugimoto)
Improvement
- Save/restore current subroutine locals when processing call statement #254 (@richardmarshall)
- Handle % string escapes #256 (@richardmarshall)
- testing.call_subroutine ignores invalid subroutine name #259 (@akrainiouk)
- keepalive_time added to supported backend properties #269 (@akrainiouk)
- improve trailing/infix comment parsing #270 (@ysugimoto)
- special dealing for req.hash addition assignment #275 (@ysugimoto)
- Prioritize cache object #277 (@richardmarshall)
- fix exprression comment parsing #278 (@ysugimoto)
- Setup req.http.host in ProcessInit #279 (@richardmarshall)
- Record test runtime errors #280 (@richardmarshall)
Bugfixes
- fixed double decoding in urldecod #261 (@akrainiouk)
- req.url: fixed consistency with Fastly implementation #262 (@akrainiouk)
- fix base64 decode related builtin function #263 (@ysugimoto)
- Fixed parsing of += operator #266 (@akrainiouk)