Releases: fchastanet/bash-compiler
Release list
3.2.1
What's Changed
- 🚀(docker): Upgrade Go version from 1.24 to 1.25.7 and dependencies in go.mod and Dockerfile
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #36
- Add comprehensive copilot-instructions.md for agent onboarding by @Copilot in #39
- Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in #37
Full Changelog: 3.2.0...v3.2.1
3.2.0
What's Changed
embed templates chunkBase64
- chunkBase64 for base64 encoding
- add tests for chunkBase64 function
- enhance error logging in DebugSaveIntermediateFile
- upgrade Go version to 1.24
- update dependencies
- upgrade Dockerfile to use Go 1.24
Full Changelog: 3.1.4...3.2.0
3.1.4
What's Changed
- fixed issue with command help not generated when arg defaultValue is int by @fchastanet in #35
Full Changelog: 3.1.3...3.1.4
3.1.3
3.1.2
v3.1.1
v3.1.0
Full Changelog: v3.0.0...v3.1.0
Changes
- validate binaryModel, error on templateDirs
- ability to exclude files to be compiled from .bash-compiler using FILTER_REGEX_EXCLUDE
- update dependencies in go.mod
- updated pre-commit-config.yaml
- update GitHub Actions workflows and pre-commit configuration to use latest versions of actions and dependencies
v3.0.0 - bash-compiler without any parameter
Full Changelog: v2.0.0...v3.0.0
Fixes #8
mainly makes bash-compiler to be runnable as standalone binary
VERSION: 3.0.0
BREAKING CHANGES
- removed COMPILER_ROOT_DIR env variable
- .bash-compiler is mandatory at the root of the bash project
NEW FEATURES
- build/build-local.sh build and install the binary
- replaced option targetDir and KeepIntermediateFiles by IntermediateFilesDir
- added checks on IntermediateFilesDir for valid directory
- make CompilerRootDir only available when compiler run using go run
- enforce usage of the .bash-compiler that should be set at the root of the bash project. TEMPLATES_ROOT_DIR env variable is mandatory.
- optimization, template directory now loads only gtpl files
v2.0.0 refactoring
What's Changed
- Refactoring cleaning by @fchastanet in #26
- clean documentation and generate docsify page
- Refactoring cleaning
Full Changelog: v1.1.0...v2.0.0
v1.0.0
What's Changed
- Bash compiler by @fchastanet in #1
179cd7a more secure defer using SafeCloseDeferCallback
7fedd2d make --root-dir option mandatory
68d48c9 improved error management
d8b45dd moved main instruction to CompilerPipelineService
1f5dc8a added args unit tests
c901d51 compiler new option root directory and file suffix
6e19a30 added UTs
c8f23fb github pipeline use megalinter v8
a71a6c8 fix files path when creating tar archive
0f95d74 pre-commit upgrade bash-tools-framework 5.1.3
dbd1f19 use bmatcuk/doublestar to glob files recursively
f3f9dc4 removed authorizedValuesList
07c3b11 loadModel manage recursive extends on yaml files
0998161 require annotation fix replace :: for bash framework function with level > 1
a0e5f9b detect bash framework functions when more than one call on the same line
a7c6e68 renamed binary-*.yaml files to *-binary.yaml
36f301f added copyrightBeginYear to cue model
464612a reduced logs + each binary log context
ee8e184 Synopsis and arg help ability to set a function
9e8db73 bin file model added everyArgumentCallbacks
ff42108 annotation require variables need to be exported
d34493e helpValueName added <> around
cef9890 Arguments fixed gtpl variable scope hiding uppper variable
9c447c3 option help ability to set a Function
94b62ff ability to order callbacks using @ syntax
a160f06 option help splitted by line
2dc9558 removed duplicated spaces generated by the templates
73b0973 command option help display default value
198d86f avoid compiler to generate functions twice
2146783 fixed unknownOptionCallbacks and unknownArgumentCallbacks issue
6d8b585 fix embed files
60a80e2 compiler remove trailing spaces
ecf3f2f Sort functions makes compilation consistent
97902d7 added internal/compiler/annotationRequire_test.go
5f2a5d5 improved compiler tests
fd170aa simplified compiler package interface
c4e7e50 fix linter issues
a71278a compiler first tests
c983bed added internal/compiler/annotationEmbedGenerate_test.go
6319f9a added annotationEmbed_test.go
45e4ad6 all errors now extends error + clean coding + renaming
0c8fc59 apply linters fixes
a0320ba separated service initialization from service data context
ed8bb89 moved parse code from main.go to args.go
5f42ba4 created BinaryModelService
cc7713b renamed package internal/code to internal/utils/bash
894e76d moved logger, structures, and other global libs to utils package
6fefce3 refactoring
6bc0c00 first unit tests
8af2d48 sloglint
d882321 load env file .bash-compiler with variable interpolation
adfc8c9 ability to compile several files + pre-commit hooks
9261d7d ability to order definitionFiles
1f7126c multiple code generation passes
ddb6132 compiler 2 phases
f709b39 reduced complexity of generateFunctionCode
9982d22 renamed dynamicConfig to annotationsConfig with default values
c024f14 embed - ensure Linux::requireTarCommand is called
47f50c7 Added embed annotation
2d007cc annotationRequireProcessor refactoring
f76d8ee added logger.FancyHandleError
5b37470 compute bash-compiler root-dir to get right template dir
482ea2f first working command
94e6c65 Added support of @require directive
234f45d added RemoveFirstShebangLineIfAny
8f2e7c4 make command mainFile being loaded
de5e77a merged binFile struct into CompilerConfig struct + expandVars
a44ba43 fix readme commands
1b34125 encapsulate BinaryModel inside binary.CodeCompilerContext
7133708 created compiler package
918f8d0 remove BinaryModel dependency from compiler
3f6b17b added automatically generated plantuml schemas
6ed01f8 clean coding : moved binaryModel loading + added class diagrams
337f123 clean coding and documentation
685c079 moved cue model transformation into main
3d8585e clean coding : moved model merger into compiler
4866661 compiler added argument IntermediateFilesDir
7af6bc9 clean coding : template package renamed to render to avoid conflicts with text/template
9333bf7 transform yaml using cue
166a93a transform yaml using extends
5c3b54c use cue to validate an transform yaml file
e4d7452 compiler compiles included functions as template
7d0b20c shellcheckLint with help working
d6d75ab BinFile.CommandDefinitionFiles to compose options
7e95cd0 compile removed cleanSourceCode
a20a2e4 compile interpolates srcDirs env variables
f2eff08 compiler writes target file from binary model
8a13a8e add main function to binary file
de0d090 first time non functional binary file running without error
2a16225 ensure functions are generated in the same order
63dac69 ability to include binFile.headers.sh
fed370b Replace FUNCTIONS directive with the deduced functions
c9e0735 load recursively all the functions
4904780 retrieveAllFunctionsContent until no new function added
67ba131 compute list of functions to inject
1856047 added Compile method + changed BinaryModel to include srcDirs and templateDirs
2ae07fc Better aarchitectured program
153a73d moved yaml validation/generation to bash-tools-framework
2f0a029 Ability to include options from other yaml files
5bf8679 Rename variableType to type
0e18c6a Generate binFile with multiple commands
40030b4 render full command
15e852f data model argument parse
b808f16 created dataModel.parameter for arg and option
a157e0a moved dataModel templates to dataModel directory
d15cebb data Model transformation
2cfc03a added sprig, context as pointer, command template
7e17668 separated yaml data loading from tpl rendering
e29d887 add context to template rendering
bef112f renders templates using text/template
Full Changelog: https://github.com/fchastanet/bash-compiler/commits/v1.0.0