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

chore!: use unique static names for instances #530

Merged
merged 6 commits into from
Sep 19, 2024

Conversation

mojtaba-esk
Copy link
Contributor

@mojtaba-esk mojtaba-esk commented Jul 25, 2024

Closes #526
Closes #527
Closes #528

Summary by CodeRabbit

  • New Features

    • Enhanced error handling for instance management with new error variables for duplicate names.
    • Added thread-safe methods for managing instance names within the system dependencies.
    • Implemented unique name checks for various methods in the Traefik service.
  • Bug Fixes

    • Improved naming conventions across multiple test cases to enhance clarity and prevent conflicts.
  • Refactor

    • Standardized naming conventions within the Instance struct and its methods.
    • Streamlined the Preloader struct to use a consistent naming scheme.
    • Improved the Traefik struct to manage unique names effectively.
  • Documentation

    • Updated error messages to provide clearer feedback on specific error scenarios.

@mojtaba-esk mojtaba-esk added this to the v0.15.0 milestone Jul 25, 2024
@mojtaba-esk mojtaba-esk requested a review from a team July 25, 2024 10:58
@mojtaba-esk mojtaba-esk self-assigned this Jul 25, 2024
@celestia-bot celestia-bot requested review from MSevey, smuu and sysrex July 25, 2024 10:58
Copy link
Contributor

coderabbitai bot commented Jul 25, 2024

Caution

Review failed

The pull request is closed.

Walkthrough

The changes enhance clarity and consistency in the codebase by refining naming conventions for instances and errors, implementing better error handling, and introducing new functionalities for managing unique instance names. The modifications support improved instance management and concurrent access, aligning with user-defined naming requirements.

Changes

Files Change Summary
e2e/basic/reverse_proxy_test.go, e2e/bittwister/bittwister_test.go, e2e/system/folder_test.go Updated instance names for clarity and specificity in tests without altering functionality.
pkg/instance/destroy.go, pkg/instance/errors.go, pkg/instance/helper.go, pkg/instance/instance.go, pkg/instance/pool.go, pkg/instance/proxy.go Refactored to replace k8sName with name, enhancing consistency in naming conventions and error handling.
pkg/knuu/errors.go, pkg/knuu/instance.go, pkg/knuu/preloader_old.go Introduced new error variables and updated method signatures for handling unique instance names and dependencies.
pkg/preloader/errors.go, pkg/preloader/preloader.go, pkg/system/dependencies.go Enhanced error reporting and introduced synchronization mechanisms for instance name management.
pkg/traefik/errors.go, pkg/traefik/traefik.go Added error handling for name uniqueness and improved method implementations to prevent name conflicts.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Knuu
    participant Instance
    participant SystemDependencies

    User->>Knuu: Request to create instance with name
    Knuu->>SystemDependencies: Check if name exists
    SystemDependencies-->>Knuu: Return result
    alt Name exists
        Knuu-->>User: Return error (name already exists)
    else Name does not exist
        Knuu->>Instance: Create new instance
        Instance-->>Knuu: Return instance
        Knuu-->>User: Return success with instance details
    end
Loading

Assessment against linked issues

