agones icon indicating copy to clipboard operation
agones copied to clipboard

Implement CountsAndLists for Unity SDK + Tests

Open ZeroParticle opened this issue 1 year ago • 2 comments

What type of PR is this?

Uncomment only one /kind <> line, press enter to put that in a new line, and remove leading whitespace from that line:

/kind breaking /kind bug /kind cleanup /kind documentation /kind feature /kind hotfix /kind release

What this PR does / Why we need it: This PR implements the Counts and Lists features for the Unity SDK. Additionally it adds a test project that includes unit tests using the Unity Test Framework.

Which issue(s) this PR fixes:

Closes #3647

Special notes for your reviewer:

I've created a unity project that implements the tests with UTF and can be run manually. I wasn't certain where to put that project, so let me know if there's a better place for it.

I've made a change to the way the WatchGameServer function works with this PR as well. Previously the watch function would not try to reopen the http connection if it was lost for some reason. It also opened a new http connection for each WatchGameServer call. I have changed the behavior so that it will attempt to reopen the connection if it closes, and I have added a callback list that is used to track callbacks for WatchGameServer so that we don't have to open lots of http connections. I felt this was a fairly minor change and could be included with the other changes, but let me know if I should split that into a separate PR.

ZeroParticle avatar Jun 27 '24 23:06 ZeroParticle

This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size.

github-actions[bot] avatar Jun 27 '24 23:06 github-actions[bot]

Build Succeeded :clap:

Build Id: 1a2bf81b-d3c6-46e3-ba93-4aaa6b841b0f

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

  • https://5cd985e-dot-preview-dot-agones-images.appspot.com/

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3883/head:pr_3883 && git checkout pr_3883
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.42.0-dev-5cd985e-amd64

agones-bot avatar Jun 28 '24 00:06 agones-bot

@ZeroParticle I like this work! I have a thought that I'd be interested to know your opinions on.

What is elements of the test project are added in as Agones Unity SDK Samples~? https://docs.unity3d.com/Manual/cus-samples.html

To be clear the thoughts is:

  1. Create a sample project under sdks/unity/Samples~
  2. Have the test project in test/sdk/unity pull in the sample assets

That way the Agones Unity SDK has a shareable sample project for others to get started on.

aallbrig avatar Jul 18 '24 17:07 aallbrig

Build Succeeded :clap:

Build Id: a51ec1ba-5078-4744-aafe-7486073d26e0

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

  • https://9dc67ea-dot-preview-dot-agones-images.appspot.com/

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3883/head:pr_3883 && git checkout pr_3883
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.43.0-dev-9dc67ea-amd64

agones-bot avatar Jul 25 '24 19:07 agones-bot

I will update this PR to use the new structure from #3887 now that it has been merged. Hopefully today or tomorrow.

ZeroParticle avatar Jul 29 '24 19:07 ZeroParticle

Build Succeeded :partying_face:

Build Id: 5bb79c9e-2dd6-4467-a3e2-2c8c3074ce11

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

  • https://bac439c-dot-preview-dot-agones-images.appspot.com/

To install this version:

git fetch https://github.com/googleforgames/agones.git pull/3883/head:pr_3883 && git checkout pr_3883
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.43.0-dev-bac439c

agones-bot avatar Jul 30 '24 23:07 agones-bot

@aallbrig @zmerlynn @igooch PR has been updated and is ready for review.

ZeroParticle avatar Jul 31 '24 00:07 ZeroParticle

Build Succeeded :partying_face:

Build Id: 3bc07d3b-27ce-4729-b970-d8c944e1a6cf

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

  • https://29739ae-dot-preview-dot-agones-images.appspot.com/

To install this version:

git fetch https://github.com/googleforgames/agones.git pull/3883/head:pr_3883 && git checkout pr_3883
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.43.0-dev-29739ae

agones-bot avatar Aug 08 '24 02:08 agones-bot

@aallbrig @ZeroParticle is there anything outstanding in this PR, or is it good to merge?

igooch avatar Aug 21 '24 16:08 igooch

All good in my opinion @igooch. We've been using this for our production servers for a while now.

ZeroParticle avatar Aug 26 '24 21:08 ZeroParticle

Build Succeeded :partying_face:

Build Id: a9bbdf31-11b5-441f-9ec0-0469e93c7710

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

  • https://8072bd8-dot-preview-dot-agones-images.appspot.com/

To install this version:

git fetch https://github.com/googleforgames/agones.git pull/3883/head:pr_3883 && git checkout pr_3883
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.43.0-dev-8072bd8

agones-bot avatar Aug 27 '24 00:08 agones-bot