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

Adds Counters and Lists to CSharp SDK #3581

Merged
merged 8 commits into from
Apr 3, 2024
Merged

Conversation

igooch
Copy link
Collaborator

@igooch igooch commented Jan 9, 2024

What type of PR is this?

/kind feature

What this PR does / Why we need it:

Adds the C# SDK for Counters and Lists as part of the CountsAndLists feature.

Methods Implemented are based on the Go SDK methods in https://github.com/googleforgames/agones/blob/main/sdks/go/alpha.go:

  • func (a *Alpha) GetCounterCount(key string) (int64, error) -> Task<long> GetCounterCountAsync(string key);

  • func (a *Alpha) IncrementCounter(key string, amount int64) (error) -> Task IncrementCounterAsync(string key, long amount);

  • func (a *Alpha) DecrementCounter(key string, amount int64) (error) -> Task DecrementCounterAsync(string key, long amount);

  • func (a *Alpha) SetCounterCount(key string, amount int64) (error) -> Task SetCounterCountAsync(string key, long amount);

  • func (a *Alpha) GetCounterCapacity(key string) (int64, error) -> Task<long> GetCounterCapacityAsync(string key);

  • func (a *Alpha) SetCounterCapacity(key string, amount int64) (error) -> Task SetCounterCapacityAsync(string key, long amount);

  • func (a *Alpha) GetListCapacity(key string) (int64, error) -> Task<long> GetListCapacityAsync(string key);

  • func (a *Alpha) SetListCapacity(key string, amount int64) (error) -> Task SetListCapacityAsync(string key, long amount);

  • func (a *Alpha) ListContains(key, value string) (bool, error) -> Task<bool> ListContainsAsync(string key, string value);

  • func (a *Alpha) GetListLength(key string) (int, error) -> Task<int> GetListLengthAsync(string key);

  • func (a *Alpha) GetListValues(key string) ([]string, error) -> Task<IList<string>> GetListValuesAsync(string key);

  • func (a *Alpha) AppendListValue(key, value string) (error) -> Task AppendListValueAsync(string key, string value);

  • func (a *Alpha) DeleteListValue(key, value string) (error) -> Task DeleteListValueAsync(string key, string value);

Adds C# unit tests for the new methods. C# units tests can be run by navigating to agones/build and running make sdk-shell-csharp. Once in the C# shell navigate to the test folder /go/src/agones.dev/agones/sdks/csharp/test. From there use standard dotnet commands such as dotnet test --filter Counter to run the unit tests.

Adds C# conformance tests for the new methods. C# conformance tests can be run by navigating to agones/build and running make run-sdk-conformance-test-csharp.

Which issue(s) this PR fixes:

Working on #2716

Special notes for your reviewer:

@github-actions github-actions bot added kind/hotfix Hotfixes for issues against release size/S labels Jan 9, 2024
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 13535a09-4f14-4ab2-a4bc-35c8f69d4f0b

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: c232f224-6be3-4e5c-962c-0204879b503a

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 98887958-1ee3-4108-ad2e-e9db4e7f777b

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: f82ba555-097b-4282-9a56-5fa374b7af25

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@igooch igooch force-pushed the csharpsdk branch 2 times, most recently from 30cb412 to 8ec5a51 Compare January 11, 2024 02:32
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 6b8d1859-a3b7-49f3-b9a0-f9ede7175f3c

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.38.0-dev-8ec5a51-amd64

@github-actions github-actions bot added the kind/feature New features for Agones label Jan 12, 2024
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: ab391311-9c52-42b9-8ebe-dbf031d484fe

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.38.0-dev-5117703-amd64

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 86e9f86b-65c6-4530-845a-5454829682c4

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.38.0-dev-e132cb5-amd64

@igooch igooch removed the kind/hotfix Hotfixes for issues against release label Jan 22, 2024
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 0a1af7a6-636c-469b-bbee-3f266349ce78

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 79a22e86-25e5-4408-b938-ba541e1db0b0

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.38.0-dev-6fe950d-amd64

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: cc02755a-7f15-426d-8815-da2eac3e11ba

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.38.0-dev-bb383cf-amd64

@igooch igooch force-pushed the csharpsdk branch 4 times, most recently from f089669 to 5c6b7fa Compare February 5, 2024 17:08
Copy link

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.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 0229cd4d-6001-4be5-8f57-64cba555a437

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.40.0-dev-80d474b-amd64

