Compare commits

...

2 Commits

Author SHA1 Message Date
4f521b41db Release 0.7.0 () 2019-09-27 13:13:36 -07:00
3c6183241e Release 0.7.0-rc.1 () 2019-09-18 13:33:12 -07:00
20 changed files with 49 additions and 48 deletions

@ -52,7 +52,7 @@
# If you want information on how to edit this file checkout, # If you want information on how to edit this file checkout,
# http://makefiletutorial.com/ # http://makefiletutorial.com/
BASE_VERSION = 0.0.0-dev BASE_VERSION = 0.7.0
SHORT_SHA = $(shell git rev-parse --short=7 HEAD | tr -d [:punct:]) SHORT_SHA = $(shell git rev-parse --short=7 HEAD | tr -d [:punct:])
BRANCH_NAME = $(shell git rev-parse --abbrev-ref HEAD | tr -d [:punct:]) BRANCH_NAME = $(shell git rev-parse --abbrev-ref HEAD | tr -d [:punct:])
VERSION = $(BASE_VERSION)-$(SHORT_SHA) VERSION = $(BASE_VERSION)-$(SHORT_SHA)
@ -884,7 +884,7 @@ ci-reap-namespaces: build/toolchain/bin/reaper$(EXE_EXTENSION)
presubmit: GOLANG_TEST_COUNT = 5 presubmit: GOLANG_TEST_COUNT = 5
presubmit: clean update-deps third_party/ assets lint build install-toolchain test md-test terraform-test presubmit: clean update-deps third_party/ assets lint build install-toolchain test md-test terraform-test
build/release/: presubmit clean-install-yaml install/yaml/ build/release/: clean-install-yaml update-chart-deps install/yaml/
mkdir -p $(BUILD_DIR)/release/ mkdir -p $(BUILD_DIR)/release/
cp $(REPOSITORY_ROOT)/install/yaml/* $(BUILD_DIR)/release/ cp $(REPOSITORY_ROOT)/install/yaml/* $(BUILD_DIR)/release/

@ -163,7 +163,7 @@ artifacts:
- install/yaml/05-jaeger-chart.yaml - install/yaml/05-jaeger-chart.yaml
substitutions: substitutions:
_OM_VERSION: "0.0.0-dev" _OM_VERSION: "0.7.0"
_GCB_POST_SUBMIT: "0" _GCB_POST_SUBMIT: "0"
_GCB_LATEST_VERSION: "undefined" _GCB_LATEST_VERSION: "undefined"
logsBucket: 'gs://open-match-build-logs/' logsBucket: 'gs://open-match-build-logs/'

@ -22,25 +22,25 @@ import (
) )
// multifilterProfiles generates a multiple profiles, each containing a single Pool // multifilterProfiles generates a multiple profiles, each containing a single Pool
// that specifies multiple filters to pick a partitioned player population. Note // that specifies multiple filters to pick a partitioned player population. Note
// that across all the profiles returned, the entire population is covered and given // that across all the profiles returned, the entire population is covered and given
// the overlapping nature of filters, multiple profiles returned by this method may // the overlapping nature of filters, multiple profiles returned by this method may
// match to the same set of players. // match to the same set of players.
func multifilterProfiles(cfg config.View) []*pb.MatchProfile { func multifilterProfiles(cfg config.View) []*pb.MatchProfile {
regions := cfg.GetStringSlice("testConfig.regions") regions := cfg.GetStringSlice("testConfig.regions")
ratingFilters := makeRangeFilters(&rangeConfig{ ratingFilters := makeRangeFilters(&rangeConfig{
name: "Rating", name: "Rating",
min: cfg.GetInt("testConfig.minRating"), min: cfg.GetInt("testConfig.minRating"),
max: cfg.GetInt("testConfig.maxRating"), max: cfg.GetInt("testConfig.maxRating"),
rangeSize: cfg.GetInt("testConfig.multifilter.rangeSize"), rangeSize: cfg.GetInt("testConfig.multifilter.rangeSize"),
rangeOverlap: cfg.GetInt("testConfig.multifilter.rangeOverlap"), rangeOverlap: cfg.GetInt("testConfig.multifilter.rangeOverlap"),
}) })
latencyFilters := makeRangeFilters(&rangeConfig{ latencyFilters := makeRangeFilters(&rangeConfig{
name: "Latency", name: "Latency",
min: 0, min: 0,
max: 100, max: 100,
rangeSize: 70, rangeSize: 70,
rangeOverlap: 0, rangeOverlap: 0,
}) })

@ -29,18 +29,18 @@ func multipoolProfiles(cfg config.View) []*pb.MatchProfile {
characters := cfg.GetStringSlice("testConfig.characters") characters := cfg.GetStringSlice("testConfig.characters")
regions := cfg.GetStringSlice("testConfig.regions") regions := cfg.GetStringSlice("testConfig.regions")
ratingFilters := makeRangeFilters(&rangeConfig{ ratingFilters := makeRangeFilters(&rangeConfig{
name: "Rating", name: "Rating",
min: cfg.GetInt("testConfig.minRating"), min: cfg.GetInt("testConfig.minRating"),
max: cfg.GetInt("testConfig.maxRating"), max: cfg.GetInt("testConfig.maxRating"),
rangeSize: cfg.GetInt("testConfig.multipool.rangeSize"), rangeSize: cfg.GetInt("testConfig.multipool.rangeSize"),
rangeOverlap: cfg.GetInt("testConfig.multipool.rangeOverlap"), rangeOverlap: cfg.GetInt("testConfig.multipool.rangeOverlap"),
}) })
latencyFilters := makeRangeFilters(&rangeConfig{ latencyFilters := makeRangeFilters(&rangeConfig{
name: "Latency", name: "Latency",
min: 0, min: 0,
max: 100, max: 100,
rangeSize: 70, rangeSize: 70,
rangeOverlap: 0, rangeOverlap: 0,
}) })

@ -34,7 +34,7 @@ type rangeConfig struct {
rangeOverlap int rangeOverlap int
} }
// makeRosterSlots generates a roster with the specified name and with the // makeRosterSlots generates a roster with the specified name and with the
// specified number of empty roster slots. // specified number of empty roster slots.
func makeRosterSlots(name string, count int) *pb.Roster { func makeRosterSlots(name string, count int) *pb.Roster {
roster := &pb.Roster{ roster := &pb.Roster{
@ -48,13 +48,13 @@ func makeRosterSlots(name string, count int) *pb.Roster {
return roster return roster
} }
// makeRangeFilters generates multiple filters over a given range based on // makeRangeFilters generates multiple filters over a given range based on
// the size of the range and the overlap specified for the filters. // the size of the range and the overlap specified for the filters.
func makeRangeFilters(config *rangeConfig) []*rangeFilter { func makeRangeFilters(config *rangeConfig) []*rangeFilter {
var filters []*rangeFilter var filters []*rangeFilter
r := config.min r := config.min
for r <= config.max { for r <= config.max {
max := r+config.rangeSize max := r + config.rangeSize
if max > config.max { if max > config.max {
r = config.max r = config.max
} }
@ -64,9 +64,9 @@ func makeRangeFilters(config *rangeConfig) []*rangeFilter {
min: r, min: r,
max: max, max: max,
}) })
r = r + 1 + (config.rangeSize - config.rangeOverlap) r = r + 1 + (config.rangeSize - config.rangeOverlap)
} }
return filters return filters
} }

@ -36,12 +36,12 @@ var (
func Ticket(cfg config.View) *pb.Ticket { func Ticket(cfg config.View) *pb.Ticket {
characters := cfg.GetStringSlice("testConfig.characters") characters := cfg.GetStringSlice("testConfig.characters")
regions := cfg.GetStringSlice("testConfig.regions") regions := cfg.GetStringSlice("testConfig.regions")
min:= cfg.GetFloat64("testConfig.minRating") min := cfg.GetFloat64("testConfig.minRating")
max:= cfg.GetFloat64("testConfig.maxRating") max := cfg.GetFloat64("testConfig.maxRating")
latencyMap := latency(regions) latencyMap := latency(regions)
ticket := &pb.Ticket{ ticket := &pb.Ticket{
Properties: structs.Struct{ Properties: structs.Struct{
"mmr.rating": structs.Number(normalDist(40, min, max, 20)), "mmr.rating": structs.Number(normalDist(40, min, max, 20)),
// TODO: Use string attribute value for the character attribute. // TODO: Use string attribute value for the character attribute.
characters[rand.Intn(len(characters))]: structs.Number(float64(time.Now().Unix())), characters[rand.Intn(len(characters))]: structs.Number(float64(time.Now().Unix())),
}.S(), }.S(),
@ -53,7 +53,8 @@ func Ticket(cfg config.View) *pb.Ticket {
return ticket return ticket
} }
// latency generates a latency mapping of each region to a latency value. It picks
// latency generates a latency mapping of each region to a latency value. It picks
// one region with latency between 0ms to 100ms and sets latencies to all other regions // one region with latency between 0ms to 100ms and sets latencies to all other regions
// to a value between 100ms to 300ms. // to a value between 100ms to 300ms.
func latency(regions []string) map[string]float64 { func latency(regions []string) map[string]float64 {

@ -13,8 +13,8 @@
# limitations under the License. # limitations under the License.
apiVersion: v1 apiVersion: v1
appVersion: "0.0.0-dev" appVersion: "0.7.0"
version: 0.0.0-dev version: 0.7.0
name: open-match name: open-match
description: Flexible, extensible, and scalable video game matchmaking. description: Flexible, extensible, and scalable video game matchmaking.
keywords: keywords:

@ -26,7 +26,7 @@ evaluator:
image: image:
registry: gcr.io/open-match-public-images registry: gcr.io/open-match-public-images
tag: 0.0.0-dev tag: 0.7.0
pullPolicy: Always pullPolicy: Always
configs: configs:

@ -25,7 +25,7 @@ demo:
image: image:
registry: gcr.io/open-match-public-images registry: gcr.io/open-match-public-images
tag: 0.0.0-dev tag: 0.7.0
pullPolicy: Always pullPolicy: Always
# TODO: Split tls configs into a separate config file. For now Open Match assumes core components share the same secure mode # TODO: Split tls configs into a separate config file. For now Open Match assumes core components share the same secure mode

@ -26,7 +26,7 @@ scaleBackend:
image: image:
registry: gcr.io/open-match-public-images registry: gcr.io/open-match-public-images
tag: 0.0.0-dev tag: 0.7.0
pullPolicy: Always pullPolicy: Always
configs: configs:

@ -18,7 +18,7 @@
image: image:
registry: gcr.io/open-match-public-images registry: gcr.io/open-match-public-images
tag: 0.0.0-dev tag: 0.7.0
pullPolicy: Always pullPolicy: Always
# https://github.com/helm/charts/tree/master/stable/prometheus # https://github.com/helm/charts/tree/master/stable/prometheus

@ -36,5 +36,5 @@ kubernetes:
image: image:
registry: gcr.io/open-match-public-images registry: gcr.io/open-match-public-images
tag: 0.0.0-dev tag: 0.7.0
pullPolicy: Always pullPolicy: Always

@ -74,7 +74,7 @@ data:
httpport: "{{ .Values.evaluator.httpPort }}" httpport: "{{ .Values.evaluator.httpPort }}"
synchronizer: synchronizer:
enabled: false enabled: true
registrationIntervalMs: 3000ms registrationIntervalMs: 3000ms
proposalCollectionIntervalMs: 2000ms proposalCollectionIntervalMs: 2000ms

@ -91,7 +91,7 @@ function: &function
# Specifies a unified image registry, image tag, and imagePullPolicy for all components defined above. # Specifies a unified image registry, image tag, and imagePullPolicy for all components defined above.
image: image:
registry: gcr.io/open-match-public-images registry: gcr.io/open-match-public-images
tag: 0.0.0-dev tag: 0.7.0
pullPolicy: Always pullPolicy: Always
# Specifies the supported customizable indices per Match # Specifies the supported customizable indices per Match

@ -120,7 +120,7 @@ func TestExtractIndexFilters(t *testing.T) {
description: "range", description: "range",
pool: &pb.Pool{ pool: &pb.Pool{
FloatRangeFilters: []*pb.FloatRangeFilter{ FloatRangeFilters: []*pb.FloatRangeFilter{
&pb.FloatRangeFilter{ {
Attribute: "foo", Attribute: "foo",
Min: -1, Min: -1,
Max: 1, Max: 1,
@ -139,7 +139,7 @@ func TestExtractIndexFilters(t *testing.T) {
description: "bool false", description: "bool false",
pool: &pb.Pool{ pool: &pb.Pool{
BoolEqualsFilters: []*pb.BoolEqualsFilter{ BoolEqualsFilters: []*pb.BoolEqualsFilter{
&pb.BoolEqualsFilter{ {
Attribute: "foo", Attribute: "foo",
Value: false, Value: false,
}, },
@ -157,7 +157,7 @@ func TestExtractIndexFilters(t *testing.T) {
description: "bool true", description: "bool true",
pool: &pb.Pool{ pool: &pb.Pool{
BoolEqualsFilters: []*pb.BoolEqualsFilter{ BoolEqualsFilters: []*pb.BoolEqualsFilter{
&pb.BoolEqualsFilter{ {
Attribute: "foo", Attribute: "foo",
Value: true, Value: true,
}, },
@ -175,7 +175,7 @@ func TestExtractIndexFilters(t *testing.T) {
description: "string equals", description: "string equals",
pool: &pb.Pool{ pool: &pb.Pool{
StringEqualsFilters: []*pb.StringEqualsFilter{ StringEqualsFilters: []*pb.StringEqualsFilter{
&pb.StringEqualsFilter{ {
Attribute: "foo", Attribute: "foo",
Value: "bar", Value: "bar",
}, },

@ -1,10 +1,10 @@
{ {
"urls": [ "urls": [
{"name": "Frontend", "url": "https://open-match.dev/api/v0.0.0-dev/frontend.swagger.json"}, {"name": "Frontend", "url": "https://open-match.dev/api/v0.7.0/frontend.swagger.json"},
{"name": "Backend", "url": "https://open-match.dev/api/v0.0.0-dev/backend.swagger.json"}, {"name": "Backend", "url": "https://open-match.dev/api/v0.7.0/backend.swagger.json"},
{"name": "Mmlogic", "url": "https://open-match.dev/api/v0.0.0-dev/mmlogic.swagger.json"}, {"name": "Mmlogic", "url": "https://open-match.dev/api/v0.7.0/mmlogic.swagger.json"},
{"name": "MatchFunction", "url": "https://open-match.dev/api/v0.0.0-dev/matchfunction.swagger.json"}, {"name": "MatchFunction", "url": "https://open-match.dev/api/v0.7.0/matchfunction.swagger.json"},
{"name": "Synchronizer", "url": "https://open-match.dev/api/v0.0.0-dev/synchronizer.swagger.json"}, {"name": "Synchronizer", "url": "https://open-match.dev/api/v0.7.0/synchronizer.swagger.json"},
{"name": "Evaluator", "url": "https://open-match.dev/api/v0.0.0-dev/evaluator.swagger.json"} {"name": "Evaluator", "url": "https://open-match.dev/api/v0.7.0/evaluator.swagger.json"}
] ]
} }