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

Add abilty to config cache size for dnsmasq addon #3601

Merged
merged 3 commits into from
May 24, 2024

Conversation

dabacon
Copy link
Contributor

@dabacon dabacon commented May 18, 2024

This adds the ability to set the cache size for the Dnsmasq addon.

The default cache size is 150, which can be too small when one has a lot of local servers and devices constantly calling out to cloud services. Here is a user request for adjusting the cache size https://community.home-assistant.io/t/dnsmasq-increase-cache-size/382020

Summary by CodeRabbit

  • New Features

    • Introduced a new option cache_size allowing users to set the size of the Dnsmasq cache, enhancing caching performance.
  • Updates

    • Upgraded the underlying system to Alpine 3.19 for improved stability and performance.

Copy link

@home-assistant home-assistant bot left a comment

Choose a reason for hiding this comment

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

Hi @dabacon

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@home-assistant home-assistant bot marked this pull request as draft May 18, 2024 16:29
@dabacon dabacon marked this pull request as ready for review May 18, 2024 16:33
Copy link
Contributor

coderabbitai bot commented May 24, 2024

Walkthrough

Walkthrough

The dnsmasq project has undergone version update from 1.7.0 to 1.8.0, introducing a new cache_size option for configuring DNS cache size, enhancing caching performance. Additionally, the system has been upgraded to Alpine 3.19. These changes are reflected across various documentation and configuration files.

Changes

File Path Change Summary
dnsmasq/CHANGELOG.md Version 1.8.0: Added cache_size option. Version 1.7.0: Updated to Alpine 3.19.
dnsmasq/DOCS.md Added cache_size option with details on purpose and default value.
dnsmasq/config.yaml Updated to 1.8.0, added cache_size with default 150, and updated schema.
dnsmasq/rootfs/usr/share/tempio/dnsmasq.config Introduced cache={{ .cache_size }} for dynamic cache size configuration.

Tip

New Features and Improvements

Review Settings

Introduced new personality profiles for code reviews. Users can now select between "Chill" and "Assertive" review tones to tailor feedback styles according to their preferences. The "Assertive" profile posts more comments and nitpicks the code more aggressively, while the "Chill" profile is more relaxed and posts fewer comments.

AST-based Instructions

CodeRabbit offers customizing reviews based on the Abstract Syntax Tree (AST) pattern matching. Read more about AST-based instructions in the documentation.

Community-driven AST-based Rules

We are kicking off a community-driven initiative to create and share AST-based rules. Users can now contribute their AST-based rules to detect security vulnerabilities, code smells, and anti-patterns. Please see the ast-grep-essentials repository for more information.

New Static Analysis Tools

We are continually expanding our support for static analysis tools. We have added support for biome, hadolint, and ast-grep. Update the settings in your .coderabbit.yaml file or head over to the settings page to enable or disable the tools you want to use.

Tone Settings

Users can now customize CodeRabbit to review code in the style of their favorite characters or personalities. Here are some of our favorite examples:

  • Mr. T: "You must talk like Mr. T in all your code reviews. I pity the fool who doesn't!"
  • Pirate: "Arr, matey! Ye must talk like a pirate in all yer code reviews. Yarrr!"
  • Snarky: "You must be snarky in all your code reviews. Snark, snark, snark!"

Revamped Settings Page

We have redesigned the settings page for a more intuitive layout, enabling users to find and adjust settings quickly. This change was long overdue; it not only improves the user experience but also allows our development team to add more settings in the future with ease. Going forward, the changes to .coderabbit.yaml will be reflected in the settings page, and vice versa.

Miscellaneous

  • Turn off free summarization: You can switch off free summarization of PRs opened by users not on a paid plan using the enable_free_tier setting.
  • Knowledge-base scope: You can now set the scope of the knowledge base to either the repository (local) or the organization (global) level using the knowledge_base setting. In addition, you can specify Jira project keys and Linear team keys to limit the knowledge base scope for those integrations.
  • High-level summary placement: You can now customize the location of the high-level summary in the PR description using the high_level_summary_placeholder setting (default @coderabbitai summary).
  • Revamped request changes workflow: You can now configure CodeRabbit to auto-approve or request changes on PRs based on the review feedback using the request_changes_workflow setting.

Recent Review Details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

Commits Files that changed from the base of the PR and between ba712fb and 6c3d3c5.
Files selected for processing (1)
  • dnsmasq/DOCS.md (1 hunks)
Additional Context Used
LanguageTool (23)
dnsmasq/DOCS.md (23)

Near line 1: Possible spelling mistake found.
Context: # Home Assistant Add-on: Dnsmasq ## Installation Follow these steps to...


Near line 8: Possible spelling mistake found.
Context: ...ons** -> Add-on store. 2. Find the "Dnsmasq" add-on and click it. 3. Click on the "...


Near line 20: Possible spelling mistake found.
Context: ...tart the add-on. ## Configuration The Dnsmasq add-on can be tweaked to your likings. ...


Near line 47: Did you mean: “By default,”?
Context: ...t be handled locally, are forwarded to. By default it is configured to have Google's publi...


Near line 50: The abbreviation “e.g.” (= for example) requires two periods.
Context: ...ort can be specified using # separator, eg. "192.168.1.2#1053" ### Option: `forw...


