Thank you for your interest in contributing to JW Scripts!
- Ensure you have Go 1.24 or later installed
- Clone the repository
- Run
go mod downloadto install dependencies - Build the project:
go build -o bin/ ./...
Run tests with:
go test -v ./...For race condition testing:
go test -v -race ./...This project uses automated code quality checks:
The project uses golangci-lint for code linting. Configuration is in .golangci.yml.
To run locally:
golangci-lint runCode should be formatted with gofmt and imports organized with goimports.
The project uses GitHub Actions for CI/CD:
- Runs on push to main/master and pull requests
- Tests against multiple Go versions (1.24, 1.25)
- Includes linting, security scanning, and race condition testing
- Builds binaries and tests basic functionality
- Triggered by pushing tags matching
v*pattern - Builds binaries for multiple platforms:
- Linux (amd64, arm64)
- Windows (amd64, arm64)
- macOS (amd64, arm64)
- Creates GitHub releases with binary assets
- Generates checksums for verification
To create a new release:
-
Tag your commit with a version:
git tag v1.0.0 git push origin v1.0.0
-
The release workflow will automatically:
- Build binaries for all platforms
- Create a GitHub release
- Upload binaries as release assets
- Generate checksums
-
You can also manually trigger a release from the GitHub Actions tab
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Ensure all CI checks pass
- Submit a pull request
The CI workflow will automatically run tests and checks on your pull request.