Copy link

github-actions bot commented Apr 1, 2024

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.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 0d1438df-ce86-40e7-96db-f084d47e3fd5

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.40.0-dev-e70f45d-amd64

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just need feature shortcodes in the docs, then I think this is good to merge.

site/content/en/docs/Guides/Client SDKs/csharp.md Outdated Show resolved Hide resolved
site/content/en/docs/Guides/Client SDKs/csharp.md Outdated Show resolved Hide resolved
@igooch igooch mentioned this pull request Apr 1, 2024
Copy link

github-actions bot commented Apr 1, 2024

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.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 4a420991-2a14-48d4-bd1d-d134e8e37939

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@markmandel
Copy link
Member

Really need to fix this flake:

E: time="2024-04-02 00:48:53.552" level=info msg="Finished Allocation."
VERBOSE:     gameserverallocation_test.go:1442: 
VERBOSE:         	Error Trace:	/go/src/agones.dev/agones/test/e2e/gameserverallocation_test.go:1442
VERBOSE:         	Error:      	Not equal: 
VERBOSE:         	            	expected: 100
VERBOSE:         	            	actual  : 99
VERBOSE:         	Test:       	TestGameServerAllocationDuringMultipleAllocationClients
VERBOSE: --- FAIL: TestGameServerAllocationDuringMultipleAllocationClients (60.57s)

Copy link

github-actions bot commented Apr 2, 2024

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.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: d16af8ea-6837-4dec-a3e8-0e84b184907e

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.40.0-dev-d97b23f-amd64

Copy link

github-actions bot commented Apr 2, 2024

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.

@markmandel markmandel requested a review from zmerlynn April 2, 2024 23:36
@markmandel
Copy link
Member

markmandel commented Apr 2, 2024

@zmerlynn can you do a final approval on this? I just pushed up some formatting changes to the documentation to Ivy's branch and felt weird approving my own changes 😄

Copy link
Collaborator

@zmerlynn zmerlynn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve your last commit. :)

@zmerlynn zmerlynn enabled auto-merge (squash) April 3, 2024 00:04
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 25f0a1fa-a3c6-4d29-85c0-ae9aa210fafe

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):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/3581/head:pr_3581 && git checkout pr_3581
  • 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.40.0-dev-91ec59d-amd64

