First off, thank you for taking the time to contribute!
This project is only as good as the community behind it, and we appreciate your help.
- Code of Conduct
- Ways to Contribute
- Getting Started Locally
- Branching & Commit Guidelines
- Style Guide
- Testing & Self-Checks
- Pull-Request Checklist
- Releases & Versioning
- License & Copyright
This project adheres to the Contributor Covenant.
By participating, you are expected to uphold the standards described in
CODE_OF_CONDUCT.md. Please read it before starting.
| How | Where to Start | Notes |
|---|---|---|
| Bug report | Issues → Bug Report template |
Add repro steps / logs. |
| Feature request / idea | Issues → Feature Request template |
Explain why and potential alternatives. |
| Code / docs improvements | Pull Request | See guidelines below. |
| Templates or workflows | Pull Request | Keep each addition in its own template.<name> folder. |
git clone https://github.com/<YOUR_FORK>/scripts-for-integration.git
cd scripts-for-integration
# Install Git hooks & scaffold helper folders
bash _run/firststart.sh
# Optional: download the latest template into a project
./lazylosad.shPrerequisites
- Bash 4.4+ (Unix/macOS or WSL)
git2.20+curl,jq&zip(forlazylosad.sh)- shellcheck for local linting (recommended)
- Base branch:
main - Feature branches:
feat/<topic> - Fix branches:
fix/<issue-number> - Documentation:
docs/<area>
A local commit hook automatically prefixes each commit message with
<current-branch> [<semver>].
Please keep the rest of the message concise and imperative, e.g.
feat/git-hooks Add pre-commit shellcheck runner
| Area | Tool / Convention | Rule-of-thumb |
|---|---|---|
| Bash | POSIX where possible, shellcheck warnings = 0 |
|
| YAML (CI) | 2-space indent, wrap at 120 chars | |
| Markdown | Hard-wrap at 100 chars, use fenced code blocks | |
| Filenames | Lower-case, kebab-case (my-script.sh) |
|
| Templates | Place each tech-specific layer inside template.<stack> |
Before pushing:
-
Static analysis
shellcheck $(git ls-files '*.sh') -
Run hooks (they execute automatically on commit/push, but you can trigger manually)
bash _run/commit-hook.sh .git/COMMIT_EDITMSG # commit message prefix bash _run/push-hook.sh # version bump
-
Dry-run release workflow if you changed
.github/workflows/*.yml.
- One logical change per PR (avoid mixed concerns)
- Rebased on latest
main(git pull --rebase upstream main) - Passes
shellcheckand any added tests - CI runs green (GitHub Actions will run automatically)
- Updated
README.MDor in-code docs if behavior changed - Linked to Issue (closes # <ID>) when applicable
- No generated or binary files committed (except under
/targetin release PRs)
This project follows Semantic Versioning.
Pushing an annotated tag like v1.2.3 triggers the release workflow, which:
- Builds artifacts (if any)
- Publishes a GitHub Release with sources attached
The patch part of the version (x.y.*) is auto-incremented by the push hook.
For minor/major bumps, update _run/values/ver.txt before tagging.
Code contributions are accepted under the terms of the project license
(see LICENSE, GNU LGPL v2.1). By submitting a pull request you agree that your code may be distributed under the same license.
Happy hacking, and thank you for helping make Scripts-for-Integration better!