Skip to content

Commit

Permalink
docs: rewrite new package manager questionnaire (#25346)
Browse files Browse the repository at this point in the history
  • Loading branch information
HonkingGoose committed Oct 26, 2023
1 parent 5960b53 commit b34246c
Showing 1 changed file with 93 additions and 40 deletions.
133 changes: 93 additions & 40 deletions 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?

0 comments on commit b34246c

Please sign in to comment.