We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
rename /etc/letsencrypt/configs to /etc/letsencrypt/renewal
Since it doesn't contain anything except renewal configuration files, people will probably find the current name confusing.


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `letsencrypt/constants.py`
Content:
```
1 """Let's Encrypt constants."""
2 import os
3 import logging
4 
5 from acme import challenges
6 
7 
8 SETUPTOOLS_PLUGINS_ENTRY_POINT = "letsencrypt.plugins"
9 """Setuptools entry point group name for plugins."""
10 
11 CLI_DEFAULTS = dict(
12     config_files=[
13         "/etc/letsencrypt/cli.ini",
14         # http://freedesktop.org/wiki/Software/xdg-user-dirs/
15         os.path.join(os.environ.get("XDG_CONFIG_HOME", "~/.config"),
16                      "letsencrypt", "cli.ini"),
17     ],
18     verbose_count=-(logging.WARNING / 10),
19     server="https://acme-staging.api.letsencrypt.org/directory",
20     rsa_key_size=2048,
21     rollback_checkpoints=1,
22     config_dir="/etc/letsencrypt",
23     work_dir="/var/lib/letsencrypt",
24     logs_dir="/var/log/letsencrypt",
25     no_verify_ssl=False,
26     dvsni_port=challenges.DVSNI.PORT,
27 
28     auth_cert_path="./cert.pem",
29     auth_chain_path="./chain.pem",
30 )
31 """Defaults for CLI flags and `.IConfig` attributes."""
32 
33 
34 RENEWER_DEFAULTS = dict(
35     renewer_enabled="yes",
36     renew_before_expiry="30 days",
37     deploy_before_expiry="20 days",
38 )
39 """Defaults for renewer script."""
40 
41 
42 EXCLUSIVE_CHALLENGES = frozenset([frozenset([
43     challenges.DVSNI, challenges.SimpleHTTP])])
44 """Mutually exclusive challenges."""
45 
46 
47 ENHANCEMENTS = ["redirect", "http-header", "ocsp-stapling", "spdy"]
48 """List of possible :class:`letsencrypt.interfaces.IInstaller`
49 enhancements.
50 
51 List of expected options parameters:
52 - redirect: None
53 - http-header: TODO
54 - ocsp-stapling: TODO
55 - spdy: TODO
56 
57 """
58 
59 ARCHIVE_DIR = "archive"
60 """Archive directory, relative to `IConfig.config_dir`."""
61 
62 CONFIG_DIRS_MODE = 0o755
63 """Directory mode for ``.IConfig.config_dir`` et al."""
64 
65 ACCOUNTS_DIR = "accounts"
66 """Directory where all accounts are saved."""
67 
68 BACKUP_DIR = "backups"
69 """Directory (relative to `IConfig.work_dir`) where backups are kept."""
70 
71 CERT_DIR = "certs"
72 """See `.IConfig.cert_dir`."""
73 
74 CERT_KEY_BACKUP_DIR = "keys-certs"
75 """Directory where all certificates and keys are stored (relative to
76 `IConfig.work_dir`). Used for easy revocation."""
77 
78 IN_PROGRESS_DIR = "IN_PROGRESS"
79 """Directory used before a permanent checkpoint is finalized (relative to
80 `IConfig.work_dir`)."""
81 
82 KEY_DIR = "keys"
83 """Directory (relative to `IConfig.config_dir`) where keys are saved."""
84 
85 LIVE_DIR = "live"
86 """Live directory, relative to `IConfig.config_dir`."""
87 
88 TEMP_CHECKPOINT_DIR = "temp_checkpoint"
89 """Temporary checkpoint directory (relative to `IConfig.work_dir`)."""
90 
91 RENEWAL_CONFIGS_DIR = "configs"
92 """Renewal configs directory, relative to `IConfig.config_dir`."""
93 
94 RENEWER_CONFIG_FILENAME = "renewer.conf"
95 """Renewer config file name (relative to `IConfig.config_dir`)."""
96
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/letsencrypt/constants.py b/letsencrypt/constants.py
--- a/letsencrypt/constants.py
+++ b/letsencrypt/constants.py
@@ -88,7 +88,7 @@
 TEMP_CHECKPOINT_DIR = "temp_checkpoint"
 """Temporary checkpoint directory (relative to `IConfig.work_dir`)."""
 
-RENEWAL_CONFIGS_DIR = "configs"
+RENEWAL_CONFIGS_DIR = "renewal"
 """Renewal configs directory, relative to `IConfig.config_dir`."""
 
 RENEWER_CONFIG_FILENAME = "renewer.conf"

{"golden_diff": "diff --git a/letsencrypt/constants.py b/letsencrypt/constants.py\n--- a/letsencrypt/constants.py\n+++ b/letsencrypt/constants.py\n@@ -88,7 +88,7 @@\n TEMP_CHECKPOINT_DIR = \"temp_checkpoint\"\n \"\"\"Temporary checkpoint directory (relative to `IConfig.work_dir`).\"\"\"\n \n-RENEWAL_CONFIGS_DIR = \"configs\"\n+RENEWAL_CONFIGS_DIR = \"renewal\"\n \"\"\"Renewal configs directory, relative to `IConfig.config_dir`.\"\"\"\n \n RENEWER_CONFIG_FILENAME = \"renewer.conf\"\n", "issue": "rename /etc/letsencrypt/configs to /etc/letsencrypt/renewal\nSince it doesn't contain anything except renewal configuration files, people will probably find the current name confusing.\n\n", "before_files": [{"content": "\"\"\"Let's Encrypt constants.\"\"\"\nimport os\nimport logging\n\nfrom acme import challenges\n\n\nSETUPTOOLS_PLUGINS_ENTRY_POINT = \"letsencrypt.plugins\"\n\"\"\"Setuptools entry point group name for plugins.\"\"\"\n\nCLI_DEFAULTS = dict(\n    config_files=[\n        \"/etc/letsencrypt/cli.ini\",\n        # http://freedesktop.org/wiki/Software/xdg-user-dirs/\n        os.path.join(os.environ.get(\"XDG_CONFIG_HOME\", \"~/.config\"),\n                     \"letsencrypt\", \"cli.ini\"),\n    ],\n    verbose_count=-(logging.WARNING / 10),\n    server=\"https://acme-staging.api.letsencrypt.org/directory\",\n    rsa_key_size=2048,\n    rollback_checkpoints=1,\n    config_dir=\"/etc/letsencrypt\",\n    work_dir=\"/var/lib/letsencrypt\",\n    logs_dir=\"/var/log/letsencrypt\",\n    no_verify_ssl=False,\n    dvsni_port=challenges.DVSNI.PORT,\n\n    auth_cert_path=\"./cert.pem\",\n    auth_chain_path=\"./chain.pem\",\n)\n\"\"\"Defaults for CLI flags and `.IConfig` attributes.\"\"\"\n\n\nRENEWER_DEFAULTS = dict(\n    renewer_enabled=\"yes\",\n    renew_before_expiry=\"30 days\",\n    deploy_before_expiry=\"20 days\",\n)\n\"\"\"Defaults for renewer script.\"\"\"\n\n\nEXCLUSIVE_CHALLENGES = frozenset([frozenset([\n    challenges.DVSNI, challenges.SimpleHTTP])])\n\"\"\"Mutually exclusive challenges.\"\"\"\n\n\nENHANCEMENTS = [\"redirect\", \"http-header\", \"ocsp-stapling\", \"spdy\"]\n\"\"\"List of possible :class:`letsencrypt.interfaces.IInstaller`\nenhancements.\n\nList of expected options parameters:\n- redirect: None\n- http-header: TODO\n- ocsp-stapling: TODO\n- spdy: TODO\n\n\"\"\"\n\nARCHIVE_DIR = \"archive\"\n\"\"\"Archive directory, relative to `IConfig.config_dir`.\"\"\"\n\nCONFIG_DIRS_MODE = 0o755\n\"\"\"Directory mode for ``.IConfig.config_dir`` et al.\"\"\"\n\nACCOUNTS_DIR = \"accounts\"\n\"\"\"Directory where all accounts are saved.\"\"\"\n\nBACKUP_DIR = \"backups\"\n\"\"\"Directory (relative to `IConfig.work_dir`) where backups are kept.\"\"\"\n\nCERT_DIR = \"certs\"\n\"\"\"See `.IConfig.cert_dir`.\"\"\"\n\nCERT_KEY_BACKUP_DIR = \"keys-certs\"\n\"\"\"Directory where all certificates and keys are stored (relative to\n`IConfig.work_dir`). Used for easy revocation.\"\"\"\n\nIN_PROGRESS_DIR = \"IN_PROGRESS\"\n\"\"\"Directory used before a permanent checkpoint is finalized (relative to\n`IConfig.work_dir`).\"\"\"\n\nKEY_DIR = \"keys\"\n\"\"\"Directory (relative to `IConfig.config_dir`) where keys are saved.\"\"\"\n\nLIVE_DIR = \"live\"\n\"\"\"Live directory, relative to `IConfig.config_dir`.\"\"\"\n\nTEMP_CHECKPOINT_DIR = \"temp_checkpoint\"\n\"\"\"Temporary checkpoint directory (relative to `IConfig.work_dir`).\"\"\"\n\nRENEWAL_CONFIGS_DIR = \"configs\"\n\"\"\"Renewal configs directory, relative to `IConfig.config_dir`.\"\"\"\n\nRENEWER_CONFIG_FILENAME = \"renewer.conf\"\n\"\"\"Renewer config file name (relative to `IConfig.config_dir`).\"\"\"\n", "path": "letsencrypt/constants.py"}], "after_files": [{"content": "\"\"\"Let's Encrypt constants.\"\"\"\nimport os\nimport logging\n\nfrom acme import challenges\n\n\nSETUPTOOLS_PLUGINS_ENTRY_POINT = \"letsencrypt.plugins\"\n\"\"\"Setuptools entry point group name for plugins.\"\"\"\n\nCLI_DEFAULTS = dict(\n    config_files=[\n        \"/etc/letsencrypt/cli.ini\",\n        # http://freedesktop.org/wiki/Software/xdg-user-dirs/\n        os.path.join(os.environ.get(\"XDG_CONFIG_HOME\", \"~/.config\"),\n                     \"letsencrypt\", \"cli.ini\"),\n    ],\n    verbose_count=-(logging.WARNING / 10),\n    server=\"https://acme-staging.api.letsencrypt.org/directory\",\n    rsa_key_size=2048,\n    rollback_checkpoints=1,\n    config_dir=\"/etc/letsencrypt\",\n    work_dir=\"/var/lib/letsencrypt\",\n    logs_dir=\"/var/log/letsencrypt\",\n    no_verify_ssl=False,\n    dvsni_port=challenges.DVSNI.PORT,\n\n    auth_cert_path=\"./cert.pem\",\n    auth_chain_path=\"./chain.pem\",\n)\n\"\"\"Defaults for CLI flags and `.IConfig` attributes.\"\"\"\n\n\nRENEWER_DEFAULTS = dict(\n    renewer_enabled=\"yes\",\n    renew_before_expiry=\"30 days\",\n    deploy_before_expiry=\"20 days\",\n)\n\"\"\"Defaults for renewer script.\"\"\"\n\n\nEXCLUSIVE_CHALLENGES = frozenset([frozenset([\n    challenges.DVSNI, challenges.SimpleHTTP])])\n\"\"\"Mutually exclusive challenges.\"\"\"\n\n\nENHANCEMENTS = [\"redirect\", \"http-header\", \"ocsp-stapling\", \"spdy\"]\n\"\"\"List of possible :class:`letsencrypt.interfaces.IInstaller`\nenhancements.\n\nList of expected options parameters:\n- redirect: None\n- http-header: TODO\n- ocsp-stapling: TODO\n- spdy: TODO\n\n\"\"\"\n\nARCHIVE_DIR = \"archive\"\n\"\"\"Archive directory, relative to `IConfig.config_dir`.\"\"\"\n\nCONFIG_DIRS_MODE = 0o755\n\"\"\"Directory mode for ``.IConfig.config_dir`` et al.\"\"\"\n\nACCOUNTS_DIR = \"accounts\"\n\"\"\"Directory where all accounts are saved.\"\"\"\n\nBACKUP_DIR = \"backups\"\n\"\"\"Directory (relative to `IConfig.work_dir`) where backups are kept.\"\"\"\n\nCERT_DIR = \"certs\"\n\"\"\"See `.IConfig.cert_dir`.\"\"\"\n\nCERT_KEY_BACKUP_DIR = \"keys-certs\"\n\"\"\"Directory where all certificates and keys are stored (relative to\n`IConfig.work_dir`). Used for easy revocation.\"\"\"\n\nIN_PROGRESS_DIR = \"IN_PROGRESS\"\n\"\"\"Directory used before a permanent checkpoint is finalized (relative to\n`IConfig.work_dir`).\"\"\"\n\nKEY_DIR = \"keys\"\n\"\"\"Directory (relative to `IConfig.config_dir`) where keys are saved.\"\"\"\n\nLIVE_DIR = \"live\"\n\"\"\"Live directory, relative to `IConfig.config_dir`.\"\"\"\n\nTEMP_CHECKPOINT_DIR = \"temp_checkpoint\"\n\"\"\"Temporary checkpoint directory (relative to `IConfig.work_dir`).\"\"\"\n\nRENEWAL_CONFIGS_DIR = \"renewal\"\n\"\"\"Renewal configs directory, relative to `IConfig.config_dir`.\"\"\"\n\nRENEWER_CONFIG_FILENAME = \"renewer.conf\"\n\"\"\"Renewer config file name (relative to `IConfig.config_dir`).\"\"\"\n", "path": "letsencrypt/constants.py"}]}