All notable changes to this project will be documented in this file.
- Only skip modifiers & not regular fns with -m flag (#82)
- Revamp repo into publishable crates (#79)
- (tests) Use indoc to better format inputs
- Consolidate default sol version between crates
- Rename ast_to_hir -> translate_one
- Skip any comment in .tree files (#76)
- (check) Use the thiserror crate (#73)
- (scaffold) Use the thiserror crate (#71)
- Revamp the scaffold entrypoint (#74)
- Properly include RevertWhen in test names
- Add Sablier to the supporters section
- Add email to Cargo.toml
- Add --skip-modifiers flag (#68)
- Update lock file
- Add FUNDING.json
- (check) Simplify function insertion procedures
- (hir) Simplify imports
- Improve readability of find_contract
- Rework crate to support configuration (#67)
- (docs) Properly render version warning in README
- Mention solidity inspector for syntax highlighting (#61)
- Emit vm.skip(true) when passing -S (#63)
- (deps) Bump h2 from 0.3.22 to 0.3.24 (#59)
- Simplify scaffold entrypoint
- (ci) Fix coverage workflow
- (combine) Properly handle a few edge cases
- (README) Update multiple-roots rules
- (combine) Optimize allocations during the combine pass
- Add support for multiple trees per file (#51)
- (scaffold) Properly sanitize action titles
- (scaffold) Error when a duplicated top action is found
- (check) Properly measure scratch space length
- (tokenizer) Enter ident mode when appropriate
- Bump zerocopy to apply security patch
- Properly handle apostrophes
- (docs) Add supported by section to README
- (scaffold) Sanitize contract names before emitting
- (scaffold) Use forge-fmt to format emitted code
- BREAKING: use forge-fmt to format emitted code
- (scaffold) Remove "-i" flag
- BREAKING: remove "-i" flag
- (bulloak) Make output more readable & succint
- Add ‘bulloak check —fix’
- (scaffold) Error when a duplicated condition is found
- (tests) Remove duplicated branches from complex.tree
- Stop ignoring Cargo.lock
- (docs) Add a few comments to structural_match.rs
- (emitter) Emit dummy SPDX identifier (#47)
- Properly handle a few violation edge-cases
- (docs) Update bulloak's small description
- (check) Simplify context creation
- (check) Improve violations reporting (#45)
- (docs) Add action descriptions to the README
- (docs) Update README example
- (docs) Fix typo in the README
- (docs) Mention VSCode extensions (#36)
- Add support for action descriptions (#44)
- Ignore .DS_Store files
- Rename solidity -> Solidity
- Rename solidity -> Solidity across the whole project
- (docs) Remove extra sentence in CONTRIBUTING.md
- (docs) Use a smaller logo
- (docs) Warn that bulloak is still v0..
- (scaffold) Handle empty trees properly (#32)
- (tokenizer) Check for identifiers after a given
- Avoid duplicating modifiers unnecessarily
- (check) Print success message if no violations are found
- (ci) Add code coverage
- (docs) Add codecov badge to README
- Add support for specifying the contract name (#27)
- Add the "bulloak check" command (#31)
- (emitter) Emit closing brace after visiting actions
- (emitter) Properly sanitize invalid identifier chars
- (error) Properly format multiple errors at once (#25)
- Add support for actions without parent conditions (#26)
- Make keywords case-insensitive (#21)
- (docs) Add missing flags to README
- Properly check if a file exists before generating
- (bench) Use the new Scaffolder struct
- (cli) Pass solidity version as an arg (#17)
- (scaffold) Add a Scaffolder struct replacing scaffold
- Add support for the 'given' keyword (#16)
- (cli) Stop overwriting output files (#15)
- (emit) Use foundry's naming practices for tests (#13)
- (emit) Co-locate modifiers with test functions (#14)
- (README) Update BTT reference tweet (#5)
- (bench) Add benchmarks using the criterion crate (#6)
- (docs) Fix typo in README
- (docs) Add logo to README
- Start using git-cliff
- Introduce the Compiled struct to allow setting the output file
- Generate CHANGELOG.md
- (docs) Add missing tag to README
- (README) Fix typo
- (tests) Remove ticks from identifiers
- Support the ~/code/rust character in identifiers
- Support ticks in identifiers
- Update pkg version
- (docs) Update README's example indentation
- (lint) Appease clippy
- (cargo) Update keyword length
- (ci) Set proper permissions for clippy
- (emitter) Maintain modifier order
- (emitter) Remove unnecessary extra space after
- (parser) Proper parsing cadence
- (parser) Properly parse based on indentation
- (parser) Parse filenames with an extension
- (tokenizer) Restrict possible character in WHEN/IT blocks
- (tokenizer) Start rework to parse filenames and identifiers
- (tokenizer) Finish rework to parse filenames and identifiers
- (tokenizer) Properly parse filenames
- Support all characters in strings for now
- (bulloak) Initial commit
- (cargo) Add missing metadata to Cargo.toml
- (docs) Add comments all over the place
- (docs) Add commentary to the parser
- (docs) Add commentary to the emitter
- (docs) Add commentary to semantic analysis
- (docs) Add README skeleton
- (docs) Add a CONTRIBUTING.md file
- (docs) Add documentation to lib.rs
- (docs) Update README
- (docs) Add doc comment to
- (emitter) Add modifier discoverer
- (emitter) Add solidity test emitter
- (emitter) Add test for edge cases
- (emitter) Test emitter flags
- (error) Implement nice error formatting
- (error) Improve error formatting
- (parser) Start parser implementation
- (semantics) Add a simple semantic analyzer
- (tests) Add unit tests for comments
- (visitor) Add the visitor trait
- Add tokenizer
- Properly setup bin entrypoint
- Add the --write-files option
- (ast) Remove unused Empty variant
- (emitter) Rename with_comments -> with_it_as_comments
- (error) Update error kind naming convention
- (fmt) Fix formatting
- (semantics) Simplify types a bit
- (tests) Revamp tokenizer tests
- (tokenizer) Remove the TokenStream abstraction
- Use full qualifier for the tokenizer mod
- Rename LICENSE_MIT -> LICENSE-MIT
- Rework tests across the binary
- Apply clippy rules
- Flesh out public API
- (ci) Improve ci workflow
- Add basic github workflow