Browse Source

Merge branch '2.x'

tags/v10.0.0-alpha5
Artur Signell 6 years ago
parent
commit
fffbc6a4a9
9 changed files with 28 additions and 356 deletions
  1. 20
    10
      bower.json
  2. 0
    12
      gulpfile.js
  3. 3
    25
      package.json
  4. 0
    150
      tasks/cdn.js
  5. 0
    26
      tasks/common.js
  6. 0
    26
      tasks/config.js
  7. 0
    88
      tasks/docsite.js
  8. 0
    19
      tasks/zip.js
  9. 5
    0
      vaadin-core.html

+ 20
- 10
bower.json View File

@@ -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",

+ 0
- 12
gulpfile.js View File

@@ -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']);

+ 3
- 25
package.json View File

@@ -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",

+ 0
- 150
tasks/cdn.js View File

@@ -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
}));
});

+ 0
- 26
tasks/common.js View File

@@ -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
};

+ 0
- 26
tasks/config.js View File

@@ -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');
}
}
}
};

+ 0
- 88
tasks/docsite.js View File

@@ -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']);

+ 0
- 19
tasks/zip.js View File

@@ -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));
});

+ 5
- 0
vaadin-core.html View File

@@ -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">

Loading…
Cancel
Save