diff --git a/.github/actions/bootstrap/action.yaml b/.github/actions/bootstrap/action.yaml index cd3d1c6c7..112037f00 100644 --- a/.github/actions/bootstrap/action.yaml +++ b/.github/actions/bootstrap/action.yaml @@ -4,7 +4,7 @@ inputs: go-version: description: "Go version to install" required: true - default: "1.18.x" + default: "1.19.x" use-go-cache: description: "Restore go cache" required: true diff --git a/.github/scripts/go-mod-tidy-check.sh b/.github/scripts/go-mod-tidy-check.sh index 6ba8333e8..28f22fcdc 100755 --- a/.github/scripts/go-mod-tidy-check.sh +++ b/.github/scripts/go-mod-tidy-check.sh @@ -4,7 +4,7 @@ set -eu ORIGINAL_STATE_DIR=$(mktemp -d "TEMP-original-state-XXXXXXXXX") TIDY_STATE_DIR=$(mktemp -d "TEMP-tidy-state-XXXXXXXXX") -trap "cp ${ORIGINAL_STATE_DIR}/* ./ && rm -fR ${ORIGINAL_STATE_DIR} ${TIDY_STATE_DIR}" EXIT +trap "cp -p ${ORIGINAL_STATE_DIR}/* ./ && git update-index -q --refresh && rm -fR ${ORIGINAL_STATE_DIR} ${TIDY_STATE_DIR}" EXIT # capturing original state of files... cp go.mod go.sum "${ORIGINAL_STATE_DIR}" diff --git a/.github/scripts/json-schema-drift-check.sh b/.github/scripts/json-schema-drift-check.sh new file mode 100755 index 000000000..7b7f7dd2f --- /dev/null +++ b/.github/scripts/json-schema-drift-check.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -u + +if ! git diff-index --quiet HEAD --; then + git diff-index HEAD -- + git --no-pager diff + echo "there are uncommitted changes, please commit them before running this check" + exit 1 +fi + +success=true + +if ! make generate-json-schema; then + echo "Generating json schema failed" + success=false +fi + +if ! git diff-index --quiet HEAD --; then + git diff-index HEAD -- + git --no-pager diff + echo "JSON schema drift detected!" + success=false +fi + +if ! $success; then + exit 1 +fi diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6dcd5bc38..c87a8dae7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -9,7 +9,7 @@ on: - "v*" env: - GO_VERSION: "1.18.x" + GO_VERSION: "1.19.x" jobs: quality-gate: diff --git a/.github/workflows/update-bootstrap-tools.yml b/.github/workflows/update-bootstrap-tools.yml index b013b4a23..1b5c6bc3f 100644 --- a/.github/workflows/update-bootstrap-tools.yml +++ b/.github/workflows/update-bootstrap-tools.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: env: - GO_VERSION: "1.18.x" + GO_VERSION: "1.19.x" GO_STABLE_VERSION: true jobs: diff --git a/.github/workflows/update-stereoscope-release.yml b/.github/workflows/update-stereoscope-release.yml index 7adc7ac98..62fcbb279 100644 --- a/.github/workflows/update-stereoscope-release.yml +++ b/.github/workflows/update-stereoscope-release.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: env: - GO_VERSION: "1.18.x" + GO_VERSION: "1.19.x" GO_STABLE_VERSION: true jobs: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dc02ce2ab..fae74a587 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to Syft +[#](#) Contributing to Syft If you are looking to contribute to this project and want to open a GitHub pull request ("PR"), there are a few guidelines of what we are looking for in patches. Make sure you go through this document and ensure that your code proposal is aligned. @@ -10,7 +10,7 @@ Before you can contribute to Syft, you need to configure your development enviro You will need to install Go. The version on https://go.dev works best, using the system golang doesn't always work the way you might expect. -At the time of writing, Go 1.19 does not work correctly with Syft. Please use Go 1.18 for now. +Refer to the go.mod file in the root of this repo for the recommended version of Go to install. You will also need Docker. There's no reason the system packages shouldn't work, but we used the official Docker package. You can find instructions for installing Docker in Debian [here](https://docs.docker.com/engine/install/debian/). diff --git a/Makefile b/Makefile index ff28294db..aca320256 100644 --- a/Makefile +++ b/Makefile @@ -132,10 +132,7 @@ check-go-mod-tidy: check-json-schema-drift: $(call title,Ensure there is no drift between the JSON schema and the code) - @git diff-index --quiet HEAD -- || (echo "there are uncommitted changes, please commit them before running this check" && false) - @make generate-json-schema || (echo "$(RED)$(BOLD)JSON schema drift detected!$(RESET)" && false) - @git diff-index --quiet HEAD -- || (echo "$(RED)$(BOLD)JSON schema drift detected!$(RESET)" && false) - + @.github/scripts/json-schema-drift-check.sh ## Testing targets ################################# diff --git a/go.mod b/go.mod index fe161eb35..3c53cea74 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/anchore/syft -go 1.18 +go 1.19 require ( github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d