All Projects β†’ whitesource β†’ merge-confidence

whitesource / merge-confidence

Licence: other
The home of WhiteSource's Merge Confidence feature, for Renovate and WhiteSource Remediate

Projects that are alternatives of or similar to merge-confidence

Cpm.cmake
πŸ“¦ CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
Stars: ✭ 560 (+1265.85%)
Mutual labels:  dependency-manager, dependencies, dependency
sbt-hackling
Prototype of the Libling concept. Libling is a way to add source dependencies to your sbt project.
Stars: ✭ 13 (-68.29%)
Mutual labels:  dependency-manager, dependencies, dependency
Patch Package
Fix broken node modules instantly πŸƒπŸ½β€β™€οΈπŸ’¨
Stars: ✭ 6,062 (+14685.37%)
Mutual labels:  dependency-manager, dependencies
Renovate
Universal dependency update tool that fits into your workflows.
Stars: ✭ 6,700 (+16241.46%)
Mutual labels:  dependency-manager, dependencies
Kodein Mvvm
Example app using Kodein for dependency injection with MVVM and Architecture Components
Stars: ✭ 26 (-36.59%)
Mutual labels:  dependency-manager, dependency
Athens
A Go module datastore and proxy
Stars: ✭ 3,736 (+9012.2%)
Mutual labels:  dependency-manager, dependencies
Pyup
A tool to update your project's dependencies on GitHub. Runs on pyup.io, comes with a command line interface.
Stars: ✭ 379 (+824.39%)
Mutual labels:  dependency-manager, dependency
Projeny
A project and package manager for Unity
Stars: ✭ 656 (+1500%)
Mutual labels:  dependency-manager, dependency
Webpack Babel Env Deps
Find dependencies to transpile with Babel.
Stars: ✭ 130 (+217.07%)
Mutual labels:  dependencies, dependency
Protodep
Collect necessary .proto files (Protocol Buffers IDL) and manage dependencies
Stars: ✭ 167 (+307.32%)
Mutual labels:  dependency-manager, dependencies
Greenkeeper
πŸ€– 🌴 Real-time automated dependency updates for npm and GitHub
Stars: ✭ 1,564 (+3714.63%)
Mutual labels:  dependency-manager, dependencies
Boss
Dependency Manager for Delphi
Stars: ✭ 188 (+358.54%)
Mutual labels:  dependency-manager, dependency
git-explode
Explode linear sequence of git commits into topic branches
Stars: ✭ 43 (+4.88%)
Mutual labels:  dependency-manager, dependency-analysis
upgreat
CLI for a painless way to upgrade your package.json dependencies!
Stars: ✭ 47 (+14.63%)
Mutual labels:  dependency-manager, dependencies
Dependency Cruiser
Validate and visualize dependencies. Your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
Stars: ✭ 2,326 (+5573.17%)
Mutual labels:  dependency-analysis, dependencies
py-dependency-install
A GitHub Action that installs Python package dependencies from a user-defined requirements.txt file path with optional pip, setuptools, and wheel installs/updates
Stars: ✭ 23 (-43.9%)
Mutual labels:  dependency-manager, dependency
hardhat-dependency-compiler
πŸ“¦ Compile Solidity sources directly from NPM dependencies
Stars: ✭ 19 (-53.66%)
Mutual labels:  dependencies, dependency
Container Ioc
Inversion of Control container & Dependency Injection for Javascript and Node.js apps powered by Typescript.
Stars: ✭ 89 (+117.07%)
Mutual labels:  dependency-manager, dependency
comptroller
A simple and lightweight tool to manage your monorepo.
Stars: ✭ 26 (-36.59%)
Mutual labels:  dependency-manager, dependency-analysis
kebechet
I'm Kebechet bot, goddess of freshness - I will keep your source code fresh and up-to-date
Stars: ✭ 23 (-43.9%)
Mutual labels:  dependency-manager, dependency-analysis

Merge Confidence

Merge Confidence identifies and flags undeclared breaking releases based on analysis of test and release adoption data across WhiteSource Renovate’s early-adopting user base. The new feature was created to help users avoid the pain of un-mergeable Pull Requests or worse -- a broken dependency in production.

Confidence Levels and their meaning

Merge Confidence has four possible values:

  • Low: If an update is classified as having low merge confidence, it means we think it contains breaking changes. Often this is because it's a Major version update so this is intentional, but sometimes it's unintentional or undeclared.

  • Neutral: If we do not have enough data about an update, or the data is not conclusive about whether the update should be classified as High or Low, then we classify it as Neutral.

  • High: Updates are classified as High Confidence once we believe that their combination of Age, Adoption and Test Compatibility means that there's a very low chance that there are breaking changes.

  • Very High: This is reserved for updates which are months old and have either strong adoption or show very high test compatibility scores.

Pull Request Badges

Merge Confidence is currently available in the form of Pull Request badges.

The badges available are:

  • Age: How old the release is
  • Adoption: The percentage of this library's users (within Renovate) which are using this release
  • Passing: The percentage of updates which had successful test results for this update
  • Confidence: The confidence level for this update

How Does It Work?

WhiteSource's hosted Renovate App has enabled a diverse user base on github.com to keep dependencies up-to-date since 2017, and generated millions of Pull Requests in the process. We found that by aggregating and analyzing metrics we already had, such as release age, release adoption, and Pull Request test results, we can correctly identify releases of open source packages that show signs of having undeclared breaking changes.

The algorithm for determining values is private and is not something we plan to share. Similar to a search engine's algorithm, we plan to tweak and enhance it over time, like adding historical data to determine a baseline confidence level for packages.

We plan to expose much more of the data via a companion website, such as number of users of a package and popular repositories which may have already updated to the version in question.

Supported Platforms and Languages, Roadmap

Merge Confidence badges for Pull Requests are available in beta on any supported Renovate platform today, including WhiteSource Remediate.

Data is available for npm, Maven and PyPI packages only for now, we plan to support other languages soon.

High-level information on planned enhancements is available in the Merge Confidence Roadmap Project on GitHub.

Enabling and Disabling

Merge Confidence badges are enabled automatically for anyone using the WhiteSource Renovate App. If you don't use the app, you can enable Merge Confidence badges by adding this to your Renovate config:

"extends": ["github>whitesource/merge-confidence:beta"]

If you’d prefer to disable these badges in the app, add this to your config instead:

"ignorePresets": ["github>whitesource/merge-confidence:beta"]

Miscellaneous Clarifications

npm packages are never classified as High Confidence until they are at least 3 days old. This is because npm packages less than 72 hours old can be unpublished, which could result in a service impact if you have already updated to it.

Percentage values for Adoption and Passing are not raw percentages and instead are weighted towards Organizations, private repositories, and projects with high test reliability.

Questions and Feedback

You are invited to create an Issue if you have anything you'd like to discuss.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].