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

dnscrypt-proxy2: base settings on example config #82584

Merged
merged 2 commits into from Dec 15, 2020

Conversation

Atemu
Copy link
Member

@Atemu Atemu commented Mar 14, 2020

Motivation for this change

If enabled, dnscrypt-proxy2 service fails to start because it has no valid config file by default which is not a great user experience.
On top of that, if you integrated the example config provided by the upstream, there is no simple way to enhance it because settings are overridden if you use configFile (you'd have to modify the configFile).

This change makes it so that the module takes the example config provided by the upstream as a base on top of which the user-specified settings are applied and adds an option to disable this behaviour in case you want to roll your own config from scratch.

The option name is a bit long but it's the best I could come up with, suggestions welcome.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@stale
Copy link

stale bot commented Sep 15, 2020

Hello, I'm a bot and I thank you in the name of the community for your contributions.

Nixpkgs is a busy repository, and unfortunately sometimes PRs get left behind for too long. Nevertheless, we'd like to help committers reach the PRs that are still important. This PR has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.

If this is still important to you and you'd like to remove the stale label, we ask that you leave a comment. Your comment can be as simple as "still important to me". But there's a bit more you can do:

If you received an approval by an unprivileged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using Git blame on the relevant files, or via GitHub's web interface. You can see if someone's a member of the nixpkgs-committers team, by hovering with the mouse over their username on the web interface, or by searching them directly on the list.

If your PR wasn't reviewed at all, it might help to find someone who's perhaps a user of the package or module you are changing, or alternatively, ask once more for a review by the maintainer of the package/module this is about. If you don't know any, you can use Git blame on the relevant files, or GitHub's web interface to find someone who touched the relevant files in the past.

If your PR has had reviews and nevertheless got stale, make sure you've responded to all of the reviewer's requests / questions. Usually when PR authors show responsibility and dedication, reviewers (privileged or not) show dedication as well. If you've pushed a change, it's possible the reviewer wasn't notified about your push via email, so you can always officially request them for a review, or just @ mention them and say you've addressed their comments.

Lastly, you can always ask for help at our Discourse Forum, or more specifically, at this thread or at #nixos' IRC channel.

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Sep 15, 2020
@Atemu Atemu marked this pull request as draft September 15, 2020 21:31
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Sep 15, 2020
@Atemu Atemu marked this pull request as ready for review November 4, 2020 20:00
@Atemu
Copy link
Member Author

Atemu commented Nov 30, 2020

/marvin opt-in
/status needs_reviewer

@marvin-mk2
Copy link

marvin-mk2 bot commented Nov 30, 2020

Hi! I'm an experimental bot. My goal is to guide this PR through its stages, hopefully ending with a merge. You can read up on the usage here.

Copy link
Contributor

@bennyandresen bennyandresen left a comment

Choose a reason for hiding this comment

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

LGTM

/me needs_merger

@symphorien
Copy link
Member

Can you add release notes regarding the new defaults ?

Suggestion for the new option name: upstreamDefaults or useUpstreamDefaults. But if you prefer the current name, fine by me.

@symphorien
Copy link
Member

/status needs_work

@Atemu
Copy link
Member Author

Atemu commented Dec 2, 2020

That option name sounds a lot better, changed.

Release note added and tested to look fine.

FYI, I think it's awaiting_changes. Though an alias like that probably wouldn't be a bad idea @timokau.

nixos/modules/services/networking/dnscrypt-proxy2.nix Outdated Show resolved Hide resolved
nixos/doc/manual/release-notes/rl-2103.xml Outdated Show resolved Hide resolved
nixos/doc/manual/release-notes/rl-2103.xml Outdated Show resolved Hide resolved
nixos/doc/manual/release-notes/rl-2103.xml Outdated Show resolved Hide resolved
@timokau
Copy link
Member

timokau commented Dec 4, 2020

FYI, I think it's awaiting_changes. Though an alias like that probably wouldn't be a bad idea

That's how it used to work, and probably what @symphorien remembers. Related: timokau/marvin-mk2#31

@bennyandresen
Copy link
Contributor

You probably want to squash those commits.

Looks good to me, but I'm deferring to @symphorien.

@Atemu
Copy link
Member Author

Atemu commented Dec 10, 2020

Yup, hence the "fixup!"s in the commit messages.

I'll fixup and rebase when the reviews are done. Force-pushes cloud a PR's progress as you can't easily track changes between them, so I try to avoid them.

@symphorien
Copy link
Member

looks good to me
you can squash the commits and I'll merge if ofborg is happy.

Dnscrypt-proxy needs some options to be set before it can do anything useful.

Currently, we only apply what the user configured which, by default, is nothing.

This leads to the dnscrypt-proxy2 service failing to start when you only set
`enable = true;` which is not a great user experience.

This patch makes the module take the example config from the upstream repo as a
base on top of which the user-specified settings are applied (it contains sane
defaults).

An option has been added to restore the old behaviour.
@marvin-mk2
Copy link

marvin-mk2 bot commented Dec 15, 2020

Reminder: Please review!

This Pull Request is awaiting review. If you are the assigned reviewer, please have a look. Try to find another reviewer if necessary. If you can't, please say so. If the status is not accurate, please change it. If nothing happens, this PR will be put back in the needs_reviewer queue in one day.

@symphorien
Copy link
Member

@GrahamcOfBorg test dnscrypt-proxy2

Copy link
Member

@symphorien symphorien left a comment

Choose a reason for hiding this comment

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

will merge when ofborg is happy

@symphorien symphorien merged commit 824d2c9 into NixOS:master Dec 15, 2020
@Atemu Atemu deleted the dnscrypt-default-config branch December 16, 2020 06:13
Atemu added a commit to Atemu/nixos-config that referenced this pull request Dec 24, 2020
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

5 participants