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

docs: create bot comparison page #24269

Merged
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
b0a1ee0
docs: create bot comparison page
HonkingGoose Aug 28, 2023
8f88019
Merge branch 'renovatebot:main' into docs/24121-comparison-renovate-d…
HonkingGoose Aug 30, 2023
6a39cef
Create basic table, add links
HonkingGoose Aug 30, 2023
2bb2265
Improve table
HonkingGoose Aug 30, 2023
efa3ca7
Merge branch 'renovatebot:main' into docs/24121-comparison-renovate-d…
HonkingGoose Sep 1, 2023
39da746
Merge branch 'renovatebot:main' into docs/24121-comparison-renovate-d…
HonkingGoose Sep 4, 2023
86388b1
Merge branch 'renovatebot:main' into docs/24121-comparison-renovate-d…
HonkingGoose Sep 6, 2023
7e0ad08
Extra content, prettier-fix
HonkingGoose Sep 6, 2023
34a2abb
Put bot comparison page in nav config file
HonkingGoose Sep 6, 2023
58296b3
prettier-fix
HonkingGoose Sep 6, 2023
71a627b
Explain goal of page, ask for corrections if needed
HonkingGoose Sep 6, 2023
7e3abda
List important platforms, link to rest, capitalize table items
HonkingGoose Sep 6, 2023
0878278
Update bot-comparison.md
HonkingGoose Sep 7, 2023
3d07f05
Merge branch 'main' into docs/24121-comparison-renovate-dependabot
HonkingGoose Sep 7, 2023
3d65ddb
Improve badge info in table
HonkingGoose Sep 7, 2023
4fe4cce
Add project programming language row and section
HonkingGoose Sep 11, 2023
a9ddab1
Draft self-hosting Dependabot and Renovate
HonkingGoose Sep 11, 2023
64609ed
improvements
HonkingGoose Sep 13, 2023
e2ee02e
Merge branch 'renovatebot:main' into docs/24121-comparison-renovate-d…
HonkingGoose Sep 13, 2023
59e5d5b
Relative links
HonkingGoose Sep 13, 2023
d84fa4a
List Renovate distributions
HonkingGoose Sep 13, 2023
3cd0757
Improve Dependabot self-hosting section
HonkingGoose Sep 13, 2023
5b06e60
Add contributor and monthly pulse graphs for both bots
HonkingGoose Sep 20, 2023
93c2fa7
Drop customizability from table and page
HonkingGoose Sep 20, 2023
215f848
Dependabot for github only, may use dependabot-core
HonkingGoose Sep 27, 2023
21bf331
Show Renovate first, then Dependabot
HonkingGoose Sep 27, 2023
ce4123b
Merge branch 'renovatebot:main' into docs/24121-comparison-renovate-d…
HonkingGoose Sep 27, 2023
b6a0566
Merge branch 'main' into docs/24121-comparison-renovate-dependabot
HonkingGoose Oct 2, 2023
54a7b86
List Renovate/Dependabot changelog features
HonkingGoose Oct 5, 2023
8c3a65e
Merge branch 'main' into docs/24121-comparison-renovate-dependabot
HonkingGoose Oct 5, 2023
543407f
Merge branch 'main' into docs/24121-comparison-renovate-dependabot
HonkingGoose Oct 16, 2023
43d765f
Small style fixes
HonkingGoose Oct 23, 2023
7266abb
Apply suggestions from rarkins
HonkingGoose Oct 25, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/usage/.pages
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
nav:
- Home: 'index.md'
- Bot comparison: 'bot-comparison.md'
secustor marked this conversation as resolved.
Show resolved Hide resolved
- Reading List: 'reading-list.md'
- ... | getting-started
- Troubleshooting: 'troubleshooting.md'
Expand Down
156 changes: 156 additions & 0 deletions docs/usage/bot-comparison.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# Bot comparison
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
This page explains the key differences between Renovate and Dependabot.

This is not meant to be a “versus” or anti-Dependabot page, and it's not marketing.
It should be as objective as possible, to help users decide which tool is best for them.