Near line 63: Did you mean the adverb “too”?
Context: ... to forward the request for this domain to. ### Option: hosts (optional) This ...


Near line 67: Possible missing article found.
Context: ...nal) This option allows you to provide local static answer for your DNS server. Thi...


Near line 72: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...ser.duckdns.orgto resolve directly to a internal IP address, e.g.,192.168.1.1...


Near line 73: This phrase is redundant. Consider using “outside”.
Context: ...IP address, e.g., 192.168.1.10. While outside of this network, it would resolve normally...


Near line 80: Possible spelling mistake found.
Context: ...# Option: hosts.host The hostname or domainname to resolve locally. #### Option: `host...


Near line 84: Possible spelling mistake found.
Context: ...#### Option: hosts.ip The IP address Dnsmasq should respond with in its DNS answer. ...


Near line 84: Did you mean the adverb/preposition “within”?
Context: ... The IP address Dnsmasq should respond with in its DNS answer. ### Option: services...


Near line 88: Possible spelling mistake found.
Context: ...nal) This option allows you to provide srv-host records. #### Option: services.srv ...


Near line 110: Possible spelling mistake found.
Context: ...he weight for the service. ### Option: cnames (optional) This option allows you to ...


Near line 112: Possible spelling mistake found.
Context: ...nal) This option allows you to provide cname records. #### Option: cnames.name T...


Near line 120: Possible spelling mistake found.
Context: ...mes from DHCP or /etc/hosts. Give host "bert" another name, bertrand cname=bertand,b...


Near line 120: Possible spelling mistake found.
Context: ...c/hosts. Give host "bert" another name, bertrand cname=bertand,bert ### Option: `log_qu...


Near line 120: Possible spelling mistake found.
Context: ...Give host "bert" another name, bertrand cname=bertand,bert ### Option: log_queries...


Near line 120: Possible spelling mistake found.
Context: ...ost "bert" another name, bertrand cname=bertand,bert ### Option: log_queries (requir...


Near line 120: Possible spelling mistake found.
Context: ...t" another name, bertrand cname=bertand,bert ### Option: log_queries (required) ...


Near line 128: Possible spelling mistake found.
Context: ...ion: cache_size Sets the size of the Dnsmasq cache. The default setting is 150. If t...


Near line 138: Possible spelling mistake found.
Context: ...unity Forum][forum]. - Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] ...


Near line 138: Possible spelling mistake found.
Context: ...n the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] In case you've found a bug, p...

Markdownlint (2)
dnsmasq/DOCS.md (2)

122: Expected: 0 or 2; Actual: 1
Trailing spaces


146: Unused link or image reference definition: "repository"
Link and image reference definitions should be needed

Path-based Instructions (1)
dnsmasq/DOCS.md (1)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'
  • Use sentence-style capitalization also in headers

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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration 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

@sairon sairon left a comment

Choose a reason for hiding this comment

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

Looks good, 150 is indeed the default in dnsmasq itself, so it wouldn't introduce any breaking changes.

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

dnsmasq/DOCS.md Outdated Show resolved Hide resolved
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@sairon sairon merged commit 8e5480d into home-assistant:master May 24, 2024
5 checks passed
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: 1

Outside diff range and nitpick comments (4)
dnsmasq/DOCS.md (4)

Line range hint 47-47: Correct the phrase for clarity and consistency.

- By default it is configured to have Google's public DNS servers: `"8.8.8.8", "8.8.4.4"`.
+ By default, it is configured to use Google's public DNS servers: `"8.8.8.8", "8.8.4.4"`.

Adding a comma after "By default" improves the readability, and changing "have" to "use" makes the sentence more direct.


Line range hint 50-50: Correct abbreviation usage.

- Port can be specified using # separator, eg. `"192.168.1.2#1053"`
+ Port can be specified using # separator, e.g., `"192.168.1.2#1053"`

The abbreviation "e.g." should be followed by a comma for correct usage.


Line range hint 72-72: Use the correct indefinite article.

- to resolve directly to a internal IP address, e.g., `192.168.1.10`.
+ to resolve directly to an internal IP address, e.g., `192.168.1.10`.

"An" should be used instead of "a" before words that start with a vowel sound.


Line range hint 73-73: Simplify the phrase for clarity.

- While outside of this network, it would resolve normally.
+ Outside this network, it resolves normally.

This change removes redundancy and makes the instruction more direct.

Comment on lines +126 to +129
### Option: `cache_size`

Sets the size of the Dnsmasq cache. The default setting is 150. If this is set to 0 this disables caching. Note that huge cache sizes can create performance problems.

Copy link
Contributor

Choose a reason for hiding this comment

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

Clarify the implications of setting cache_size to 0.

- If this is set to 0 this disables caching.
+ Setting this to 0 disables caching.

This change makes the sentence more direct and authoritative, aligning with the documentation style guidelines.


Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
### Option: `cache_size`
Sets the size of the Dnsmasq cache. The default setting is 150. If this is set to 0 this disables caching. Note that huge cache sizes can create performance problems.
### Option: `cache_size`
Sets the size of the Dnsmasq cache. The default setting is 150. Setting this to 0 disables caching. Note that huge cache sizes can create performance problems.

@ScottG489
Copy link

The option is cache-size not cache.

Are we not even spinning up the add-on for a sanity check as part of our testing process?

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.

None yet

3 participants