Skip to content

Commit

Permalink
add go version support policy (#260)
Browse files Browse the repository at this point in the history
* add go version support policy

* use oldstable alias for github workflows

* run on both go versions stable and oldstable

* no need to install make as we don't run it on windows

* fix workflow

* update project status

* unify headers

* update TOC

* tiny updates into TOC
  • Loading branch information
alovak authored Aug 2, 2023
1 parent 8252a73 commit 8eef1e2
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 12 deletions.
7 changes: 2 additions & 5 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,17 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
version: [stable, oldstable]
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: stable
go-version: ${{ matrix.version }}
id: go

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Install make (Windows)
if: runner.os == 'Windows'
run: choco install -y make mingw

- name: Check
if: runner.os == 'Linux'
run: make check
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: stable
go-version: oldstable
id: go

- name: Check out code into the Go module directory
Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: stable
go-version: oldstable
id: go

- name: Check out code into the Go module directory
Expand Down Expand Up @@ -132,7 +132,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: stable
go-version: oldstable
id: go

- name: Check out code into the Go module directory
Expand Down
32 changes: 28 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,13 @@ ISO8583 implements an ISO 8583 message reader and writer in Go. ISO 8583 is an i

- [Project status](#project-status)
- [Go module](#go-library)
- [Go version support policy](#go-version-support-policy)
- [How to](#how-to)
- [Define specification](#define-your-specification)
- [Build message](#build-and-pack-the-message)
- [Parse message](#parse-the-message-and-access-the-data)
- [Inspect message fields](#inspect-message-fields)
- [JSON encoding](#json-encoding)
- [Network header](#network-header)
- [Encode/Decode from/to JSON](#json-encoding)
- [ISO8583 CLI](#cli)
- [Learn about ISO 8583](#learn-about-iso-8583)
- [Getting help](#getting-help)
Expand All @@ -44,18 +45,41 @@ ISO8583 implements an ISO 8583 message reader and writer in Go. ISO 8583 is an i

## Project status

Moov ISO8583 currently offers a Go package with plans for an API in the near future. Please star the project if you are interested in its progress. The project supports generating and parsing ISO8583 messages. Feedback on this early version of the project is appreciated and vital to its success. Please let us know if you encounter any bugs/unclear documentation or have feature suggestions by opening up an issue. Thanks!
Moov ISO8583 is a Go package that's been **thoroughly tested and trusted in the real world**. The project has proven its reliability and robustness in real-world, high-stakes scenarios. Please let us know if you encounter any missing feature/bugs/unclear documentation by opening up [an issue](https://github.com/moov-io/iso8583/issues/new). Thanks!

## Go library

This project uses [Go Modules](https://go.dev/blog/using-go-modules) and Go v1.18 or newer. See [Golang's install instructions](https://golang.org/doc/install) for help in setting up Go. You can download the source code and we offer [tagged and released versions](https://github.com/moov-io/iso8583/releases/latest) as well. We highly recommend you use a tagged release for production.
This project uses [Go Modules](https://go.dev/blog/using-go-modules). See [Golang's install instructions](https://golang.org/doc/install) for help in setting up Go. You can download the source code and we offer [tagged and released versions](https://github.com/moov-io/iso8583/releases/latest) as well. We highly recommend you use a tagged release for production.

## Go version support policy

### Always up-to-date, never left behind

While we strive to embrace the latest language enhancements, we also appreciate the need for a certain degree of backward compatibility. We understand that not everyone can update to the latest version immediately. Our philosophy is to move forward and embrace the new, but without leaving anyone immediately behind.

#### Which versions do we support now?

As of today, we are supporting:

1. Go 1.20 (current version)
2. Go 1.19 (previous version)

#### What does this mean for you?

Whenever a new version of Go is released, we will update our systems and ensure that our project remains fully compatible with it. At the same time, we will continue to support the previous version. However, once a new version is released, the 'previous previous' version will no longer be officially supported.

#### Continuous integration

To ensure our promise of support for these versions, we've configured our GitHub CI actions to test our code with both the current and previous versions of Go. This means you can feel confident that the project will work as expected if you're using either of these versions.

### Installation

```
go get github.com/moov-io/iso8583
```

## How to

### Define your specification

Currently, we have defined the following ISO 8583 specifications:
Expand Down

0 comments on commit 8eef1e2

Please sign in to comment.