All Projects → xmatters → upgreat

xmatters / upgreat

Licence: Apache-2.0 license
CLI for a painless way to upgrade your package.json dependencies!

Programming Languages

javascript
184084 projects - #8 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to upgreat

Patch Package
Fix broken node modules instantly 🏃🏽‍♀️💨
Stars: ✭ 6,062 (+12797.87%)
Mutual labels:  dependency-manager, dependencies, package-management
Renovate
Universal dependency update tool that fits into your workflows.
Stars: ✭ 6,700 (+14155.32%)
Mutual labels:  dependency-manager, dependencies, package-management
Cpm.cmake
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
Stars: ✭ 560 (+1091.49%)
Mutual labels:  dependency-manager, dependencies
Greenkeeper
🤖 🌴 Real-time automated dependency updates for npm and GitHub
Stars: ✭ 1,564 (+3227.66%)
Mutual labels:  dependency-manager, dependencies
hardhat-dependency-compiler
📦 Compile Solidity sources directly from NPM dependencies
Stars: ✭ 19 (-59.57%)
Mutual labels:  yarn, dependencies
Athens
A Go module datastore and proxy
Stars: ✭ 3,736 (+7848.94%)
Mutual labels:  dependency-manager, dependencies
Sampctl
The Swiss Army Knife of SA:MP - vital tools for any server owner or library maintainer.
Stars: ✭ 149 (+217.02%)
Mutual labels:  dependency-manager, package-management
Protodep
Collect necessary .proto files (Protocol Buffers IDL) and manage dependencies
Stars: ✭ 167 (+255.32%)
Mutual labels:  dependency-manager, dependencies
Npm Gui
Graphic tool for managing javascript project dependencies - in a friendly way.
Stars: ✭ 454 (+865.96%)
Mutual labels:  yarn, dependencies
Foxy
A fast, reliable, and secure NPM/Yarn bridge for Composer
Stars: ✭ 137 (+191.49%)
Mutual labels:  yarn, dependency-manager
Atom Autocomplete Module Import
⚛️ Search & install npm packages from import/require statements.
Stars: ✭ 182 (+287.23%)
Mutual labels:  yarn, package-management
merge-confidence
The home of WhiteSource's Merge Confidence feature, for Renovate and WhiteSource Remediate
Stars: ✭ 41 (-12.77%)
Mutual labels:  dependency-manager, dependencies
sbt-hackling
Prototype of the Libling concept. Libling is a way to add source dependencies to your sbt project.
Stars: ✭ 13 (-72.34%)
Mutual labels:  dependency-manager, dependencies
package-info.nvim
✍️ All the npm/yarn commands I don't want to type
Stars: ✭ 248 (+427.66%)
Mutual labels:  yarn, package-json
Syncpack
Manage multiple package.json files, such as in Lerna Monorepos and Yarn/Pnpm Workspaces
Stars: ✭ 356 (+657.45%)
Mutual labels:  yarn, dependencies
Yalc
Work with yarn/npm packages locally like a boss.
Stars: ✭ 3,155 (+6612.77%)
Mutual labels:  yarn, dependencies
ansible-role-yarn
Ansible Role - YARN Package Manager for Ubuntu/RHEL/CentOS https://galaxy.ansible.com/ocha/yarn/
Stars: ✭ 27 (-42.55%)
Mutual labels:  yarn, package-management
package-command
Lists, installs, and removes WP-CLI packages.
Stars: ✭ 16 (-65.96%)
Mutual labels:  package-management
get-bin-path
Get the current package's binary path
Stars: ✭ 25 (-46.81%)
Mutual labels:  package-json
devirion
Plugin used for debugging virions or plugins that use virions.
Stars: ✭ 35 (-25.53%)
Mutual labels:  dependency-manager

upgreat

Maintainability Test Coverage Build Status

upgreat is a CLI for a painless way to upgrade your package dependencies!

upgreat helps you upgrade the dependencies of your project. Have it plan and execute upgrades for you, making sure they don't cause any issues. It will run tests (or builds), attempt an upgrade for a package, then run the tests/build again to verify.

upgreat is smart:

  • it will roll back failed upgrades: upgrading everything it can without breaking tests and builds
  • it knows about devDependencies: it will run builds instead of tests
  • it understands peerDependencies: it will attempt the least intrusive upgrades first, and warn you of missing ones
  • it supports yarn and npm

It can plan based on:

  • package type: dependencies|devDependencies
  • include regex
  • exclude regex

It can upgrade all dependencies:

  • with yarn or npm
  • using test and build scripts defined in your package.json

usage

You can use this package directly via npx, or install it globally (npm install @xmatters/upgreat -g).

upgreat [COMMAND]
# eg: upgreat help
# eg: npx @xmatters/upgreat help

COMMANDS

  help  # display help for upgreat
  plan  # create the upgrade plan for the package
  up    # execute the upgrade plan

1. upgreat plan

First, create an upgrade plan via the plan command. This will create a file .upgreat/plan.json with the details and order of upgrade for each package.

upgreat plan
# create the upgrade plan
# by default, plans upgrade of ALL dependencies

OPTIONS

-i, --include=include                           # include packages by regex
-p, --packageType=dependencies|devDependencies  # limit to a specific package type
-x, --exclude=exclude                           # exclude packages by regex

2. upgreat up

Then, execute the upgrade plan via the up command. This will read .upgreat/plan.json and start upgrading packages and testing/building.

upgreat up
# execute the upgrade plan

OPTIONS

-b, --buildScript=buildScriptName   # name of the npm script in package.json
                                    # used for building your app [default: build]

-t, --testScript=testScriptName     # name of the npm script in package.json
                                    # used for building your app [default: test]

--npm                               # use npm

You can pass -b or --buildScript to define which script in your package.json gets run after upgrading a devDependency. By default this is build so upgreat will use yarn build or npm run build.

Similarly, -t or --testScript defines the test script in package.json to run after upgrading a dependency. By default this is test so upgreat will use yarn test or npm run test.

You can customize both for your purposes: npx @xmatters/upgreat up --npm -b build:prod -t test:ci will use npm and use build:prod script for devDependencies and test:ci script for dependencies.

Sit back and watch it do it's thing. Any upgrades that cause failures will be rolled back. .upgreat/ directory will contain any dependencies that failed with stderr info in separate files.

usage example

Move to the folder of your package and create an upgrade plan

cd my-project
upgreat plan

# or

npx @xmatters/upgreat plan

then,

upgreat up

# or

# yarn:
npx @xmatters/upgreat up
# npm:
npx @xmatters/upgreat up --npm

If you were using npm, and your test script was named testTheProjectPls you would invoke it as:

upgreat up --npm -t testTheProjectPls

roadmap / todo

  • html upgrade report with changelogs

related

Greenkeeper, Dependabot and Renovate address similar problems, but either need tight GitHub integration or are not free. Do you need to make sure all your dependencies are up to date, or merge PRs all day for @babel/plugin-proposal-logical-assignment-operators 7.0.0 -> 7.0.2 from bots? If the former, give upgreat a try!

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].