Skip to content

Instantly share code, notes, and snippets.

@Realtin
Last active April 5, 2018 11:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Realtin/47ea521c0ff8d0c49825d6a67d3465e4 to your computer and use it in GitHub Desktop.
Save Realtin/47ea521c0ff8d0c49825d6a67d3465e4 to your computer and use it in GitHub Desktop.
What is left todo for the monorepo release

TODO Monorepo

⚠️ Needs to be fixed before further testing ⚠️

Features

  • Greenkeeper can find all package.json files in a repository.
  • The combined package information from all package.json files is stored in a repository document in the Greenkeeper database.
  • By default there will be one pull request per dependency (affecting multiple package.json files).
  • package.json files can be grouped by the user to receive a pull request per dependency per group.
  • No additional config is needed to run Greenkeeper in “single package.json mode”.

greenkeeper.json

  • „find“ config file and add contents to repoDoc
  • getConfig gets config from greenkeeper.json
  • create default config file in initial branch/PR
  • validate config file
  • already has greenkeeper.json that is invalid and greenkeeper gets installed.
  • trigger issue when a defined path (for package.json, lockfiles) is not found
  • send Issue about invalid config file
  • diff greenkeeper.json changes
  • Initial PR contains information on how to customise the greenkeeper.json file
  • validation: package paths with - in them are seen as invalid! thats uncool: https://github.com/neighbourhoodie/gk-test-lerna-big/issues/4
  • validation: we are currently not allowing group names with -, why not? Should we?

subgroup initial branch

  • disable group if initial subgroup PR was not merged ?? Is that even necessary since we do individual commits within a PR anyway. But! Needs to be deleted if they merge an update PR in the mean time

change comes in from GitHub

  • trigger sub-initial branch for groups if necessary
  • delete branches & close PRs for groups
  • new greenkeeper.json is added -> create subgroup initial branches for all groups
  • new greenkeeper.json is added -> inform the user that we have noticed and will handle their monorepo from now on
  • package.json is removed -> remove it from greenkeeper.json. (on next PR)
  • greenkeeper.json is deleted -> only delete branches if the group did not just contain the root package.json

dependency update comes in from npm

  • registry-change can trigger version update branches for groups

general

  • adapt repository document for monorepos
  • auto discover relevant files (package.json, lock files, config)
  • push: greenkeeper config was deleted but only contained the root package.json . is logged with every push
  • create (group) version branch: fix checking for lockfiles!
  • push: if has invalid config and other things, it will only return the invalid-config-job and not do the other stuff (L.66)

group version branch

  • group level ignore of dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment