Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Artex master #7

Open
wants to merge 95 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
7fadeb5
Bump golang.org/x/crypto from 0.15.0 to 0.17.0
dependabot[bot] Dec 18, 2023
3594015
TRD-1749: Escape send queued when blocked on connection side (#18)
AlexandrosKyriakakis Jan 31, 2024
d7f2968
Escape send queued when blocked on connection side
AlexandrosKyriakakis Jan 30, 2024
5dcde41
merge
AlexandrosKyriakakis Feb 1, 2024
6eaa8ce
Bug: For Logon/Logout/Resend/SequenceReset messages we should wait un…
AlexandrosKyriakakis Feb 1, 2024
de36465
add test for multiple repeating groups in a message
Apr 10, 2024
aa39aa8
Update linter
ackleymi Apr 16, 2024
a203213
Statify updated linter rules
ackleymi Apr 18, 2024
9886e68
Merge pull request #626 from ackleymi/main
ackleymi Apr 18, 2024
e155413
Merge pull request #623 from albertsundjaja/group-stack-advanced-inco…
ackleymi Apr 22, 2024
51e2cde
Merge pull request #615 from alpacahq/escape-send-queued-when-blocked
ackleymi Apr 22, 2024
96baad8
feat: change proxyproto pkg to support proxy proto v2
haoyang1994 Apr 22, 2024
1518a20
fix: try to fix linter failed
haoyang1994 Apr 22, 2024
b7e2597
Merge pull request #627 from haoyang1994/feat/proxy_v2
ackleymi Apr 22, 2024
ab04145
Merge branch 'main' into dependabot/go_modules/golang.org/x/crypto-0.…
ackleymi Apr 23, 2024
21eab6b
Merge pull request #628 from alpacahq/develop
ackleymi Apr 23, 2024
8304be5
Merge pull request #606 from quickfixgo/dependabot/go_modules/golang.…
ackleymi Apr 23, 2024
ad9438a
Update deps
ackleymi Apr 23, 2024
2f15490
v0.9.2 release notes
ackleymi Apr 23, 2024
2c25e08
Merge pull request #630 from ackleymi/v092-release
ackleymi Apr 23, 2024
e2a2f27
feat: AllowUnknownMessageFields & CheckUserDefinedFields
haoyang1994 Apr 25, 2024
74fd67b
change options to keep same with quickfixj
haoyang1994 Apr 25, 2024
b9e203b
Corrects ResetOnLogon for initiators
ackleymi Apr 25, 2024
c3c49cb
Merge pull request #632 from haoyang1994/tag_check_options
ackleymi Apr 26, 2024
0256864
Merge branch 'main' into initiator-logon-reset
ackleymi Apr 26, 2024
c187bdb
Merge pull request #635 from ackleymi/initiator-logon-reset
ackleymi Apr 30, 2024
d591447
Failing unit test for message with repeating group
ackleymi May 1, 2024
6659865
Unregistering sessions on initiator close
SNORRIS721 May 3, 2024
cf3fb98
Unregistering sessions on acceptor stop
SNORRIS721 May 3, 2024
1205f67
Merge pull request #637 from SNORRIS721/duplicatesession
ackleymi May 7, 2024
668e1f4
Changing filestore.offsets from map[int]msgDef to sync.Map
SNORRIS721 May 8, 2024
ff456d7
fixing msgdef type error
SNORRIS721 May 8, 2024
60846b9
adding error handling to type cast
SNORRIS721 May 8, 2024
807c9fe
Merge pull request #639 from SNORRIS721/mapcrash
ackleymi May 9, 2024
fbe0cd7
v0.9.3 release notes
ackleymi May 9, 2024
6889cf1
Adds proper parsing for repeating groups to keep group field order
ackleymi May 16, 2024
3517c8b
Linter fixes
ackleymi May 16, 2024
525b62c
Adds log to readLoop
ackleymi May 17, 2024
035d82e
Adds nullLog
ackleymi May 17, 2024
2da4180
Merge pull request #636 from ackleymi/repeating-grps
ackleymi May 30, 2024
7a5765f
Merge pull request #642 from ackleymi/add-log
ackleymi May 30, 2024
7e71cbc
v0.9.4 release notes
ackleymi May 30, 2024
c855c33
Do not increment targetMsgSeqNum for out of sequence logout and test …
momin-javed Jun 14, 2024
a60af80
Revert redundant TestRequest change
momin-javed Jun 25, 2024
358abef
Merge pull request #645 from momin-javed/increment-target-seq
ackleymi Jun 25, 2024
91700d1
Port config documentation into proper go doc format.
ackleymi Jul 2, 2024
a420261
Merge branch 'main' into cfg-fixes
ackleymi Jul 2, 2024
f6ff247
Merge pull request #649 from ackleymi/cfg-fixes
ackleymi Jul 2, 2024
1c2db3a
Adds resendreqchunksize and lastseqnumprocessed test suites, refactor…
ackleymi Jul 3, 2024
ab7cd32
Merge pull request #27 from ackleymi/add-missing-test-defs
ackleymi Jul 3, 2024
e3a2994
Merge pull request #650 from ackleymi/main
ackleymi Jul 3, 2024
3c66554
Use bytes.Count to count the number of message fields
sylr Jul 17, 2024
f725b98
Optimize tag value parsing
sylr Jul 17, 2024
af66cc8
Only lock fieldmap once during message parsing
sylr Jul 17, 2024
3939268
Fix stuck call to Dial when calling Stop on the initiator
abronan Jul 18, 2024
ad74d03
Introduce message iterator to avoid loading all messages into memory …
michaelwilner Jul 31, 2024
1289a47
Use the Go generated file convention.
smulube Aug 6, 2024
d3b4f98
Support TLS configuration as raw bytes
smulube Jun 17, 2024
7fe4ce2
Merge pull request #659 from michaelwilner/iterate-messages
ackleymi Aug 7, 2024
c07597e
Merge pull request #660 from appital/generated-code-comment
ackleymi Aug 7, 2024
e92fa68
Merge pull request #654 from abronan/mitigate-stuck-dial-on-initiator…
ackleymi Aug 9, 2024
f69f9f9
Merge pull request #655 from sylr/parse2
ackleymi Aug 9, 2024
f8a53b0
Merge pull request #657 from sylr/no-indexbyte
ackleymi Aug 9, 2024
6e564c1
Merge pull request #658 from sylr/parse-no-lock
ackleymi Aug 9, 2024
9191a58
Merge pull request #647 from appital/tls-bytes
ackleymi Aug 9, 2024
2e60bad
v0.9.5 release notes
ackleymi Aug 14, 2024
8a53aa9
Merge pull request #663 from quickfixgo/ackleymi-patch-1
ackleymi Aug 14, 2024
26dc502
allow the clients of acceptor to specify their own tls.Config
ekovacs Aug 29, 2024
aa31991
lint fix
ekovacs Aug 29, 2024
6e397ee
cleanup
ekovacs Aug 29, 2024
f4d6fe9
adjust comments
ekovacs Aug 29, 2024
aa15928
Adds nextexpectedseqnum test defs and refactors test server to suppor…
ackleymi Aug 30, 2024
fdcb6a1
Satisfies linter
ackleymi Aug 30, 2024
5ec1219
Merge pull request #667 from ekovacs/feature/allow-custom-tls-config-…
ackleymi Sep 4, 2024
0f3ec7b
Merge pull request #668 from ackleymi/add-missing-test-defs
ackleymi Sep 5, 2024
87eef54
Reinit stop sync to prevent deadlock on sequential start/stops
ackleymi Sep 5, 2024
fa2e438
Merge pull request #669 from ackleymi/prevent-deadlock
ackleymi Sep 6, 2024
7194eee
Check logon auth before resetting store
ackleymi Sep 6, 2024
2e7e077
Modify msg verify checks
ackleymi Sep 9, 2024
dc7a7bf
Resolve failing unit test
ackleymi Sep 10, 2024
fad0176
Linter
ackleymi Sep 10, 2024
f1f8c0e
Linter fix
ackleymi Sep 10, 2024
bb3e854
Adds unit test
ackleymi Sep 10, 2024
2903198
Merge pull request #670 from ackleymi/prevent-store-reset-unauth
ackleymi Sep 10, 2024
393a748
Reverts toadmin call sequencing
ackleymi Sep 20, 2024
b7fa96b
Merge pull request #674 from ackleymi/toadmin-fix
ackleymi Sep 20, 2024
b7d706f
Adds v0.9.6 release notes
ackleymi Sep 20, 2024
9c5d08c
Adds new log impls and renames files for consistency
ackleymi Sep 12, 2024
f01e28e
Adds more tests
ackleymi Sep 12, 2024
b781a85
Adds composite log
ackleymi Sep 24, 2024
c2cd79a
Merge pull request #672 from ackleymi/new-log-impls
ackleymi Sep 25, 2024
90867a2
Adds convenience getters for session log and store
ackleymi Sep 25, 2024
c7392e8
Merge pull request #675 from ackleymi/interface-getters
ackleymi Sep 25, 2024
698d100
Merge remote-tracking branch 'origin/main' into artex-master
sylr Nov 5, 2024
1a64a6c
Fix mongodb store tests in CI
sylr Nov 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
229 changes: 216 additions & 13 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,16 @@ jobs:
pull-requests: read # for golangci/golangci-lint-action to fetch pull requests
name: Linter
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
steps:
- name: Check out source
uses: actions/checkout@v4
- name: Setup
uses: actions/setup-go@v5
with:
go-version: '1.22'
go-version: ${{ matrix.go }}
cache: false
- uses: actions/cache@v4
with:
Expand All @@ -46,17 +49,120 @@ jobs:
skip-cache: true

build:
name: build
name: Build Source
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Build
run: make build-src

unittest:
name: Unit Tests
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Start MongoDB
uses: supercharge/[email protected]
with:
mongodb-replica-set: replicaset
- name: Unit test
env:
MONGODB_TEST_CXN: mongodb://localhost:27017
run: make test-ci

servermem:
name: Server MemoryStore Suite
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
fix-version:
- fix40
- fix41
- fix42
- fix43
- fix44
- fix50
- fix50sp1
- fix50sp2
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Install ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Acceptance test
env:
GO111MODULE: on
FIX_TEST: ${{ matrix.fix-version }}
STORE_TYPE: memory
ACCEPTANCE_SET: server
run: make generate-ci && make build && make $FIX_TEST

serverfile:
name: Server FileStore Suite
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
fix-version:
- fix40
- fix41
- fix42
- fix43
- fix44
- fix50
- fix50sp1
- fix50sp2
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Install ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Acceptance test
env:
GO111MODULE: on
FIX_TEST: ${{ matrix.fix-version }}
STORE_TYPE: file
ACCEPTANCE_SET: server
run: make generate-ci && make build && make $FIX_TEST

servermongo:
name: Server MongoStore Suite
runs-on: ubuntu-latest
strategy:
matrix:
go: ['1.22']
store-type:
-
- memory
- file
go: [1.21]
fix-version:
-
- fix40
- fix41
- fix42
- fix43
- fix44
Expand Down Expand Up @@ -85,14 +191,111 @@ jobs:
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Unit test
- name: Start MongoDB
uses: supercharge/[email protected]
with:
mongodb-replica-set: replicaset
- name: Acceptance test
env:
GO111MODULE: on
MONGODB_TEST_CXN: mongodb://localhost:27017
FIX_TEST: ${{ matrix.fix-version }}
STORE_TYPE: mongo
ACCEPTANCE_SET: server
run: make generate-ci && make build && make $FIX_TEST

resendreqchunksize:
name: ResendRequestChunkSize Suite
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
fix-version:
- fix40
- fix41
- fix42
- fix43
- fix44
- fix50
- fix50sp1
- fix50sp2
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Install ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Acceptance test
env:
GO111MODULE: on
FIX_TEST: ${{ matrix.fix-version }}
STORE_TYPE: memory
ACCEPTANCE_SET: resendreqchunksize
run: make generate-ci && make build && make $FIX_TEST

lastseqnumprocessed:
name: LastSeqNumProcessed Suite
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
fix-version:
- fix42
- fix43
- fix44
- fix50
- fix50sp1
- fix50sp2
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Install ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Acceptance test
env:
GO111MODULE: on
FIX_TEST: ${{ matrix.fix-version }}
STORE_TYPE: ${{ matrix.store-type }}
run: if [ -z $FIX_TEST ] && [ -z $STORE_TYPE ]; then make build-src && make test-ci; fi
STORE_TYPE: memory
ACCEPTANCE_SET: lastseqnumprocessed
run: make generate-ci && make build && make $FIX_TEST

nextexpectedseqnum:
name: NextExpectedSeqNum Suite
runs-on: ubuntu-latest
strategy:
matrix:
go: [1.21]
fix-version:
- fix44
- fix50
- fix50sp1
- fix50sp2
steps:
- name: Setup
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Check out source
uses: actions/checkout@v2
- name: Install ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Acceptance test
env:
GO111MODULE: on
FIX_TEST: ${{ matrix.fix-version }}
STORE_TYPE: ${{ matrix.store-type }}
run: if [ $FIX_TEST ] && [ $STORE_TYPE ]; then make generate-ci && make build && make $FIX_TEST; fi
STORE_TYPE: memory
ACCEPTANCE_SET: nextexpectedseqnum
run: make generate-ci && make build && make $FIX_TEST
8 changes: 7 additions & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
run:
timeout: 10m
skip-dirs:
# deprecated config -
# skip-dirs:
# - gen
# - vendor

issues:
exclude-dirs:
- gen
- vendor

Expand Down
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,56 @@
## 0.9.6 (September 20, 2024)

### ENHANCEMENTS
* Allow the clients of acceptor to specify their own tls.Config https://github.com/quickfixgo/quickfix/pull/667
* Adds NextExpectedSeqNum setting https://github.com/quickfixgo/quickfix/pull/668

### BUG FIXES
* Reinit stop sync to prevent deadlock on sequential start/stops https://github.com/quickfixgo/quickfix/pull/669
* Check logon auth before resetting store https://github.com/quickfixgo/quickfix/pull/670
* Reverts ToAdmin call sequencing https://github.com/quickfixgo/quickfix/pull/674

## 0.9.5 (August 14, 2024)

### ENHANCEMENTS
* Introduce message iterator to avoid loading all messages into memory at once upon resend request https://github.com/quickfixgo/quickfix/pull/659
* Only lock fieldmap once during message parsing https://github.com/quickfixgo/quickfix/pull/658
* Optimize tag value parsing https://github.com/quickfixgo/quickfix/pull/657
* Use bytes.Count to count the number of message fields https://github.com/quickfixgo/quickfix/pull/655
* Port config documentation into proper go doc format https://github.com/quickfixgo/quickfix/pull/649
* Support TLS configuration as raw bytes https://github.com/quickfixgo/quickfix/pull/647

### BUG FIXES
* Use the Go generated file convention https://github.com/quickfixgo/quickfix/pull/660
* Fix stuck call to Dial when calling Stop on the Initiator https://github.com/quickfixgo/quickfix/pull/654
* Do not increment NextTargetMsgSeqNum for out of sequence Logout and Test Requests https://github.com/quickfixgo/quickfix/pull/645

## 0.9.4 (May 29, 2024)

### ENHANCEMENTS
* Adds log to readLoop just like writeLoop https://github.com/quickfixgo/quickfix/pull/642

### BUG FIXES
* Maintain repeating group field order when parsing messages https://github.com/quickfixgo/quickfix/pull/636

## 0.9.3 (May 9, 2024)

### BUG FIXES
* Change filestore.offsets from map[int]msgDef to sync.Map https://github.com/quickfixgo/quickfix/pull/639
* Unregister sessions on stop https://github.com/quickfixgo/quickfix/pull/637
* Corrects ResetOnLogon behavior for initiators https://github.com/quickfixgo/quickfix/pull/635

### FEATURES
* Add AllowUnknownMessageFields & CheckUserDefinedFields settings as included in QuickFIX/J https://github.com/quickfixgo/quickfix/pull/632

## 0.9.2 (April 23, 2024)

### BUG FIXES
* Prevent message queue blocking in the case of network connection trouble https://github.com/quickfixgo/quickfix/pull/615 https://github.com/quickfixgo/quickfix/pull/628
* Corrects validation of multiple repeating groups with different fields https://github.com/quickfixgo/quickfix/pull/623

## 0.9.1 (April 15, 2024)

### BUG FIXES
* Preserve original body when resending https://github.com/quickfixgo/quickfix/pull/624

## 0.9.0 (November 13, 2023)
Expand Down
36 changes: 26 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,49 @@ test:
linters-install:
@golangci-lint --version >/dev/null 2>&1 || { \
echo "installing linting tools..."; \
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v1.50.1; \
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v1.57.2; \
}

lint: linters-install
golangci-lint run

# An easy way to run the linter without going through the install process -
# docker run -t --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.57.2 golangci-lint run -v
# See https://golangci-lint.run/welcome/install/ for more details.

# ---------------------------------------------------------------
# Targets related to running acceptance tests -

ifdef STORE_TYPE
STORE := $(STORE_TYPE)
else
STORE := memory
endif

ifdef ACCEPTANCE_SET
TEST_SET := $(ACCEPTANCE_SET)
else
TEST_SET := server
endif

build-test-srv:
cd _test; go build -o echo_server ./test-server/
cd _test; go build -v -o echo_server ./test-server/
fix40:
cd _test; ./runat.sh $@.cfg 5001 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5001 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix41:
cd _test; ./runat.sh $@.cfg 5002 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5002 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix42:
cd _test; ./runat.sh $@.cfg 5003 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5003 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix43:
cd _test; ./runat.sh $@.cfg 5004 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5004 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix44:
cd _test; ./runat.sh $@.cfg 5005 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5005 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix50:
cd _test; ./runat.sh $@.cfg 5006 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5006 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix50sp1:
cd _test; ./runat.sh $@.cfg 5007 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5007 $(STORE) "definitions/$(TEST_SET)/$@/*.def"
fix50sp2:
cd _test; ./runat.sh $@.cfg 5008 $(STORE_TYPE) "definitions/server/$@/*.def"
cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5008 $(STORE) "definitions/$(TEST_SET)/$@/*.def"

ACCEPT_SUITE=fix40 fix41 fix42 fix43 fix44 fix50 fix50sp1 fix50sp2
accept: $(ACCEPT_SUITE)
Expand Down
Loading
Loading