Skip to content

Latest commit

 

History

History
60 lines (50 loc) · 3.69 KB

File metadata and controls

60 lines (50 loc) · 3.69 KB

Contributing

Thanks for your interest. Contributions are welcome!

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Check the Issues to see if your topic has been discussed before or if it is being worked on. You may also want to check the roadmap (see above). Discussing in an Issue before opening a Pull Request means future contributors only have to search in one place.

This project includes a Git submodule. Passing --recurse-submodules when git cloneing is recommended.

This project loosely follows the Angular commit message guidelines. This helps with searchability and with the changelog, which is generated automatically and touched up by hand only if necessary. Use the commit message format <type>(<scope>): <subject>, where <type> is feat for new or changed behavior, fix for fixes, docs for documentation, style for under the hood changes related to for example zshisms, refactor for other refactors, test for tests, or chore chore for general maintenance (this will be used primarily by maintainers not contributors, for example for version bumps), etc. <scope> is more loosely defined. Look at the commit history for ideas.

The test suite uses zsh-test-runner. Run with test suite with

. ./tests/abbr.ztr

Maintainers

To cut a new release:

  1. Put everything you want to release in main.
  2. Check out the main branch.
  3. Update all instances of the version number in zsh-abbr.zsh.
  4. Update all instances of the release date in zsh-abbr.zsh.
  5. Update all instances of the version number in man/man1/abbr.1.
  6. Update all instances of the release date in man/man1/abbr.1.
  7. Update all instances of the version number in completions/_abbr.
  8. Run bin/changelog.
  9. Update the first line of CHANGELOG.md: add the new version number twice:
    # [<HERE>](…vPrevious...v<AND HERE>) (…)
    
  10. Commit CHANGELOG.md, zsh-abbr.zsh, man/man1/abbr.1, and completions/_abbr.
    git commit -i CHANGELOG.md completions/_abbr man/man1/abbr.1 zsh-abbr.zsh -m "feat(release): bump to v%ABBR_CURSOR%, update changelog"
  11. Create a signed tag with the version number, prefixed with v.
    git tag -s v%ABBR_CURSOR% -m v%ABBR_CURSOR%
  12. If possible to fast-forward next to main, do so. If it isn't, rebase/merge/etc as needed to have next fork off the tip of main.
  13. Fast-forward the major-version branch (e.g. branch v5) to main.
  14. Push main, the tag, next, the major version branch, and any branches rewritten in the process of bringing next up to main.
  15. Create an archive at the tag:
    git archive --prefix=%ABBR_CURSOR%/ -o %ABBR_CURSOR%.tar.gz %ABBR_CURSOR% # replace cursor with `v`-prefixed tag name
  16. Get the archive's SHA. On macOS as of this writing you can
    openssl sha256 %ABBR_CURSOR%.tar.gz
  17. In GitHub, publish a new release at https://github.com/olets/zsh-abbr/releases/new
  18. Copy the previous release's release notes.
  19. Update the CHANGELOG link URL.
  20. Update the version.
  21. Update the archive SHA.
  22. Attach the tar.gz archive.
  23. A GitHub Actions workflow will automatically update the Homebrew formula.