diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index fe0884d2..8425f26d 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -23,10 +23,10 @@ jobs: PDFIUM_EXPERIMENTAL_GO_VERSION: "1.21" runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ${{ matrix.go }} - name: Set up PDFium library (Linux) @@ -82,13 +82,13 @@ jobs: go test -timeout 30m ./internal/implementation_cgo ./internal/implementation_webassembly -coverprofile=coverage.out -covermode=atomic -tags pdfium_experimental -v - name: Archive code coverage results if: matrix.os == 'ubuntu-latest' && matrix.go == env.PDFIUM_EXPERIMENTAL_GO_VERSION && matrix.pdfium == env.PDFIUM_EXPERIMENTAL_VERSION - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: code-coverage-report path: ./coverage.out - name: Upload coverage to Codecov if: matrix.os == 'ubuntu-latest' && matrix.go == env.PDFIUM_EXPERIMENTAL_GO_VERSION && matrix.pdfium == env.PDFIUM_EXPERIMENTAL_VERSION - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v3 with: files: coverage.out test-webassembly: @@ -96,15 +96,15 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] - go: [ "1.18", "1.19", "1.20" ] + go: [ "1.19", "1.20", "1.21" ] env: - PDFIUM_EXPERIMENTAL_GO_VERSION: "1.20" + PDFIUM_EXPERIMENTAL_GO_VERSION: "1.21" runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ${{ matrix.go }} - name: Test all packages diff --git a/README.md b/README.md index ecb818ca..e263ced7 100644 --- a/README.md +++ b/README.md @@ -655,6 +655,26 @@ single-threaded or WebAssembly usage. It's not possible to encode the `io.Writer processes for that matter. +## Support Policy + +We offer an API stability promise with semantic versioning. In other words, we +promise to not break any exported function signature without incrementing the +major version. New features and behaviors happen with a minor version +increment, e.g. 1.0.11 to 1.1.0. We also fix bugs or change internal details +with a patch version, e.g. 1.0.0 to 1.0.1. Upgrades of the supported PDFium +version will cause a minor version update + +### Go + +This project will support the last 3 version of Go, this means that if the last +version of Go is 1.21, our `go.mod` will be set to Go 1.19, and our CI tests +will be run on Go 1.19, 1.20 and 1.21. It won't mean that the library won't +work with older versions of Go, but it will tell you what to expect of the +supported Go versions. If we change the supported Go versions, we will make +that a minor version upgrade. This policy allows you to not be forced to the +latest Go version for a pretty long time, but it still allows us to use new +language features in a pretty reasonable time-frame. + ## About Klippa Founded in 2015, [Klippa](https://www.klippa.com/en)'s goal is to digitize & automate administrative processes with