polymer-workspaces
Perform work across multiple GitHub repos
Last updated 2 years ago by usergenic .
BSD-3-Clause · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install polymer-workspaces 
SYNC missed versions from official npm registry.

polymer-workspaces

Perform work across multiple GitHub repos. Useful for both simple and complex changes across multiple Polymer elements, tools, and/or libraries.

npm install --save polymer-workspaces

Example: Creating a New Workspace

const {Workspace} = require('polymer-workspace');
const path = require('path');

const workspace = new Workspace({
  // Choose a "workspace" directory
  dir: path.resolve(process.cwd(), 'my-workspace'),
  // Choose your repos (glob-matching supported)
  include: [
    'Polymer/polymer',
    'PolymerElements/*#2.0-preview',
  ],
  // (Optional) Exclude some repos (glob-matching supported)
  excludes: ['PolymerElements/iron-ajax'],
  // Include a valid GitHub API token: https://github.com/blog/1509-personal-api-tokens
  token: 'GITHUB_API_TOKEN',
});

// Check out & set up the given repos from GitHub.
const workspaceRepos = await workspace.init();

// Optional: Install all required bower dependencies alongside the requested repos.
await workspace.installBowerDependencies();

Example: Running Tasks Across Repos

const {run} = require('polymer-workspace');

const {successes, failures} = await run(workspaceRepos, async(repo) => {
  // Contrived Example: Copy the "main" package.json property to "module"
  const packageManifestLoc = path.join(repo.dir, 'package.json');
  const packageManifestStr = fs.readFileSync(packageManifestLoc);
  const packageManifestJson = JSON.parse(packageManifestStr);
  packageManifestJson.module = packageManifestJson.main;
  fs.writeFileSync(packageManifestLoc, JSON.stringify(packageManifestJson));
});

// Remember to handle/report any errors:
for ([workspaceRepo, err] of failures) {
  console.log(workspaceRepo.dir, err.message);
}

Example: Pushing Multiple Repos

const {startNewBranch, run, commitChanges, pushChangesToGithub} = require('polymer-workspace');

await startNewBranch(workspaceRepos, 'new-branch-name');
await run(workspaceRepos, async(repo) => { /* ... */ });
await commitChanges(workspaceRepos, 'this is your new commit message!');
await pushChangesToGithub(workspaceRepos);

Example: NPM Publishing Multiple Repos

const {run, publishPackagesToNpm} = require('polymer-workspace');

await run(workspaceRepos, async(repo) => { /* ... */ });
await publishPackagesToNpm(workspaceRepos, 'next');

Current Tags

  • 2.2.0                                ...           latest (2 years ago)

7 Versions

  • 2.2.0                                ...           2 years ago
  • 2.1.0                                ...           3 years ago
  • 2.0.0                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.2                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 1
Dependencies (4)
Dev Dependencies (2)
Dependents (1)

Copyright 2014 - 2016 © taobao.org |