@@ -24,16 +24,26 @@ | |||
"**/tests" | |||
], | |||
"dependencies": { | |||
"vaadin-button": "^1.0.0", | |||
"vaadin-combo-box": "^2.0.0", | |||
"vaadin-context-menu": "^2.0.0", | |||
"vaadin-date-picker": "^2.0.0", | |||
"vaadin-form-layout": "^1.0.0", | |||
"vaadin-grid": "^3.0.0", | |||
"vaadin-icons": "^4.0.0", | |||
"vaadin-split-layout": "^2.0.0", | |||
"vaadin-text-field": "^1.0.0", | |||
"vaadin-upload": "^2.0.0" | |||
"vaadin-button": "vaadin/vaadin-button#1.0.4", | |||
"vaadin-checkbox": "vaadin/vaadin-checkbox#1.0.0-beta1", | |||
"vaadin-combo-box": "vaadin/vaadin-combo-box#3.0.0-beta1", | |||
"vaadin-context-menu": "vaadin/vaadin-context-menu#3.0.0-beta1", | |||
"vaadin-date-picker": "vaadin/vaadin-date-picker#2.0.6", | |||
"vaadin-dialog": "vaadin/vaadin-dialog#1.0.0", | |||
"vaadin-dropdown-menu": "vaadin/vaadin-dropdown-menu#1.0.0-alpha1", | |||
"vaadin-form-layout": "vaadin/vaadin-form-layout#1.0.4", | |||
"vaadin-grid": "vaadin/vaadin-grid#4.1.0-alpha1", | |||
"vaadin-icons": "vaadin/vaadin-icons#4.1.3", | |||
"vaadin-item": "vaadin/vaadin-item#1.0.0-alpha4", | |||
"vaadin-list-box": "vaadin/vaadin-list-box#1.0.0-alpha1", | |||
"vaadin-ordered-layout": "vaadin/vaadin-ordered-layout#1.0.0-alpha1", | |||
"vaadin-progress-bar": "vaadin/vaadin-progress-bar#1.0.0-alpha5", | |||
"vaadin-radio-button": "vaadin/vaadin-radio-button#1.0.0-alpha4", | |||
"vaadin-split-layout": "vaadin/vaadin-split-layout#3.0.1", | |||
"vaadin-text-field": "vaadin/vaadin-text-field#1.1.0", | |||
"vaadin-upload": "vaadin/vaadin-upload#3.0.0-beta1", | |||
"vaadin-valo-theme": "vaadin/vaadin-valo-theme#2.0.0-alpha3" | |||
}, | |||
"devDependencies": { | |||
"mock-http-request": "philikon/MockHttpRequest#master", |
@@ -1,12 +0,0 @@ | |||
"use strict"; | |||
var gulp = require('gulp'); | |||
require('require-dir')('./tasks'); | |||
var args = require('yargs').argv; | |||
gulp.task('default', function() { | |||
console.log('\n Use:\n gulp <stage|deploy[:cdn]>|<zip>\n'); | |||
}); | |||
gulp.task('clean', ['clean:cdn', 'clean:zip']); | |||
gulp.task('deploy', ['deploy:cdn']); |
@@ -1,35 +1,13 @@ | |||
{ | |||
"name": "vaadin-core", | |||
"version": "1.7.0", | |||
"version": "10.0.0-alpha5", | |||
"description": "Vaadin Core Elements is an evolving set of free, open sourced custom HTML elements, built using Polymer, for building mobile and desktop web applications in modern browsers.", | |||
"author": "Vaadin Ltd", | |||
"license": "Apache-2.0", | |||
"dependencies": { | |||
"bower": "latest", | |||
"fs-extra": "2.0.x", | |||
"gulp": "^3.9.1", | |||
"gulp-add-src": "latest", | |||
"gulp-git": "1.14.x", | |||
"gulp-json-editor": "latest", | |||
"gulp-markdown": "^1.0.0", | |||
"gulp-modify": "^0.1.1", | |||
"gulp-rename": "^1.2.2", | |||
"gulp-replace": "latest", | |||
"gulp-util": "latest", | |||
"yargs": "latest" | |||
}, | |||
"devDependencies": { | |||
"chalk": "latest", | |||
"gulp-bower": "0.0.10", | |||
"gulp-insert": "latest", | |||
"gulp-rsync": "0.0.5", | |||
"gulp-unzip": "^0.1.3", | |||
"gulp-zip": "^2.0.3", | |||
"lodash": "^3.5.0", | |||
"node-ssh-exec": "^0.1.1", | |||
"require-dir": "^0.1.0", | |||
"scp2": "^0.2.1" | |||
"bower": "latest" | |||
}, | |||
"devDependencies": {}, | |||
"keywords": [ | |||
"vaadin", | |||
"core", |
@@ -1,150 +0,0 @@ | |||
var bower = require('gulp-bower'); | |||
var config = require('./config'); | |||
var common = require('./common'); | |||
var gulp = require('gulp'); | |||
var fs = require('fs-extra'); | |||
var path = require('path'); | |||
var modify = require('gulp-modify'); | |||
var rsync = require('gulp-rsync'); | |||
var gutil = require('gulp-util'); | |||
var args = require('yargs').argv; | |||
var git = require('gulp-git'); | |||
var stagingBasePath = config.paths.staging.cdn; | |||
var version = config.version; | |||
var host = config.toolsHost; | |||
var permalink = config.permalink; | |||
var stagingPath = path.join(process.cwd(), stagingBasePath, version); | |||
gulp.task('clean:cdn', function() { | |||
fs.removeSync(stagingBasePath); | |||
}); | |||
gulp.task('cdn:stage-bower.json', ['clean:cdn'], function() { | |||
// Load the bower.json, assign overrides and write back to disk. | |||
var bowerJson = JSON.parse(fs.readFileSync('./bower.json', 'utf-8')); | |||
if (version === 'master') { | |||
gutil.log('Applying overrides to ' + stagingPath + '/bower.json'); | |||
// Assign the override properties. | |||
Object.keys(bowerJson.masterOverrides).forEach(function(override) { | |||
bowerJson[override] = bowerJson.masterOverrides[override]; | |||
}); | |||
delete bowerJson.masterOverrides; | |||
} | |||
fs.mkdirsSync(stagingBasePath); | |||
fs.mkdirsSync(stagingPath); | |||
fs.writeFileSync(stagingPath + '/bower.json', JSON.stringify(bowerJson, null, ' ')); | |||
}); | |||
gulp.task('cdn:stage-bower_components', ['cdn:stage-bower.json'], function() { | |||
return bower({ | |||
directory: '.', | |||
cwd: stagingPath, | |||
forceLatest: true, | |||
cmd: 'install' | |||
}); | |||
}); | |||
gulp.task('cdn:stage-vaadin-core-elements', function() { | |||
return gulp.src(['LICENSE.html', 'README.md', 'index.html', 'vaadin-core-elements.html', 'demo/*', 'apidoc/*'], { | |||
base: "." | |||
}) | |||
.pipe(modify({ | |||
fileModifier: function(file, contents) { | |||
if (/README.md/.test(file.path)) { | |||
contents = contents.replace(/\/latest\//mg, '/' + version + '/'); | |||
} else { | |||
contents.replace('https://cdn.vaadin.com/vaadin-core-elements/latest/', '../../'); | |||
} | |||
return contents; | |||
} | |||
})) | |||
.pipe(gulp.dest(stagingPath + '/vaadin-core-elements')); | |||
}); | |||
gulp.task('stage:cdn', ['clean:cdn', 'cdn:stage-bower_components', 'cdn:stage-vaadin-core-elements']); | |||
gulp.task('upload:cdn', ['stage:cdn'], function() { | |||
common.checkArguments(['cdnUsername', 'cdnDestination']); | |||
gutil.log('Uploading to cdn (rsync): ' + stagingPath + ' -> ' + args.cdnUsername + '@' + host + ':' + args.cdnDestination + version); | |||
return gulp.src(stagingPath) | |||
.pipe(rsync({ | |||
username: args.cdnUsername, | |||
hostname: host, | |||
root: stagingPath, | |||
emptyDirectories: false, | |||
recursive: true, | |||
clean: true, | |||
silent: true, | |||
destination: args.cdnDestination + version | |||
})); | |||
}); | |||
gulp.task('deploy:cdn', ['upload:cdn'], function(done) { | |||
if (permalink) { | |||
var cmd = 'rm -f ' + args.cdnDestination + permalink + '; ln -s ' + version + ' ' + args.cdnDestination + permalink + '; ls -l ' + args.cdnDestination; | |||
gutil.log('Deploying CDN : ssh ' + args.cdnUsername + '@' + host + ' ' + cmd); | |||
common.ssh(args.cdnUsername, host, cmd, done); | |||
} else { | |||
done(); | |||
} | |||
}); | |||
/* Above are the old tasks to publish the vaadin-core-elements package, below the tasks to publish a single element from a specific tag/branch. Sorry about the poor naming :-) */ | |||
gulp.task('cdn:arguments', function(done) { | |||
common.checkArguments(['element', 'tag']); | |||
args.folder = args.tag.replace(/^v/g, ''); | |||
stagingPath = path.join(process.cwd(), stagingBasePath, args.element, args.folder); | |||
done(); | |||
}); | |||
gulp.task('cdn:clone', ['clean:cdn', 'cdn:arguments'], function(done) { | |||
git.clone('https://github.com/vaadin/' + args.element, {args: '-b ' + args.tag + ' ./target/cdn/' + args.element + '/' + args.folder }, function (err) { | |||
if (err) throw err; | |||
done(); | |||
}); | |||
}); | |||
gulp.task('cdn:install', ['cdn:arguments', 'cdn:clone'], function() { | |||
return bower({ | |||
cwd: stagingPath, | |||
forceLatest: true, | |||
cmd: 'install' | |||
}); | |||
}); | |||
gulp.task('cdn:stage', ['cdn:arguments', 'cdn:install'], function() { | |||
return gulp.src([stagingPath + '/**/*.html', '!**/bower_components/**']) | |||
.pipe(modify({ | |||
fileModifier: function(file, contents) { | |||
// magic regex trying to change import paths from: | |||
// ../foo/foo.html to bower_components/foo/foo.html | |||
// ../../foo/foo.html to ../bower_components/foo/foo.html | |||
// ../my-element.html stays as it is. | |||
contents = contents.replace(new RegExp(/([href|src].+)((\.\.\/)((?!bower_components|\.\.).+\/.+))/g), '$1bower_components/$4'); | |||
return contents; | |||
} | |||
})) | |||
.pipe(gulp.dest(stagingPath)); | |||
}); | |||
gulp.task('cdn:upload', ['cdn:stage'], function() { | |||
common.checkArguments(['cdnUsername', 'cdnDestination']); | |||
var destination = path.join(args.cdnDestination, args.element, args.folder); | |||
gutil.log('Uploading to cdn (rsync): ' + stagingPath + ' -> ' + args.cdnUsername + '@' + host + ':' + destination); | |||
return gulp.src(stagingPath) | |||
.pipe(rsync({ | |||
username: args.cdnUsername, | |||
hostname: host, | |||
root: stagingPath, | |||
emptyDirectories: false, | |||
recursive: true, | |||
clean: true, | |||
silent: true, | |||
destination: destination | |||
})); | |||
}); |
@@ -1,26 +0,0 @@ | |||
var args = require('yargs').argv; | |||
var _ = require('lodash'); | |||
var gutil = require('gulp-util'); | |||
var config = require('./config'); | |||
function checkArguments(arguments) { | |||
_.forEach(arguments, function(a) { | |||
if(!args.hasOwnProperty(a)) { | |||
throw Error('Required argument \'--'+ a +'\' is missing.'); | |||
} | |||
}); | |||
} | |||
function ssh(user, host, command, done) { | |||
gutil.log('SSH: ' + host + ' -> ' + command); | |||
require('node-ssh-exec')({ | |||
host: host, | |||
username: user, | |||
privateKey: config.paths.privateKey() | |||
}, command, done); | |||
} | |||
module.exports = { | |||
ssh: ssh, | |||
checkArguments: checkArguments | |||
}; |
@@ -1,26 +0,0 @@ | |||
var args = require('yargs').argv; | |||
var fs = require('fs'); | |||
var userhome = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; | |||
module.exports = { | |||
version: args.version || 'master', | |||
permalink: args.version ? 'latest' : '', | |||
toolsHost: args.toolsHostname || 'tools.vaadin.com', | |||
paths: { | |||
staging: { | |||
bower: 'target/bower', | |||
cdn: 'target/cdn', | |||
zip: 'target/zip', | |||
doc: 'target/docsite' | |||
}, | |||
userhome: userhome, | |||
privateKey: function() { | |||
try { | |||
return fs.readFileSync(userhome + '/.ssh/id_rsa'); | |||
} catch(error) { | |||
return fs.readFileSync(userhome + '/.ssh/id_dsa'); | |||
} | |||
} | |||
} | |||
}; |
@@ -1,88 +0,0 @@ | |||
var bower = require('gulp-bower'); | |||
var config = require('./config'); | |||
var common = require('./common'); | |||
var gulp = require('gulp'); | |||
var fs = require('fs-extra'); | |||
var replace = require('gulp-replace'); | |||
var gutil = require('gulp-util'); | |||
var zip = require('gulp-zip'); | |||
var args = require('yargs').argv; | |||
var addsrc = require('gulp-add-src'); | |||
var rename = require('gulp-rename'); | |||
var stagingBasePath = config.paths.staging.cdn; | |||
var docPath = config.paths.staging.doc; | |||
var version = config.version; | |||
var host = config.toolsHost; | |||
var permalink = config.permalink; | |||
var stagingPath = stagingBasePath + '/' + version; | |||
var modify = require('gulp-modify'); | |||
var rootZip = 'target/'; | |||
var fileZip = 'docsite.zip'; | |||
gulp.task('cdn:docsite:clean', function() { | |||
fs.removeSync(docPath); | |||
fs.removeSync(rootZip + fileZip); | |||
}); | |||
gulp.task('cdn:docsite:bower_components', ['cdn:stage-bower_components'], function() { | |||
gutil.log('Copying bower components from ' + stagingPath + ' to ' + docPath + '/bower_components'); | |||
return gulp.src([stagingPath + '/**']) | |||
// Temporary patch until #180 is fixed: | |||
// https://github.com/webcomponents/webcomponentsjs/issues/180 | |||
.pipe(modify({ | |||
fileModifier: function(file, contents) { | |||
if (/webcomponents-lite.*js/.test(file.path)) { | |||
contents = contents.replace(/(if ?\()(\w+\.log)(\))/mg, '$1$2 && $2.split$3'); | |||
} | |||
return contents; | |||
} | |||
})) | |||
.pipe(gulp.dest(docPath + '/bower_components')); | |||
}); | |||
gulp.task('cdn:docsite:core-elements', function() { | |||
return gulp.src(['docs/**']).pipe(gulp.dest(docPath)); | |||
}); | |||
gulp.task('cdn:docsite:core-elements-elements', ['cdn:docsite:bower_components'], function() { | |||
var bowerJson = require('../' + stagingPath + '/bower.json'); | |||
var docsPaths = Object.keys(bowerJson.dependencies).map(function(c) { | |||
return stagingPath + '/' + c + '/docs/**'; | |||
}); | |||
return gulp.src(docsPaths, {base: stagingPath}) | |||
.pipe(rename(function (path) { | |||
path.dirname = path.dirname.replace('/docs', '/'); //leaves docs folders empty. | |||
})) | |||
.pipe(gulp.dest(docPath + '/')); | |||
}); | |||
gulp.task('cdn:docsite:stage', ['cdn:docsite:core-elements', | |||
'cdn:docsite:core-elements-elements']); | |||
gulp.task('cdn:docsite:zip', ['cdn:docsite:stage'], function() { | |||
var src = docPath + '/**/*'; | |||
gutil.log("Creating docsite zip " + docPath + " -> " + rootZip + fileZip); | |||
return gulp.src(src) | |||
.pipe(zip(fileZip)) | |||
.pipe(gulp.dest(rootZip)); | |||
}); | |||
gulp.task('cdn:docsite:upload', ['cdn:docsite:clean', 'cdn:docsite:zip'], function(done) { | |||
common.checkArguments(['cdnUsername', 'cdnDestination']); | |||
gutil.log('Uploading docsite (scp): ' + rootZip + fileZip + ' -> ' + args.cdnUsername + '@' + host + ':' + args.cdnDestination + version); | |||
require('scp2').scp(rootZip + fileZip, { | |||
host: host, | |||
username: args.cdnUsername, | |||
privateKey: config.paths.privateKey(), | |||
path: args.cdnDestination + version | |||
}, function(err) { | |||
done(err); | |||
}); | |||
}); | |||
gulp.task('cdn:docsite', ['cdn:docsite:upload']); |
@@ -1,19 +0,0 @@ | |||
var config = require('./config'); | |||
var fs = require('fs-extra'); | |||
var gulp = require('gulp'); | |||
var zip = require('gulp-zip'); | |||
var stagingPath = config.paths.staging.zip; | |||
var version = config.version; | |||
var filename = 'vaadin-core-elements-' + version + '.zip'; | |||
var majorMinorVersion = version.replace(/(\d+\.\d+)(\.|-)(.*)/, '$1'); | |||
gulp.task('clean:zip', function() { | |||
fs.removeSync(stagingPath); | |||
}); | |||
gulp.task('zip', ['clean:zip', 'stage:cdn'], function() { | |||
return gulp.src(config.paths.staging.cdn + '/' + version + '/**/*') | |||
.pipe(zip(filename)) | |||
.pipe(gulp.dest(stagingPath)); | |||
}); |
@@ -1,10 +1,15 @@ | |||
<link rel="import" href="../vaadin-button/vaadin-button.html"> | |||
<link rel="import" href="../vaadin-checkbox/vaadin-checkbox.html"> | |||
<link rel="import" href="../vaadin-combo-box/vaadin-combo-box.html"> | |||
<link rel="import" href="../vaadin-context-menu/vaadin-context-menu.html"> | |||
<link rel="import" href="../vaadin-date-picker/vaadin-date-picker.html"> | |||
<link rel="import" href="../vaadin-dialog/vaadin-dialog.html"> | |||
<link rel="import" href="../vaadin-form-layout/vaadin-form-layout.html"> | |||
<link rel="import" href="../vaadin-grid/vaadin-grid.html"> | |||
<link rel="import" href="../vaadin-icons/vaadin-icons.html"> | |||
<link rel="import" href="../vaadin-ordered-layout/vaadin-ordered-layout.html"> | |||
<link rel="import" href="../vaadin-progress-bar/vaadin-progress-bar.html"> | |||
<link rel="import" href="../vaadin-radio-button/vaadin-radio-button.html"> | |||
<link rel="import" href="../vaadin-split-layout/vaadin-split-layout.html"> | |||
<link rel="import" href="../vaadin-text-field/vaadin-text-field.html"> | |||
<link rel="import" href="../vaadin-upload/vaadin-upload.html"> |