Objective Addressed Explanation
Names must be static (scope & instance name) -> let user define it (#[526])
knuu object keeps map of all instances -> every knuu run user cannot create two instances with the same name (#[528])

🐇 In the garden, names now so bright,
Each instance shines, a wondrous sight!
Errors log clear, no more dismay,
Rabbit’s hop joyful, coding at play!
Clarity blooms, as we code and create,
With names that are static, our work feels great! 🌸


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    -- I pushed a fix in commit <commit_id>, please review it.
    -- Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    -- @coderabbitai generate unit testing code for this file.
    -- @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    -- @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    -- @coderabbitai read src/utils.ts and generate unit testing code.
    -- @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    -- @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Member

@smuu smuu left a comment

Choose a reason for hiding this comment

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

Thank you for already working on this.
I would like to have this for v0.16.0 as I want to properly test this and I don't want to rush it to get it into v0.15.0.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Outside diff range, codebase verification and nitpick comments (1)
e2e/tshark/tshark_test.go (1)

70-70: The definition of target.Name() is missing.

The method target.Name() is used in e2e/tshark/tshark_test.go, but its definition could not be found in the codebase. This is essential for the change to work correctly.

  • Ensure that target.Name() is properly defined in the Target struct or interface.
Analysis chain

Change to use target.Name() looks good.

The change from target.K8sName() to target.Name() aligns with the objective of using unique static names for instances.

However, ensure that target.Name() is correctly defined and used throughout the codebase.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the definition and usage of `target.Name()` in the codebase.

# Test: Search for the definition and usage of `target.Name()`. Expect: Proper definition and consistent usage.
rg --type python -A 5 $'target.Name'

Length of output: 66


Script:

#!/bin/bash
# Description: Verify the definition and usage of `target.Name()` in the codebase.

# Test: Search for the definition and usage of `target.Name()`. Expect: Proper definition and consistent usage.
rg --type go -A 5 'target.Name'

Length of output: 416


Script:

#!/bin/bash
# Description: Verify the definition and usage of `target.Name()` in the codebase.

# Test: Search for the definition of `Name` method in the `target` struct or interface.
rg --type go 'func (t *Target) Name()' -A 5

# Test: Search for other usages of `target.Name()` in the codebase.
rg --type go 'target.Name()'

Length of output: 209

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between c68be43 and 7ba781a.

Files selected for processing (20)
  • e2e/basic/reverse_proxy_test.go (2 hunks)
  • e2e/bittwister/bittwister_test.go (7 hunks)
  • e2e/system/folder_test.go (1 hunks)
  • e2e/tshark/tshark_test.go (1 hunks)
  • pkg/instance/destroy.go (1 hunks)
  • pkg/instance/errors.go (1 hunks)
  • pkg/instance/helper.go (22 hunks)
  • pkg/instance/instance.go (29 hunks)
  • pkg/instance/pool.go (1 hunks)
  • pkg/instance/proxy.go (1 hunks)
  • pkg/instance/tshark.go (1 hunks)
  • pkg/knuu/errors.go (1 hunks)
  • pkg/knuu/instance.go (1 hunks)
  • pkg/knuu/instance_old.go (1 hunks)
  • pkg/knuu/preloader_old.go (1 hunks)
  • pkg/preloader/errors.go (1 hunks)
  • pkg/preloader/preloader.go (4 hunks)
  • pkg/system/dependencies.go (2 hunks)
  • pkg/traefik/errors.go (1 hunks)
  • pkg/traefik/traefik.go (7 hunks)
Files skipped from review due to trivial changes (2)
  • e2e/system/folder_test.go
  • pkg/instance/proxy.go
Additional comments not posted (55)
pkg/preloader/errors.go (1)

10-10: LGTM! Enhanced error specificity.

The new error variable ErrPreloaderNameAlreadyExists improves clarity and specificity in error reporting.

pkg/knuu/instance.go (2)

10-10: LGTM! Improved efficiency by passing pointers.

Passing a pointer to k.SystemDependencies improves performance by avoiding unnecessary copying.


13-14: LGTM! Added flexibility with new parameter.

Adding the name parameter to NewPreloader allows for user-defined names, enhancing flexibility.

However, ensure that all function calls to NewPreloader match the new signature.

Verification successful

All function calls to NewPreloader match the new signature.

  • pkg/knuu/instance.go: Function definition with the new signature.
  • pkg/knuu/preloader_old.go: Function call using the new signature.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all function calls to `NewPreloader` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type go -A 5 $'NewPreloader'

Length of output: 576


Script:

#!/bin/bash
# Description: Verify all function calls to `NewPreloader` match the new signature.

# Test: Search for the function usage across the entire codebase to ensure all calls use the new signature.
rg --type go 'NewPreloader\('

Length of output: 268

pkg/system/dependencies.go (2)

4-5: LGTM! Added synchronization mechanism.

Adding sync.Map to SystemDependencies enhances concurrency control.


22-23: LGTM! Enhanced instance management.

The AddInstanceName and HasInstanceName methods improve instance name management in a thread-safe manner.

However, ensure that all method calls to AddInstanceName and HasInstanceName are correctly implemented.

Verification successful

Implementation Verified

The AddInstanceName and HasInstanceName methods are correctly implemented and used throughout the codebase with proper error handling and logical sequence.

  • pkg/preloader/preloader.go: New function
  • pkg/instance/instance.go: New function
  • pkg/instance/helper.go: cloneWithName method
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all method calls to `AddInstanceName` and `HasInstanceName` are correctly implemented.

# Test: Search for the method usage. Expect: Correct implementation of the new methods.
rg --type go -A 5 $'AddInstanceName'
rg --type go -A 5 $'HasInstanceName'

Length of output: 2540


Script:

#!/bin/bash
# Extract relevant sections from the files where AddInstanceName and HasInstanceName are used

# Extract from pkg/preloader/preloader.go
rg --type go -A 10 -B 5 'AddInstanceName|HasInstanceName' pkg/preloader/preloader.go

# Extract from pkg/instance/instance.go
rg --type go -A 10 -B 5 'AddInstanceName|HasInstanceName' pkg/instance/instance.go

# Extract from pkg/instance/helper.go
rg --type go -A 10 -B 5 'AddInstanceName|HasInstanceName' pkg/instance/helper.go

Length of output: 1952

pkg/knuu/preloader_old.go (1)

21-24: Ensure all calls to NewPreloader are updated to include the name parameter.

The updated function signature requires a name parameter, which must be reflected in all calls to this function.

Verification successful

Ensure all calls to NewPreloader are updated to include the name parameter.

The updated function signature requires a name parameter, which must be reflected in all calls to this function.


Ensure all calls to NewPreloader are updated to include the name parameter.

The updated function signature requires a name parameter, which must be reflected in all calls to this function.


Ensure all calls to tmpKnuu.NewPreloader and preloader.New are updated to include the name parameter.

The updated function signature requires a name parameter, which must be reflected in all calls to these functions.


Verification successful: All calls to NewPreloader have been updated to include the name parameter.

The updated function signature requiring a name parameter is correctly reflected in all calls to this function.

  • pkg/knuu/preloader_old.go
  • pkg/knuu/instance.go
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all calls to `NewPreloader` are updated to include the `name` parameter.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type go -A 5 $'NewPreloader'

Length of output: 576


Script:

#!/bin/bash
# Description: Verify all calls to `NewPreloader` are updated to include the `name` parameter.

# Test: Search for all calls to `NewPreloader` in the codebase.
rg --type go 'NewPreloader('

Length of output: 107


Script:

#!/bin/bash
# Description: Verify all calls to `NewPreloader` are updated to include the `name` parameter.

# Test: Search for all calls to `NewPreloader` in the codebase.
rg --type go 'NewPreloader\('

Length of output: 268


Script:

#!/bin/bash
# Description: Verify all calls to `tmpKnuu.NewPreloader` and `preloader.New` are updated to include the `name` parameter.

# Test: Search for all calls to `tmpKnuu.NewPreloader` in the codebase.
rg --type go 'tmpKnuu.NewPreloader\('

# Test: Search for all calls to `preloader.New` in the codebase.
rg --type go 'preloader.New\('

Length of output: 208

pkg/instance/destroy.go (5)

25-25: Verify that name is correctly set for all instances.

The error message now uses i.name. Ensure that the name field is correctly set for all instances to avoid misleading error messages.


33-33: Verify that name is correctly set for all instances.

The error message now uses i.name. Ensure that the name field is correctly set for all instances to avoid misleading error messages.


38-38: Verify that name is correctly set for all instances.

The debug log message now uses i.name. Ensure that the name field is correctly set for all instances to avoid misleading log messages.


22-22: Verify that name is correctly set for all instances.

The error message now uses i.name. Ensure that the name field is correctly set for all instances to avoid misleading error messages.

Verification successful

Verify that name is correctly set for all instances.

The name field is correctly set during instance creation in the relevant files:

  • pkg/instance/helper.go
  • pkg/instance/instance.go

The instances in pkg/knuu/instance_old.go are from a deprecated file and are not relevant to the current implementation.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the `name` field is correctly set for all instances.

# Test: Search for instance creation and initialization. Expect: `name` field is set correctly.
rg --type go -A 5 $'Instance{'

Length of output: 113


Script:

#!/bin/bash
# Description: Verify that the `name` field is correctly set for all instances.

# Test: Search for instance creation and initialization. Expect: `name` field is set correctly.
rg --type go -A 5 $'Instance\\{'

Length of output: 1722


29-29: Verify that name is correctly set for all instances.

The debug log message now uses sidecar.name. Ensure that the name field is correctly set for all sidecar instances to avoid misleading log messages.

pkg/instance/pool.go (1)

20-28: Ensure robust error handling during instance cloning.

The changes improve error handling by capturing and returning errors from the cloneWithSuffix method. This ensures that the function maintains integrity during pool creation.

pkg/traefik/errors.go (1)

27-27: New error declaration looks good.

The new error ErrNameAlreadyExist enhances error handling by providing specific feedback when a name already exists.

pkg/instance/tshark.go (1)

74-74: Change to use i.name looks good.

The change from i.k8sName to i.name aligns with the objective of using unique static names for instances.

However, ensure that i.name is correctly defined and used throughout the codebase.

Verification successful

Change to use i.name looks good.

The change from i.k8sName to i.name aligns with the objective of using unique static names for instances. The variable i.name is correctly defined and consistently used throughout the codebase.

  • pkg/instance/proxy.go
  • pkg/instance/tshark.go
  • pkg/instance/destroy.go
  • pkg/instance/state.go
  • pkg/instance/instance.go
  • pkg/instance/pool.go
  • pkg/instance/helper.go
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the definition and usage of `i.name` in the codebase.

# Test: Search for the definition and usage of `i.name`. Expect: Proper definition and consistent usage.
rg --type python -A 5 $'i.name'

Length of output: 61


Script:

#!/bin/bash
# Description: Verify the definition and usage of `i.name` in the Go codebase.

# Search for the definition of `i` to understand its type and context.
rg 'i\s*:=' -t go -A 5

# Search for the usage of `i.name` in Go files to ensure it is correctly defined and used.
rg 'i\.name' -t go -A 5

Length of output: 54235

e2e/basic/reverse_proxy_test.go (2)

25-25: LGTM!

The instance name change from "main" to "main-reverse-proxy" improves clarity.


67-67: LGTM!

The instance name change from "target" to "target-add-host-check" improves clarity.

pkg/preloader/preloader.go (5)

9-9: LGTM!

The import changes align with the modifications in the file.


33-35: LGTM!

Renaming the K8sName field to Name improves clarity and generalizes the naming convention.


39-47: LGTM!

The New constructor function now accepts a name parameter and includes additional error handling, enhancing functionality.


92-92: LGTM!

Updating the preloadImages method to use the Name field instead of K8sName improves consistency.


139-139: LGTM!

Updating the Cleanup method to use the Name field instead of K8sName improves consistency.

pkg/traefik/traefik.go (6)

6-6: LGTM!

The import changes align with the modifications in the file.


48-48: LGTM!

The addition of the namesMap field to the Traefik struct facilitates the management of unique names and improves functionality.


60-62: LGTM!

The Deploy method now uses the checkAndAddUniqueName method to ensure unique names, improving reliability and clarity.


210-212: LGTM!

The AddHost method now uses the checkAndAddUniqueName method to ensure unique names, improving reliability and clarity.


304-306: LGTM!

The createIngressRoute method now uses the checkAndAddUniqueName method to ensure unique names, improving reliability and clarity.


376-382: LGTM!

The checkAndAddUniqueName method centralizes the uniqueness check, promoting code reuse and maintainability.

e2e/bittwister/bittwister_test.go (4)

32-43: LGTM! Improved naming conventions.

The changes improve the clarity of instance names by including the test type, which aligns with the PR objectives.


Line range hint 135-150:
LGTM! Improved naming conventions.

The changes improve the clarity of instance names by including the test type, which aligns with the PR objectives.


Line range hint 238-253:
LGTM! Improved naming conventions.

The changes improve the clarity of instance names by including the test type, which aligns with the PR objectives.


Line range hint 346-361:
LGTM! Improved naming conventions.

The changes improve the clarity of instance names by including the test type, which aligns with the PR objectives.

pkg/instance/helper.go (10)

79-84: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


99-113: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


Line range hint 121-131:
LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


141-141: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


Line range hint 150-175:
LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


Line range hint 183-201:
LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


235-236: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


243-247: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


277-281: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.


288-292: LGTM! Improved naming convention.

The change to use i.name instead of i.k8sName aligns with the new naming convention and enhances clarity.

pkg/knuu/errors.go (1)

213-213: LGTM!

The addition of ErrInstanceNameAlreadyExists provides a clear and descriptive error message for instance name conflicts.

pkg/instance/errors.go (2)

215-215: LGTM!

The addition of ErrInstanceNameAlreadyExists provides a clear and descriptive error message for instance name conflicts.


216-216: LGTM!

The addition of ErrEmptySuffix provides a clear and descriptive error message for empty suffix scenarios.

pkg/instance/instance.go (11)

113-113: LGTM!

The removal of the k8sName field simplifies the Instance struct. Using a pointer for SystemDependencies optimizes memory usage and performance.


145-150: LGTM!

The New function now ensures that instance names are unique and properly sanitized. The logic to check for existing instance names and add new ones is well-implemented.


353-355: LGTM!

The PortForwardTCP function now uses i.name instead of i.k8sName, ensuring consistency in instance identification.


394-394: LGTM!

The AddPortUDP function now logs the addition of a UDP port using i.name instead of i.k8sName, ensuring consistency in instance identification.


417-430: LGTM!

The ExecuteCommand function now uses i.name instead of i.k8sName for error handling and logging, ensuring consistency in instance identification.


762-771: LGTM!

The GetIP function now uses i.name instead of i.k8sName for service retrieval and error handling, ensuring consistency in instance identification.


1097-1097: LGTM!

The StartWithCallback function now logs errors using i.name instead of i.k8sName, ensuring consistency in instance identification.


Line range hint 1109-1160: LGTM!

The StartAsync function now uses i.name instead of i.k8sName for error handling and logging, ensuring consistency in instance identification.


1173-1173: LGTM!

The Start function now uses i.name instead of i.k8sName for error handling, ensuring consistency in instance identification.


1185-1185: LGTM!

The IsRunning function now uses i.name instead of i.k8sName for checking if the instance is running, ensuring consistency in instance identification.


1221-1223: LGTM!

The DisableNetwork function now uses i.name instead of i.k8sName for network policy creation and error handling, ensuring consistency in instance identification.

@mojtaba-esk
Copy link
Contributor Author

Thank you for already working on this. I would like to have this for v0.16.0 as I want to properly test this and I don't want to rush it to get it into v0.15.0.

Ok, so I'll move it down in the prio list

@mojtaba-esk mojtaba-esk force-pushed the mojtaba/527-528-use-static-names-for-instances branch from cfa2d4a to c11c804 Compare August 29, 2024 08:54
@mojtaba-esk mojtaba-esk marked this pull request as ready for review August 29, 2024 15:37
@mojtaba-esk mojtaba-esk requested a review from a team August 29, 2024 15:37
@mojtaba-esk mojtaba-esk requested a review from smuu August 29, 2024 15:37
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 7ba781a and ec6333b.

Files selected for processing (24)
  • e2e/tshark/tshark_test.go (1 hunks)
  • pkg/builder/kaniko/kaniko.go (1 hunks)
  • pkg/builder/kaniko/kaniko_test.go (1 hunks)
  • pkg/instance/build.go (1 hunks)
  • pkg/instance/errors.go (1 hunks)
  • pkg/instance/execution.go (19 hunks)
  • pkg/instance/instance.go (8 hunks)
  • pkg/instance/network.go (10 hunks)
  • pkg/instance/proxy.go (1 hunks)
  • pkg/instance/resources.go (3 hunks)
  • pkg/instance/sidecars.go (4 hunks)
  • pkg/instance/storage.go (2 hunks)
  • pkg/knuu/instance.go (1 hunks)
  • pkg/knuu/knuu.go (2 hunks)
  • pkg/knuu/knuu_test.go (3 hunks)
  • pkg/preloader/errors.go (1 hunks)
  • pkg/preloader/preloader.go (4 hunks)
  • pkg/sidecars/netshaper/netshaper.go (2 hunks)
  • pkg/sidecars/netshaper/netshaper_test.go (5 hunks)
  • pkg/sidecars/observability/obsy.go (2 hunks)
  • pkg/sidecars/observability/obsy_test.go (3 hunks)
  • pkg/sidecars/tshark/tshark.go (4 hunks)
  • pkg/sidecars/tshark/tshark_test.go (3 hunks)
  • pkg/system/dependencies.go (2 hunks)
Files skipped from review due to trivial changes (1)
  • pkg/instance/storage.go
Additional comments not posted (68)
pkg/preloader/errors.go (1)

10-10: LGTM!

The change improves the specificity of the error message, making it clearer and more informative.

pkg/knuu/instance.go (1)

13-14: LGTM!

The change allows the caller to specify a name for the preloader instance, enhancing flexibility and preventing naming conflicts.

pkg/system/dependencies.go (4)

22-22: LGTM!

The addition of sync.Map allows for concurrent safe storage and retrieval of instance names.


25-27: LGTM!

The method allows for the registration of instance names in a concurrent safe manner.


29-32: LGTM!

The method allows for checking the presence of an instance name in a concurrent safe manner.


34-35: LGTM!

The method allows for the removal of instance names in a concurrent safe manner.

pkg/instance/proxy.go (1)

18-23: LGTM!

The renaming of the k8sName field to name is consistent and does not affect the functionality.

pkg/sidecars/netshaper/netshaper.go (2)

45-45: LGTM!

Accepting a pointer to system.SystemDependencies is a good practice for performance optimization.


103-113: LGTM!

The changes improve error handling and clarity in the cloning process. The new method is more robust and user-friendly.

e2e/tshark/tshark_test.go (1)

81-81: LGTM!

The change aligns with the new naming convention and does not affect the functionality of the test.

pkg/sidecars/observability/obsy_test.go (3)

16-16: LGTM!

Changing sysDeps to a pointer type improves memory efficiency and avoids unnecessary copies.


33-33: LGTM!

The initialization of sysDeps is correct and aligns with the change to a pointer type.


60-71: LGTM!

The renaming and the addition of the instance name prefix enhance clarity and functionality.

pkg/instance/sidecars.go (4)

10-13: LGTM!

Changing sysDeps to a pointer type improves memory efficiency and avoids unnecessary copies. The new Clone method enhances error handling.


52-57: LGTM!

The addition of the instance name prefix enhances clarity and prevents name collisions.


87-87: LGTM!

Improving error handling by wrapping errors with additional context enhances debugging and troubleshooting.


102-113: LGTM!

Returning an error if cloning fails enhances robustness and error handling.

pkg/preloader/preloader.go (4)

33-35: LGTM!

Renaming K8sName to Name improves clarity. Changing SystemDependencies to a pointer type improves memory efficiency and avoids unnecessary copies.


39-45: LGTM!

Accepting a name parameter and checking for existing instance names ensures that preloader instances are uniquely identified by user-defined names.


Line range hint 92-134: LGTM!

Using the Name field instead of K8sName ensures consistency with the renaming.


139-139: LGTM!

Using the Name field instead of K8sName ensures consistency with the renaming.

pkg/builder/kaniko/kaniko_test.go (1)

33-34: LGTM!

The change to use a pointer for SystemDependencies is a good improvement for memory usage and easier modification.

pkg/instance/instance.go (5)

46-55: LGTM!

The change to use a pointer for SystemDependencies is a good improvement for memory usage and easier modification. The use of SetName centralizes name management.


110-123: LGTM!

The SetName method ensures that instance names are unique and sanitized, which is crucial for preventing conflicts and maintaining clarity.


134-136: LGTM!

The CloneWithSuffix method delegates the cloning logic to CloneWithName, which centralizes name management and cloning logic.


Line range hint 144-179: LGTM!

The CloneWithName method ensures that the cloned instance has a unique and sanitized name, and it correctly sets the parent references for the cloned instance.


Line range hint 98-100: LGTM!

The Name method correctly returns the instance's name.

pkg/knuu/knuu_test.go (2)

Line range hint 50-108: LGTM!

The removal of the Scope field simplifies the Options struct and indicates that the Scope field is no longer necessary for these particular test cases.


Line range hint 110-169: LGTM!

The removal of the Scope field simplifies the Options struct and indicates that the Scope field is no longer necessary for these particular test cases.

pkg/sidecars/tshark/tshark.go (3)

67-67: LGTM!

The change to accept a pointer to system.SystemDependencies enhances performance by avoiding unnecessary copying.


Line range hint 138-154: LGTM!

The changes improve error handling and standardize the cloning process.


108-108: Verify the usage of t.instance.Name().

Ensure that all references to t.instance.K8sName() have been updated to t.instance.Name() to maintain consistency.

Run the following script to verify the usage:

Verification successful

Verification Successful: Consistent Usage of t.instance.Name()

The transition from t.instance.K8sName() to t.instance.Name() has been successfully completed across the codebase. No occurrences of the old reference were found, and the new reference is used consistently.

  • Verified in pkg/sidecars/tshark/tshark.go
  • Verified in pkg/sidecars/netshaper/netshaper_test.go
  • Verified in pkg/sidecars/netshaper/helpers.go
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all references to `t.instance.K8sName()` have been updated to `t.instance.Name()`.

# Test: Search for the old reference. Expect: No occurrences of `t.instance.K8sName()`.
rg --type go 't\.instance\.K8sName\(\)'

Length of output: 41


Script:

#!/bin/bash
# Description: Verify the usage of `t.instance.Name()` to ensure consistency.

# Test: Search for occurrences of `t.instance.Name()`.
rg --type go 't\.instance\.Name\(\)' -A 2

Length of output: 1172

pkg/sidecars/observability/obsy.go (2)

89-89: LGTM!

The change to accept a pointer to system.SystemDependencies enhances performance by avoiding unnecessary copying.


152-161: LGTM!

The changes improve error handling and standardize the cloning process.

pkg/instance/resources.go (7)

55-55: LGTM!

The change aligns with the new naming conventions.


81-81: LGTM!

The change aligns with the new naming conventions.


89-89: LGTM!

The change aligns with the new naming conventions.


113-113: LGTM!

The change aligns with the new naming conventions.


120-120: LGTM!

The change aligns with the new naming conventions.


126-126: LGTM!

The change aligns with the new naming conventions.


134-134: LGTM!

The change aligns with the new naming conventions.

pkg/sidecars/tshark/tshark_test.go (2)

86-87: LGTM!

The change to use a pointer for SystemDependencies is appropriate for memory efficiency and ensuring modifications are reflected across references.


Line range hint 171-189: LGTM!

The renaming and simplification of the cloning process are appropriate and align with the objective of the PR to ensure unique instance names.

pkg/knuu/knuu.go (1)

Line range hint 36-56: LGTM!

The change to use a pointer for SystemDependencies is appropriate for memory efficiency and allows for nil checks.

pkg/sidecars/netshaper/netshaper_test.go (2)

Line range hint 78-102: LGTM!

The renaming and adjustments to the function logic are appropriate and align with the objective of the PR to ensure unique instance names.


Line range hint 107-135: LGTM!

The renaming and adjustments to the function logic are appropriate and align with the objective of the PR to ensure unique instance names.

pkg/builder/kaniko/kaniko.go (1)

33-33: LGTM! But verify the usage of Kaniko.

The change to embed a pointer to system.SystemDependencies is approved. Ensure that all usages of Kaniko correctly handle the pointer.

Run the following script to verify the usage of Kaniko:

Verification successful

Pointer to system.SystemDependencies in Kaniko is handled correctly.

The usage of the Kaniko struct across the codebase, including tests that assert non-nil values, confirms that the pointer to system.SystemDependencies is managed properly. No issues were found with how the pointer is handled.

  • pkg/knuu/knuu.go: Kaniko is instantiated with SystemDependencies.
  • pkg/builder/kaniko/kaniko_test.go: Tests verify non-nil initialization.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `Kaniko` handle the pointer correctly.

# Test: Search for the `Kaniko` struct usage. Expect: Correct handling of the pointer.
rg --type go -A 5 $'Kaniko'

Length of output: 5429

pkg/instance/build.go (1)

203-203: LGTM! But verify the usage of getBuildDir.

The change to use b.instance.name instead of b.instance.k8sName is approved. Ensure that all usages of getBuildDir correctly handle the new naming scheme.

Run the following script to verify the usage of getBuildDir:

Verification successful

Usages of getBuildDir are consistent with the new naming scheme.

The method getBuildDir is used in pkg/instance/storage.go and pkg/instance/build.go. The change to use b.instance.name instead of b.instance.k8sName appears to be correctly handled in these contexts. The path constructions should work as expected with the new naming scheme.

  • pkg/instance/storage.go: Used for creating destination paths.
  • pkg/instance/build.go: Used in creating a BuilderFactory.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `getBuildDir` handle the new naming scheme correctly.

# Test: Search for the `getBuildDir` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'getBuildDir'

Length of output: 1815

pkg/instance/network.go (8)

141-141: LGTM! But verify the usage of deployService.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of deployService correctly handle the new naming scheme.

Run the following script to verify the usage of deployService:

Also applies to: 145-145, 152-152, 155-155

Verification successful

Verified: The new naming scheme is correctly handled in deployService usage.

The change to use n.instance.name instead of n.instance.k8sName is consistently applied across the codebase, ensuring that the new naming scheme is correctly handled in all usages of the deployService method.

  • pkg/instance/network.go: The method uses n.instance.name for error handling and service retrieval.
  • pkg/instance/resources.go: The method usage aligns with the new naming scheme.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `deployService` handle the new naming scheme correctly.

# Test: Search for the `deployService` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'deployService'

Length of output: 2353


183-183: LGTM! But verify the usage of destroyService.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of destroyService correctly handle the new naming scheme.

Run the following script to verify the usage of destroyService:

Verification successful

Verified: Consistent usage of destroyService with the new naming scheme.

The destroyService method's usage in pkg/instance/resources.go correctly handles the new naming scheme by using r.instance.name, ensuring consistency across the codebase. No further issues were found.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `destroyService` handle the new naming scheme correctly.

# Test: Search for the `destroyService` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'destroyService'

Length of output: 811


237-239: LGTM! But verify the usage of Enable.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of Enable correctly handle the new naming scheme.

Run the following script to verify the usage of Enable:

Verification successful

Verification successful: The Enable method uses the new naming scheme correctly.

The change to use n.instance.name instead of n.instance.k8sName is consistent within the Enable method and its usage in pkg/instance/network.go. No issues were found in the verification process.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `Enable` handle the new naming scheme correctly.

# Test: Search for the `Enable` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'Enable'

Length of output: 4837


163-163: LGTM! But verify the usage of patchService.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of patchService correctly handle the new naming scheme.

Run the following script to verify the usage of patchService:

Also applies to: 167-167

Verification successful

Verified: The usage of patchService correctly handles the new naming scheme.

The change to use n.instance.name instead of n.instance.k8sName is consistently applied within the patchService method and its usage in pkg/instance/network.go. No further issues were found.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `patchService` handle the new naming scheme correctly.

# Test: Search for the `patchService` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'patchService'

Length of output: 818


114-123: LGTM! But verify the usage of GetIP.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of GetIP correctly handle the new naming scheme.

Run the following script to verify the usage of GetIP:

Also applies to: 129-129

Verification successful

Verification Successful: GetIP Method Handles New Naming Scheme Correctly

The GetIP method in pkg/instance/network.go consistently uses n.instance.name, aligning with the new naming scheme. No issues were found regarding the transition from n.instance.k8sName to n.instance.name. The method's logic is correctly handling the new naming convention.

  • Verified usage of n.instance.name in the GetIP method.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `GetIP` handle the new naming scheme correctly.

# Test: Search for the `GetIP` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'GetIP'

Length of output: 7863


Script:

#!/bin/bash
# Extract the implementation of the `GetIP` method to verify the usage of `n.instance.name`.
ast-grep --lang go --pattern $'func (n *network) GetIP($_) ($_, $_) {
  $$$
}'

Length of output: 1875


223-225: LGTM! But verify the usage of Disable.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of Disable correctly handle the new naming scheme.

Run the following script to verify the usage of Disable:

Verification successful

The change to n.instance.name is correctly isolated.

The Disable method is not called elsewhere in the codebase, confirming that the change to use n.instance.name instead of n.instance.k8sName is correctly isolated and does not impact other parts of the code. No further action is needed.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `Disable` handle the new naming scheme correctly.

# Test: Search for the `Disable` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'Disable'

Length of output: 5362


Script:

#!/bin/bash
# Search for all calls to the `Disable` method across the codebase.
rg --type go 'Disable('

Length of output: 92


Script:

#!/bin/bash
# Corrected search for all calls to the `Disable` method across the codebase.
rg --type go 'Disable\('

Length of output: 105


102-102: LGTM! But verify the usage of AddPortUDP.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of AddPortUDP correctly handle the new naming scheme.

Run the following script to verify the usage of AddPortUDP:

Verification successful

No additional usage of AddPortUDP found.

The AddPortUDP method is not called elsewhere in the codebase, so the change to use n.instance.name is isolated and does not impact other parts of the codebase. The review comment is verified.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `AddPortUDP` handle the new naming scheme correctly.

# Test: Search for the `AddPortUDP` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'AddPortUDP'

Length of output: 567


Script:

#!/bin/bash
# Search for all calls to the AddPortUDP method in the codebase to verify correct usage.
rg --type go 'AddPortUDP('

Length of output: 101


Script:

#!/bin/bash
# Search for all calls to the AddPortUDP method in the codebase with corrected regex.
rg --type go 'AddPortUDP\('

Length of output: 100


61-63: LGTM! But verify the usage of PortForwardTCP.

The change to use n.instance.name instead of n.instance.k8sName is approved. Ensure that all usages of PortForwardTCP correctly handle the new naming scheme.

Run the following script to verify the usage of PortForwardTCP:

Verification successful

No issues found with PortForwardTCP usage.

The PortForwardTCP method is not called elsewhere in the codebase, so the change to use n.instance.name instead of n.instance.k8sName does not affect other parts of the code. The method appears to be unused or intended for future use.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `PortForwardTCP` handle the new naming scheme correctly.

# Test: Search for the `PortForwardTCP` method usage. Expect: Correct handling of the new naming scheme.
rg --type go -A 5 $'PortForwardTCP'

Length of output: 608


Script:

#!/bin/bash
# Description: Search for all usages of the `PortForwardTCP` method across the codebase.

# Test: Find all instances where `PortForwardTCP` is called.
rg --type go 'PortForwardTCP('

Length of output: 113


Script:

#!/bin/bash
# Description: Search for all usages of the `PortForwardTCP` method across the codebase.

# Test: Find all instances where `PortForwardTCP` is called, with escaped parenthesis.
rg --type go 'PortForwardTCP\('

Length of output: 136

pkg/instance/execution.go (10)

43-56: LGTM!

The changes correctly update the references to the instance name.


76-76: LGTM!

The changes correctly update the references to the instance name.


Line range hint 88-122: LGTM!

The changes correctly update the references to the instance name.


135-135: LGTM!

The changes correctly update the references to the instance name.


147-147: LGTM!

The changes correctly update the references to the instance name.


Line range hint 160-169: LGTM!

The changes correctly update the references to the instance name.


188-194: LGTM!

The changes correctly update the references to the instance name.


213-217: LGTM!

The changes correctly update the references to the instance name.


225-230: LGTM!

The changes correctly update the references to the instance name.


247-264: LGTM!

The changes correctly update the references to the instance name.

pkg/instance/errors.go (2)

220-220: LGTM!

The error message is clear and specific, improving error handling.


221-221: LGTM!

The error message is clear and specific, improving error handling.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between ec6333b and 21e7e7d.

Files selected for processing (8)
  • pkg/instance/instance.go (8 hunks)
  • pkg/instance/sidecars.go (4 hunks)
  • pkg/sidecars/netshaper/netshaper.go (2 hunks)
  • pkg/sidecars/netshaper/netshaper_test.go (5 hunks)
  • pkg/sidecars/observability/obsy.go (2 hunks)
  • pkg/sidecars/observability/obsy_test.go (4 hunks)
  • pkg/sidecars/tshark/tshark.go (5 hunks)
  • pkg/sidecars/tshark/tshark_test.go (4 hunks)
Files skipped from review as they are similar to previous changes (6)
  • pkg/sidecars/netshaper/netshaper.go
  • pkg/sidecars/netshaper/netshaper_test.go
  • pkg/sidecars/observability/obsy.go
  • pkg/sidecars/observability/obsy_test.go
  • pkg/sidecars/tshark/tshark.go
  • pkg/sidecars/tshark/tshark_test.go
Additional comments not posted (8)
pkg/instance/sidecars.go (4)

12-12: Refactor: Update Initialize method signature for better dependency management.

The change to use a pointer for sysDeps in the Initialize method is a good practice as it avoids unnecessary copying of the structure, potentially improving performance and memory usage.


15-15: Enhancement: Improved error handling in Clone method.

Replacing CloneWithSuffix with Clone that returns an error provides a clearer indication of failure during the cloning process, aligning with robust error handling practices.


46-46: Enhancement: Prepend instance name to avoid sidecar name collisions.

This modification ensures that sidecar names are unique by prepending the instance name, which is crucial for managing multiple instances without naming conflicts.


97-108: Refactor: Update clone method to handle errors.

The updated clone method now returns an error along with the cloned sidecars, which is a significant improvement in error handling. This ensures that any issues during the cloning process are not silently ignored, enhancing the reliability of the operation.

pkg/instance/instance.go (4)

26-26: Refactor: Use pointer for SystemDependencies for efficient memory management.

Changing SystemDependencies to a pointer is a positive change, as it allows for more efficient memory usage and the possibility of sharing dependencies across instances.


46-56: Enhancement: Update New function to accept system dependencies as a pointer.

This change aligns with the updated SystemDependencies field and helps in managing dependencies more effectively by avoiding unnecessary copies.


110-123: Feature: Implement SetName method for robust name management.

The SetName method handles name sanitization and uniqueness checks, which is crucial for preventing naming conflicts and ensuring consistency across instances.


Line range hint 134-179: Refactor: Update cloning methods to improve name management and error handling.

The changes to CloneWithSuffix and CloneWithName methods ensure that instance names are managed correctly and errors during the cloning process are properly handled, enhancing the robustness of instance management.

MSevey
MSevey previously approved these changes Sep 3, 2024
@mojtaba-esk mojtaba-esk changed the title chore: use unique static names for instances chore!: use unique static names for instances Sep 5, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 21e7e7d and 1017ae8.

Files selected for processing (8)
  • pkg/instance/build.go (1 hunks)
  • pkg/instance/execution.go (20 hunks)
  • pkg/instance/network.go (9 hunks)
  • pkg/instance/resources.go (3 hunks)
  • pkg/instance/sidecars.go (4 hunks)
  • pkg/instance/storage.go (4 hunks)
  • pkg/knuu/knuu.go (2 hunks)
  • pkg/sidecars/netshaper/netshaper.go (2 hunks)
Files skipped from review due to trivial changes (2)
  • pkg/instance/network.go
  • pkg/instance/storage.go
Files skipped from review as they are similar to previous changes (5)
  • pkg/instance/build.go
  • pkg/instance/execution.go
  • pkg/instance/resources.go
  • pkg/knuu/knuu.go
  • pkg/sidecars/netshaper/netshaper.go
Additional comments not posted (4)
pkg/instance/sidecars.go (4)

12-17: Refactor: Updated SidecarManager interface to improve instance naming and error handling.

The changes to the SidecarManager interface include:

  • Adding a namePrefix parameter to the Initialize method to prevent name collisions.
  • Changing the CloneWithSuffix method to Clone, which now returns an error along with the SidecarManager. This change enhances error handling by allowing errors during the cloning process to be propagated.

These modifications align with the PR objectives to ensure unique and static instance names and improve error handling.


48-48: Enhancement: Utilize new Initialize method in Add function.

The Add method now uses the updated Initialize method, passing the instance's name as the namePrefix. This change ensures that sidecars are named in a way that avoids collisions, which is crucial for managing multiple instances effectively.


87-87: Error Handling: Improved error propagation in applyFunctionToSidecars.

The applyFunctionToSidecars method now wraps errors from sidecar operations, providing more detailed error information. This enhancement is part of the broader effort to improve error handling across the system.


102-113: Refactor: Updated cloning process in sidecars struct.

The clone method in the sidecars struct has been refactored to:

  • Use the new Clone method of the SidecarManager, which includes error handling.
  • Return an error if any sidecar cloning fails, ensuring that error information is not lost.

This change is part of the PR's goal to enhance error handling and ensure the uniqueness of instance names during cloning operations.

@mojtaba-esk mojtaba-esk removed this from the v0.16.0 milestone Sep 11, 2024
smuu
smuu previously approved these changes Sep 18, 2024
pkg/system/dependencies.go Show resolved Hide resolved
@mojtaba-esk mojtaba-esk enabled auto-merge (squash) September 18, 2024 07:50
@mojtaba-esk mojtaba-esk requested a review from MSevey September 19, 2024 06:23
pkg/instance/instance.go Outdated Show resolved Hide resolved
tty47
tty47 previously approved these changes Sep 19, 2024
Copy link
Contributor

@tty47 tty47 left a comment

Choose a reason for hiding this comment

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

nice one! 🔥

@mojtaba-esk mojtaba-esk dismissed stale reviews from tty47 and smuu via 7858cd5 September 19, 2024 08:14
@mojtaba-esk mojtaba-esk merged commit 5ab858d into main Sep 19, 2024
9 of 11 checks passed
@mojtaba-esk mojtaba-esk deleted the mojtaba/527-528-use-static-names-for-instances branch September 19, 2024 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
4 participants