Skip to content

Detach monorepo packages from normal linking

License

Notifications You must be signed in to change notification settings

sbonasu/monorepo-next

 
 

Repository files navigation

monorepo-next

npm version

Detach monorepo packages from normal linking. Work on breaking changes while gradually updating consumers.

Each package can have a monorepo-next.config.js with the following options:

module.exports = {
  // Set this to false to opt-out of change detection and versioning.
  shouldBumpVersion: true,
}
next [command]

Commands:
  next attach [package]            attach a package to a detached package to
                                   resume normal linking            [aliases: a]
  next changed-files [packages..]  list changed files
  next changed                     list changed packages
  next cycles                      detect circular references
  next defrag                      synchronize all dependency version
                                   discrepancies
  next detach [package]            detach a package from normal linking
                                                                    [aliases: d]
  next release                     release all packages as needed
  next run                         run script against changed packages

Options:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]

next attach [package]

attach a package to a detached package to resume normal linking

Options:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]

next changed-files [packages..]

list changed files

Options:
  --help                     Show help                                 [boolean]
  --version                  Show version number                       [boolean]
  --ext                      filter by extension                        [string]
  --only-include-releasable  If a file was changed that is not published, don't
                             count it towards a package change.
                                                      [boolean] [default: false]
  --exclude-dev-changes      If a change doesn't affect consumers, like a
                             monorepo dev dep change or manually bumping an
                             external dev dep, don't count it towards a package
                             change.                  [boolean] [default: false]

next changed

list changed packages

Options:
  --help                     Show help                                 [boolean]
  --version                  Show version number                       [boolean]
  --only-include-releasable  If a file was changed that is not published, don't
                             count it towards a package change.
                                                      [boolean] [default: false]
  --exclude-dev-changes      If a change doesn't affect consumers, like a
                             monorepo dev dep change or manually bumping an
                             external dev dep, don't count it towards a package
                             change.                  [boolean] [default: false]

next cycles

detect circular references

Options:
  --help                            Show help                          [boolean]
  --version                         Show version number                [boolean]
  --detect-dev-dependencies, --dev  alert when there is a devDependency in the
                                    loop              [boolean] [default: false]

next defrag

synchronize all dependency version discrepancies

Options:
  --help          Show help                                            [boolean]
  --version       Show version number                                  [boolean]
  --include       only synchronize a subset of dependencies[array] [default: []]
  --exclude       ignore a subset of dependencies          [array] [default: []]
  --out-of-range  override ranges that are out of range
                                   [string] [choices: "major", "minor", "patch"]
  --dry-run       log to console instead of modifying files
                                                      [boolean] [default: false]

next detach [package]

detach a package from normal linking

Options:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]

next release

release all packages as needed

Options:
  --help                          Show help                            [boolean]
  --version                       Show version number                  [boolean]
  --silent                        Don't print logs and errors
                                                      [boolean] [default: false]
  --dry-run                       log to console instead of modifying files
                                                      [boolean] [default: false]
  --push                          git push + tags when done
                                                       [boolean] [default: true]
  --publish                       npm publish when done[boolean] [default: true]
  --bump-in-range-dependencies    If a dependency is still in range, and nothing
                                  changed in my package, still bump my version
                                  and the dependency version.
                                                       [boolean] [default: true]
  --inherit-greater-release-type  If a dependency has a greater release type,
                                  bump my package the with the same release
                                  type.               [boolean] [default: false]
  --exclude-dev-changes           If a change doesn't affect consumers, like a
                                  monorepo dev dep change or manually bumping an
                                  external dev dep, don't count it towards a
                                  package change.     [boolean] [default: false]
  --clean-up-after-failed-push    If there's already a new commit on the remote,
                                  clean up the commit and tags that won't be
                                  used                [boolean] [default: false]
  --scripts                       Provide scripts to execute for lifecycle
                                  events (prebump, precommit, etc.,)
                                                                   [default: {}]
  --package-files
                [array] [default: ["package.json","bower.json","manifest.json"]]
  --bump-files
  [array] [default: ["package.json","bower.json","manifest.json","package-lock.j
                                                    son","npm-shrinkwrap.json"]]
  --default-branch                                  [string] [default: "master"]

next run

run script against changed packages

Options:
  --help                     Show help                                 [boolean]
  --version                  Show version number                       [boolean]
  --only-include-releasable  If a file was changed that is not published, don't
                             count it towards a package change.
                                                      [boolean] [default: false]
  --exclude-dev-changes      If a change doesn't affect consumers, like a
                             monorepo dev dep change or manually bumping an
                             external dev dep, don't count it towards a package
                             change.                  [boolean] [default: false]
  --silent                   Don't print logs and errors
                                                      [boolean] [default: false]

About

Detach monorepo packages from normal linking

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%