Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
*~
*.swp
*.swo
vendor/*/
vendor
_test/test
_test/echo_server
_test/tmp
_vendor*
gen
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ install:
- go get -u github.com/golang/dep/cmd/dep
- dep ensure

script: if [ -z "$FIX_TEST" ]; then make generate && make build && make; else make build_accept && make $FIX_TEST; fi
script: make generate; if [ -z "$FIX_TEST" ]; then make build; make; else make build_accept; make $FIX_TEST; fi
11 changes: 7 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
all: vet test

generate:
go run cmd/generate-fix/generate-fix.go spec/*.xml
mkdir -p gen; cd gen; go run ../cmd/generate-fix/generate-fix.go ../spec/*.xml

generate-dist:
cd ..; go run quickfix/cmd/generate-fix/generate-fix.go quickfix/spec/*.xml

fmt:
go fmt ./...
go fmt `go list ./... | grep -v quickfix/gen`

vet:
go vet `go list ./... | grep -v /vendor | grep -v fix4 | grep -v fix5 | grep -v fixt`
go vet `go list ./... | grep -v quickfix/gen`

lint:
go get github.com/golang/lint/golint
Expand All @@ -17,7 +20,7 @@ test:
go test -v -cover . ./datadictionary ./internal

_build_all:
go build -v `go list ./... | grep -v /vendor`
go build -v `go list ./...`

build_accept:
cd _test; go build -o echo_server
Expand Down
40 changes: 29 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,22 @@ See [examples](https://github.com/quickfixgo/examples) for some simple examples

### FIX Message Generation

QuickFIX/Go includes fields, enums, messages, and message components generated from the FIX 4.0 - FIX5.0SP2 specs. For most FIX applications, these generated resources are sufficient. Custom FIX applications may generate source specific to the FIX spec of that application using the `generate-fix` tool included with QuickFIX/Go.
QuickFIX/Go includes separate packages for tags, fields, enums, messages, and message components generated from the FIX 4.0 - FIX5.0SP2 specs. See:

* [github.com/quickfixgo/tag](https://github.com/quickfixgo/tag)
* [github.com/quickfixgo/field](https://github.com/quickfixgo/field)
* [github.com/quickfixgo/enum](https://github.com/quickfixgo/enum)
* [github.com/quickfixgo/fix40](https://github.com/quickfixgo/fix40)
* [github.com/quickfixgo/fix41](https://github.com/quickfixgo/fix41)
* [github.com/quickfixgo/fix42](https://github.com/quickfixgo/fix42)
* [github.com/quickfixgo/fix43](https://github.com/quickfixgo/fix43)
* [github.com/quickfixgo/fix44](https://github.com/quickfixgo/fix44)
* [github.com/quickfixgo/fix50](https://github.com/quickfixgo/fix50)
* [github.com/quickfixgo/fix50sp1](https://github.com/quickfixgo/fix50sp1)
* [github.com/quickfixgo/fix50sp2](https://github.com/quickfixgo/fix50sp2)
* [github.com/quickfixgo/fixt11](https://github.com/quickfixgo/fixt11)

For most FIX applications, these generated resources are sufficient. Custom FIX applications may generate source specific to the FIX spec of that application using the `generate-fix` tool included with QuickFIX/Go.

Following installation, `generate-fix` is installed to `$GOPATH/bin/generate-fix`. Run `$GOPATH/bin/generate-fix --help` for usage instructions.

Expand Down Expand Up @@ -71,6 +86,16 @@ $ make

If this exits with exit status 0, then everything is working!

### Generated Code

Generated code from the FIX40-FIX50SP2 specs are available as separate repos under the [QuickFIX/Go organization](https://github.com/quickfixgo). The source specifications for this generated code is located in `spec/`. Generated code can be identified by the `.generated.go` suffix. Any changes to generated code must be captured by changes to source in `cmd/generate-fix`. After making changes to the code generator source, run the following to re-generate the source

```sh
$ make generate-dist
```

If you are making changes to the generated code, please create Pull Requests for these changes for the affected repos.

### Acceptance Tests

QuickFIX/Go has a comprehensive acceptance test suite covering the FIX protocol. These are the same tests used across all QuickFIX implementations.
Expand All @@ -79,22 +104,15 @@ QuickFIX/Go acceptance tests depend on ruby in path.

To run acceptance tests,

# generate code locally
make generate

# build acceptance test rig
make build_accept

# run acceptance tests
make accept

### Generated Code

For convenience, generated code from the FIX40-FIX50SP2 specs are included in the QuickFIX/Go repo. The source specifications for this generated code is located in `spec/`. Generated code can be identified by the `.generated.go` suffix. Any changes to generated code must be captured by changes to source in `cmd/generate-fix`. After making changes to the code generator source, run the following to re-generate the source

```sh
$ make generate
```

If you are making changes to the generated code, you will need to include the generated source in the same Pull Request as the changes made to the code generator. You should do this in a separate commit from your code, as this makes PR review easier and Git history simpler to read in the future.

### Dependencies

If you are developing QuickFIX/Go, there are a few tasks you might need to perform related to dependencies.
Expand Down
4 changes: 2 additions & 2 deletions _test/echo_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
"os/signal"

"github.com/quickfixgo/quickfix"
"github.com/quickfixgo/quickfix/field"
"github.com/quickfixgo/quickfix/tag"
"github.com/quickfixgo/quickfix/gen/field"
"github.com/quickfixgo/quickfix/gen/tag"
)

var router *quickfix.MessageRouter = quickfix.NewMessageRouter()
Expand Down
2 changes: 0 additions & 2 deletions enum/enum.go

This file was deleted.

Loading