If you see anything wrong on this page, please let us know by creating a [Discussion](https://github.com/renovatebot/renovate/discussions), or edit this page with a PR.

## Table of features

| Feature | Dependabot | Renovate |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Dependency Dashboard | No | Yes |
| Grouped updates | Yes, create [`groups`](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups) manually | Yes, use community-provided groups, or create your own |
| Upgrades common monorepo packages at once | No | Yes |
| Officially supported platforms | GitHub only | GitHub, GitLab, Bitbucket, Azure, Gitea, see [full list](https://docs.renovatebot.com/#supported-platforms) |
| Supported languages | [List for Dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates#supported-repositories-and-ecosystems) | [List for Renovate](https://docs.renovatebot.com/modules/manager/) |
| Customizability | Low | High |
| Show changelogs | Yes | Yes |
| Compatibility score badges | One badge with overall compatibility score | Four badges showing: Age, Adoption, Passing, Confidence |
| Built-in to GitHub | Yes | No, requires app or self-hosting |
| Scheduling | Yes: `daily`, `weekly`, `monthly` | By default, Renovate runs as often as it is allowed to, read [Renovate scheduling](./key-concepts/scheduling.md) to learn more |
| License | [The Prosperity Public License 2.0.0](https://github.com/dependabot/dependabot-core/blob/main/LICENSE) | [GNU Affero General Public License](https://github.com/renovatebot/renovate/blob/main/license) |
| Programming language of project | Ruby | TypeScript |

## Hosted app

This section explains the key differences when you're using the Mend Renovate app or the GitHub-native Dependabot.

If you're going to self-host a bot, read the hosted app section first anyway.
Then read the self-hosted section.

### Dependency Dashboard

One big feature of Renovate is the Dependency Dashboard, which is enabled by default.
Read the [Key concepts, Dependency Dashboard](./key-concepts/dashboard.md) page to learn more.

Dependabot does not have a similar feature.

### Grouped updates

Renovate comes with community-provided groupings of dependencies, so it will group common dependencies out-of-the-box.

With Dependabot you'll have to set your own [`groups`](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups).

### Upgrades common monorepo packages at once

Renovate has a [`group:monorepos`](https://docs.renovatebot.com/presets-group/#groupmonorepos) preset, that upgrades common monorepo packages at once.

Dependabot does not update common monorepo packages at once.

### Supported platforms

Platform means the Git-hosting site or program, for example GitHub, GitLab or Azure.

Dependabot only works on GitHub.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

Renovate works on multiple platforms, including GitHub.
Read the [list of Renovate platforms](https://docs.renovatebot.com/modules/platform/) to learn more.

### Supported languages

- [Renovate's supported managers](https://docs.renovatebot.com/modules/manager/)
- [Dependabot's supported repositories and ecosystems](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates#supported-repositories-and-ecosystems)

### Customizability

Both Renovate and Dependabot come with good default settings.

Renovate gives you more control over _when_ and _how_ you'll get the updates.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved
Renovate gives you tools to reduce the "update noise", read our [Noise reduction](./noise-reduction.md) page to learn more.

### Show changelogs

Renovate and Dependabot show changelogs in their PRs.

### Compatibility score badges

Dependabot shows one compatibility score badge.
This score tells you how many other repositories have passing CI tests for the proposed update.
Read the [GitHub Docs, Dependabot's compatibility scores](https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-compatibility-scores) to learn more about Dependabot's badge.

Renovate has four _Merge Confidence_ badges:

- **Age**: The age of the package
- **Adoption**: The percentage of this package's users (within Renovate) which are using this release
- **Passing**: The percentage of updates which have passing tests for this package
- **Confidence**: The confidence level for this update

Read the [Merge Confidence badges](./merge-confidence.md) page to learn more.

### Built-in to GitHub vs app

Dependabot is built-in to GitHub, Renovate needs app installation or self-hosting.
rarkins marked this conversation as resolved.
Show resolved Hide resolved

### Scheduling

Read [Renovate scheduling](./key-concepts/scheduling.md).
With Renovate you can set a schedule per package, manager, or globally.

Dependabot has four options that apply at a language level:

- [`schedule.interval`](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduleinterval)
- [`schedule.day`](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduleday)
- [`schedule.time`](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduletime)
- [`schedule.timezone`](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduletimezone)

### License

Dependabot uses [The Prosperity Public License 2.0.0](https://github.com/dependabot/dependabot-core/blob/main/LICENSE).
Renovate uses the [GNU Affero General Public License](https://github.com/renovatebot/renovate/blob/main/license).

### Programming language of project

`dependabot-core` uses Ruby.
Renovate uses TypeScript.

## Self-hosting a bot

This section explains how you can self-host each bot.

### Self-hosting Renovate

You can self-host Renovate on all [officially supported platforms](https://docs.renovatebot.com/#supported-platforms).

If you decide to self-host Renovate, start by reading the items from the [Self-hosting Renovate reading list](./reading-list.md#self-hosting-renovate).

Available [Renovate distributions](./getting-started/running.md#available-distributions):

- npm package (CLI)
- Docker images
- GitHub Action
- GitLab Runner
- Mend Renovate On-Premises
- Mend Remediate (commercial offering)
- Forking Renovate app

### Self-hosting Dependabot

You can self-host Dependabot on other platforms than GitHub.
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

#### `dependabot-core`

If you want to customize Dependabot, or self-host on another platform, you can use [`dependabot-core`](https://github.com/dependabot/dependabot-core).
Quote from the `dependabot-core` readme:

> It [`dependabot-core`] currently supports opening Pull Requests against repositories hosted on GitHub, Github Enterprise, Azure DevOps, GitLab, BitBucket, and AWS CodeCommit.

#### `dependabot-script`

The Dependabot team has a community-maintained collection of scripts to start self-hosting Dependabot: [`dependabot-script`](https://github.com/dependabot/dependabot-script).
HonkingGoose marked this conversation as resolved.
Show resolved Hide resolved

#### `dependabot-gitlab/dependabot`

There's also a community-maintained Dependabot for GitLab: [`dependabot-gitlab/dependabot`](https://gitlab.com/dependabot-gitlab/dependabot).