Skip to content

Instantly share code, notes, and snippets.

@twolfson twolfson/
Last active Oct 17, 2015

What would you like to do?
foundry CLI game plan

There are a lot of moving parts to get foundry onto using CLI's over plugins. This document is to help us coordinate that movement.

Nice to add shortly after:

  • Update screenshot for foundry
  • Update title for foundry-release-spec (currently says plugins)
  • Update title for foundry (currently says plugins)
  • Move keywords from foundry-release-plugin to foundry-release-command (including foundry docs)
    • We use foundry-release as the keyword, no adjustments are required
  • Write foundry-cli
    • Update foundry docs with foundry-cli
    • Add foundry setup to our grunt-init repos
    • Add Releasing section to repos?
      • Consider this as a won't fix for now
  • Update screenshot in foundry to use foundry.cli. We took one but are too tired to handle it now
  • Add support for registerVersion
  • Add resume support by dumping list of commands that were not run/failed to completely run
    • We have progress by running each of our commands (yey)
  • Add major, minor, patch support
    • Going to consider this non-critical (I think we have gotten too complacent with our current semver specified flow)
  • Add --dry-run support to release
  • Add private flag inside foundry itself to skip register/publish when the underlying tool doesn't support it
    • Probably can't do this since git would still require register/publish
    • Yep, won't fix
  • Create Mailchimp newsletter
  • Revisit issues created on foundry
  • Test foundry and foundry-cli on Windows

Out of scope:

  • Move foundry-release-python to Python script so we get nice AST support
    • I keep on getting overwhelmed at how many cases there are for this. Closing for now =/
      • Inline in the
      • Standalone version.txt file
      • Inline in or similar
  • gh-releases support via releases/ dir which has .md + YAML front matter to upload per version
  • Write bower's register function gdi

This is the goal for our project's package.json:

foundry: {
  // Invokes all `--spec-version`, etc commands
  // DEV: While this is more verbose than something like `releaseOverrides`
  //    it is more representative of how we want integrations to go
  //    - Typically append-only
  //    - Prefer a command integration over explicit CLI calls (since the long form is more verbose)
  // DEV: Additionally, we could still roll `releaseOverrides: {updateFiles: []}` which is a full override
  releaseCommands: [
      // Same as above
      type: 'release-command',
      command: 'foundry-release-npm'
      type: 'custom-command',
      updateFiles: 'custom-command "$FOUNDRY_VERSION" "$FOUNDRY_MESSAGE"'
  registerAt: '1.0.0' // Required key (but not required for v3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.