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