@zmerlynn zmerlynn merged commit f4403e8 into googleforgames:main Apr 3, 2024
4 checks passed
spiceratops added a commit to spiceratops/k8s-gitops that referenced this pull request May 13, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [agones](https://agones.dev)
([source](https://github.com/googleforgames/agones)) | minor |
`1.39.0` -> `1.40.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>googleforgames/agones (agones)</summary>

###
[`v1.40.0`](https://github.com/googleforgames/agones/blob/HEAD/CHANGELOG.md#v1400-2024-04-23)

[Compare
Source](https://github.com/googleforgames/agones/compare/v1.39.0...v1.40.0)

[Full
Changelog](https://github.com/googleforgames/agones/compare/v1.39.0...v1.40.0)

**Breaking changes:**

- Counters and Lists: Remove Bool Returns by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3738

**Implemented enhancements:**

- Leader Election in Custom Controller by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3696
- Migrating from generate-groups.sh to kube_codegen.sh by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3722
- Move GKEAutopilotExtendedDurationPods to Alpha in 1.28+ by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[googleforgames/agones#3729
- Move DisableResyncOnSDKServer to Beta by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3732
- Counters & Lists landing page and doc improvements by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3649
- Graduate FleetAllocationOverflow to Stable by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3733
- Adds Counters and Lists to CSharp SDK by
[@&#8203;igooch](https://github.com/igooch) in
[googleforgames/agones#3581
- Feat/counter and list defaulting order to ascending by
[@&#8203;lacroixthomas](https://github.com/lacroixthomas) in
[googleforgames/agones#3734
- Add handling for StatusAddresses in GameServerStatus for the Unity SDK
by [@&#8203;charlesvien](https://github.com/charlesvien) in
[googleforgames/agones#3739
- Feat(gameservers): Shared pod IPs with GameServer Addresses by
[@&#8203;lacroixthomas](https://github.com/lacroixthomas) in
[googleforgames/agones#3764
- Be prescriptive about rotating regions when updating Kubernetes
versions by [@&#8203;zmerlynn](https://github.com/zmerlynn) in
[googleforgames/agones#3716
- Fix ensure-e2e-infra-state-bucket by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[googleforgames/agones#3719
- Create Performance Cluster 1.28 by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3720
- Optimise GameServer Sub-Controller Queues by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3781

**Fixed bugs:**

- Counters & Lists: Consolidate `priorities` sorting by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3690
- Fix(Counter & Lists): Add validation for `priorities` by
[@&#8203;lacroixthomas](https://github.com/lacroixthomas) in
[googleforgames/agones#3714
- fix:
[#&#8203;3607](https://github.com/googleforgames/agones/issues/3607)
Metrics data loss in K8S controller by
[@&#8203;alvin-7](https://github.com/alvin-7) in
[googleforgames/agones#3692
- Deflake GameServerAllocationDuringMultipleAllocationClients by
allowing errors by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3750

**Security fixes:**

- Bump protobufjs from 7.2.4 to 7.2.6 in /sdks/nodejs by
[@&#8203;dependabot](https://github.com/dependabot) in
[googleforgames/agones#3755
- Bump golang.org/x/net from 0.19.0 to 0.23.0 by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[googleforgames/agones#3793

**Other:**

- Flaky: TestGameServerCreationAfterDeletingOneExtensionsPod by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3699
- Prep for release v1.40.0 by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3700
- Bumps cpp-simple Image and Refactoring Example Makefiles by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3695
- Upgrade Protobuf to 1.33.0 by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3711
- Modify Script for Makefile Version Updates in Examples Directory by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3712
- Adds simple genai server example documentation to the Agones site by
[@&#8203;igooch](https://github.com/igooch) in
[googleforgames/agones#3713
- Update Supported Kubernetes to 1.27, 1.28, 1.29 by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3654
- fix: typo in docs by [@&#8203;qhyun2](https://github.com/qhyun2) in
[googleforgames/agones#3723
- Tweak: Setting up the Game Server by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3717
- Docs: gke.md - spelling by
[@&#8203;daniellee](https://github.com/daniellee) in
[googleforgames/agones#3740
- Aesthetic rearrangement of cloudbuild.yaml by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[googleforgames/agones#3741
- Docs: Make hitting <enter> on connection explicit by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3743
- CI: Don't check Unreal Link by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3745
- New recommendation for multi-cluster allocation by
[@&#8203;markmandel](https://github.com/markmandel) in
[googleforgames/agones#3744
- Custom Controller Example Page on Agones Website by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3725
- Add Nitrado logo by [@&#8203;towolf](https://github.com/towolf) in
[googleforgames/agones#3753
- Remove unnecessary args from e2e-test-cloudbuild by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[googleforgames/agones#3754
- Update Allocation from Fleet Documentation by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3761
- Transform Lint Warnings into Errors by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3756
- Update Canary Testing Documentation by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3760
- Supertuxkart Example on Agones Site by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3728
- Xonotic Example on Agones Site by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3742
- nit documentation fix in kind cluster section when building Agones by
[@&#8203;vicentefb](https://github.com/vicentefb) in
[googleforgames/agones#3770
- Merged steps inside documentation about webhook certificate creation
by [@&#8203;vicentefb](https://github.com/vicentefb) in
[googleforgames/agones#3768
- Example Images: Increment Tags by
[@&#8203;Kalaiselvi84](https://github.com/Kalaiselvi84) in
[googleforgames/agones#3796
- Update simple game server example documentation by
[@&#8203;vicentefb](https://github.com/vicentefb) in
[googleforgames/agones#3776

**New Contributors:**

- [@&#8203;lacroixthomas](https://github.com/lacroixthomas) made their
first contribution in
[googleforgames/agones#3714
- [@&#8203;daniellee](https://github.com/daniellee) made their first
contribution in
[googleforgames/agones#3740
- [@&#8203;charlesvien](https://github.com/charlesvien) made their
first contribution in
[googleforgames/agones#3739
- [@&#8203;vicentefb](https://github.com/vicentefb) made their first
contribution in
[googleforgames/agones#3770

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTYuMSIsInVwZGF0ZWRJblZlciI6IjM3LjM1Ni4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9oZWxtIiwidHlwZS9taW5vciJdfQ==-->
@igooch igooch deleted the csharpsdk branch July 16, 2024 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants