From b34246cf292896889bb64e33b6ff4f40bb34c053 Mon Sep 17 00:00:00 2001
From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
Date: Thu, 26 Oct 2023 10:18:18 +0200
Subject: [PATCH] docs: rewrite new package manager questionnaire (#25346)

---
 .../new-package-manager-template.md           | 133 ++++++++++++------
 1 file changed, 93 insertions(+), 40 deletions(-)

diff --git a/docs/development/new-package-manager-template.md b/docs/development/new-package-manager-template.md
index 61182c2370..919f0471de 100644
--- a/docs/development/new-package-manager-template.md
+++ b/docs/development/new-package-manager-template.md
@@ -1,106 +1,159 @@
 # New package manager questionnaire
 
-**Did you read our documentation on adding a package manager?**
+Did you read our documentation on adding a package manager?
 
 - [ ] I've read the [adding a package manager](adding-a-package-manager.md) documentation.
 
 ## Basics
 
-### Name of package manager
+### What's the name of the package manager?
 
-### What language does this support?
+### What language(s) does this package manager support?
 
 ### How popular is this package manager?
 
 ### Does this language have other (competing?) package managers?
 
-- [ ] Yes (give names)
-- [ ] No
+- [ ] Yes (give names).
+- [ ] No.
 
----
+### What are the big selling points for this package manager?
 
-## Package File Detection
+Explain how this package manager is different from existing ones.
 
-### What type of package files and names does it use?
+## Detecting package files
 
-### What [fileMatch](../usage/configuration-options.md#filematch) pattern(s) should be used?
+### What kind of package files, and names, does this package manager use?
 
-### Is it likely that many users would need to extend this pattern for custom file names?
+### Which [`fileMatch`](../usage/configuration-options.md#filematch) pattern(s) should Renovate use?
 
-- [ ] Yes
-- [ ] No
+### Do many users need to extend the [`fileMatch`](../usage/configuration-options.md#filematch) pattern for custom file names?
 
-### Is the fileMatch pattern likely to get many "false hits" for files that have nothing to do with package management?
+- [ ] Yes, provide details.
+- [ ] No.
 
----
+### Is the [`fileMatch`](../usage/configuration-options.md#filematch) pattern going to get many "false hits" for files that have nothing to do with package management?
 
 ## Parsing and Extraction
 
 ### Can package files have "local" links to each other that need to be resolved?
 
-### Is there a reason why package files need to be parsed together (in serial) instead of independently?
+### Package file parsing method
+
+The package files should be:
 
-### What format/syntax is the package file in?
+- [ ] Parsed together (in serial).
+- [ ] Parsed independently.
+
+### Which format/syntax does the package file use?
 
 - [ ] JSON
 - [ ] TOML
 - [ ] YAML
 - [ ] Custom (explain below)
 
-### How do you suggest parsing the file?
+### How should we parse the package files?
 
-- [ ] Off the shelf parser
-- [ ] Using regex
-- [ ] Custom-parsed line by line
-- [ ] Other
+- [ ] Off the shelf parser.
+- [ ] Using regex.
+- [ ] Custom-parsed line by line.
+- [ ] Other.
 
-### Does the package file structure distinguish between different "types" of dependencies? e.g. production dependencies, development dependencies, etc?
+### Does the package file have different "types" of dependencies?
 
-- [ ] Yes, production and development dependencies
-- [ ] No, all dependencies are treated the same
+- [ ] Yes, production and development dependencies.
+- [ ] No, all dependencies are treated the same.
 
 ### List all the sources/syntaxes of dependencies that can be extracted
 
 ### Describe which types of dependencies above are supported and which will be implemented in future
 
----
-
 ## Versioning
 
 ### What versioning scheme does the package file(s) use?
 
-### Does this versioning scheme support range constraints, e.g. `^1.0.0` or `1.x`?
+### Does this versioning scheme support range constraints, like `^1.0.0` or `1.x`?
 
-- [ ] Supports range constraints (e.g `^1.0.0` or `1.x`)
-- [ ] No
-
----
+- [ ] Supports range constraints (for example: `^1.0.0` or `1.x`), provide details.
+- [ ] No.
 
 ## Lookup
 
-### Is a new datasource required? Provide details
+### Is a new datasource required?
 
 - [ ] Yes, provide details.
 - [ ] No.
 
-### Will users need the capability to specify a custom host/registry to look up? Can it be found within the package files, or within other files inside the repository, or would it require Renovate configuration?
+### Will users want (or need to) set a custom host or custom registry for Renovate's lookup?
 
-### Do the package files have any "constraints" on the parent language (e.g. supports only v3.x of Python) or platform (Linux, Windows, etc.) that should be used in the lookup procedure?
+- [ ] Yes, provide details.
+- [ ] No.
+
+Where can Renovate find the custom host/registry?
+
+- [ ] No custom host or registry is needed.
+- [ ] In the package file(s), provide details.
+- [ ] In some other file inside the repository, provide details.
+- [ ] User needs to configure Renovate where to find the information, provide details.
+
+### Are there any constraints in the package files that Renovate should use in the lookup procedure?
+
+- [ ] Yes, there are constraints on the parent language (for example: supports only Python `v3.x`), provide details.
+- [ ] Yes, there are constraints on the parent platform (for example: only supports Linux, Windows, etc.), provide details.
+- [ ] Yes, some other kind of constraint, provide details.
+- [ ] No constraints.
 
 ### Will users need the ability to configure language or other constraints using Renovate config?
 
----
+- [ ] Yes, provide details.
+- [ ] No.
 
 ## Artifacts
 
-### Are lock files or checksum files used? Are they mandatory?
+### Does the package manager use a lock file or checksum file?
+
+- [ ] Yes, uses lock file.
+- [ ] Yes, uses checksum file.
+- [ ] Yes, uses lock file _and_ checksum file.
+- [ ] No lock file or checksum.
+
+### Is the locksum or checksum mandatory?
+
+- [ ] Yes, locksum is mandatory.
+- [ ] Yes, checksum is mandatory.
+- [ ] Yes, lock file _and_ checksum are mandatory.
+- [ ] No mandatory locksum or checksum.
+- [ ] Package manager does not use locksums or checksums.
+
+### If lockfiles or checksums are used: what tool and exact commands should Renovate use to update one (or more) package versions in a dependency file?
+
+### Package manager cache
+
+#### Does the package manager use a cache?
+
+- [ ] Yes, provide details.
+- [ ] No.
+
+#### If the package manager uses a cache, how can Renovate control the cache?
+
+- [ ] Package manager does not use a cache.
+- [ ] Controlled via command line interface, provide details.
+- [ ] Controlled via environment variables, provide details.
+
+#### Should Renovate keep a cache?
+
+- [ ] Yes, ignore/disable the cache.
+- [ ] No.
 
-### If so, what tool and exact commands should be used if updating one or more package versions in a dependency file?
+### Generating a lockfile from scratch
 
-### If applicable, describe how the tool maintains a cache and if it can be controlled via CLI or environment variables? Do you recommend the cache be kept or disabled/ignored?
+Renovate can perform "lock file maintenance" by getting the package manager to generate a lockfile from scratch.
+Can the package manager generate a lockfile from scratch?
 
-### If applicable, what command should be used to generate a lock file from scratch if you already have a package file? This will be used for "lock file maintenance"
+- [ ] Yes, explain which command Renovate should use to generate the lockfile.
+- [ ] No, the package manager does _not_ generate a lockfile from scratch.
+- [ ] No, the package manager does not use lockfiles.
 
 ## Other
 
-### Is there anything else to know about this package manager?
+### What else should we know about this package manager?
-- 
GitLab