diff --git a/.serena/memories/development_commands.md b/.serena/memories/development_commands.md new file mode 100644 index 0000000..5e53885 --- /dev/null +++ b/.serena/memories/development_commands.md @@ -0,0 +1,33 @@ +# Development Commands + +## Key Make Targets +- `make help` - Show all available targets with descriptions +- `make check` - Quick health check (tools and version consistency) +- `make test` - Run complete test suite +- `make lint` - Run all linters +- `make format` - Format all code (auto-fix where possible) +- `make ci` - Full CI pipeline (check, test, lint) +- `make clean` - Remove temporary files +- `make dev-setup` - Set up development environment + +## Testing +- `make test-unit` - Lua unit tests only +- `make test-integration` - Integration tests +- `make test-golden` - Golden master tests +- `make test-bin` - Standalone formatter tests +- Test runner: `./tests/run_tests.sh` + +## Linting +- Uses pre-commit hooks +- ShellCheck for shell scripts +- StyLua for Lua formatting +- markdownlint for Markdown +- yamllint for YAML files +- shfmt for shell script formatting + +## Version Management +- Three files must stay in sync: + - `lua/shellspec/init.lua` (M._VERSION) + - `plugin/shellspec.vim` (g:shellspec_version) + - `bin/shellspec-format` (version string) +- `make version-check` verifies consistency \ No newline at end of file diff --git a/.serena/memories/release_process.md b/.serena/memories/release_process.md new file mode 100644 index 0000000..a89978b --- /dev/null +++ b/.serena/memories/release_process.md @@ -0,0 +1,27 @@ +# Release Process + +## Command +Always use `make release` for releases, not manual version bumping. + +## Available Release Commands +- `make release` - Interactive release with menu (patch/minor/major) +- `make release-patch` - Bump patch version (X.Y.Z → X.Y.Z+1) +- `make release-minor` - Bump minor version (X.Y.Z → X.Y+1.0) +- `make release-major` - Bump major version (X.Y.Z → X+1.0.0) + +## What make release does: +1. Checks git status is clean +2. Verifies version consistency across files +3. Runs complete test suite +4. Runs all linters +5. Calculates and prompts for new version +6. Updates versions in all files: + - `lua/shellspec/init.lua` - M._VERSION + - `plugin/shellspec.vim` - g:shellspec_version + - `bin/shellspec-format` - version string +7. Creates git commit with version bump +8. Creates git tag (with v prefix, e.g., v2.0.3) +9. Provides next steps for pushing + +## Manual Process (DO NOT USE) +The old manual process was error-prone and didn't update all version files consistently. \ No newline at end of file diff --git a/bin/shellspec-format b/bin/shellspec-format index 70762d2..47da1a0 100755 --- a/bin/shellspec-format +++ b/bin/shellspec-format @@ -41,7 +41,7 @@ EOF } version() { - echo "shellspec-format 2.0.0" + echo "shellspec-format 2.0.1" echo "Part of nvim-shellspec plugin" } diff --git a/lua/shellspec/init.lua b/lua/shellspec/init.lua index b0ab8ad..6de473e 100644 --- a/lua/shellspec/init.lua +++ b/lua/shellspec/init.lua @@ -7,7 +7,7 @@ local format = require("shellspec.format") local autocmds = require("shellspec.autocmds") -- Version info -M._VERSION = "2.0.0" +M._VERSION = "2.0.1" -- Setup function for Lua configuration function M.setup(opts) diff --git a/plugin/shellspec.vim b/plugin/shellspec.vim index 5f03140..a27212f 100644 --- a/plugin/shellspec.vim +++ b/plugin/shellspec.vim @@ -9,7 +9,7 @@ endif let g:loaded_shellspec = 1 " Version information -let g:shellspec_version = '2.0.0' +let g:shellspec_version = '2.0.1' " Detect Neovim and use appropriate implementation if has('nvim-0.7')