From bc9ba3d2a769b0091bd8faaddeaf5c717363115e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Georget?= Date: Fri, 17 Apr 2020 12:30:51 +0200 Subject: [PATCH 1/4] Add events to improve installation process MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Georget --- .../strapi-generate-new/lib/create-project.js | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/strapi-generate-new/lib/create-project.js b/packages/strapi-generate-new/lib/create-project.js index 99211b988c..7eff762a9e 100644 --- a/packages/strapi-generate-new/lib/create-project.js +++ b/packages/strapi-generate-new/lib/create-project.js @@ -12,10 +12,7 @@ const { trackUsage, captureStderr } = require('./utils/usage'); const packageJSON = require('./resources/json/package.json'); const databaseJSON = require('./resources/json/database.json.js'); -module.exports = async function createProject( - scope, - { connection, dependencies } -) { +module.exports = async function createProject(scope, { connection, dependencies }) { console.log('Creating files.'); const { rootPath } = scope; @@ -29,13 +26,12 @@ module.exports = async function createProject( const dotFiles = await fse.readdir(join(resources, 'dot-files')); await Promise.all( dotFiles.map(name => { - return fse.copy( - join(resources, 'dot-files', name), - join(rootPath, `.${name}`) - ); + return fse.copy(join(resources, 'dot-files', name), join(rootPath, `.${name}`)); }) ); + await trackUsage({ event: 'didCopyProjectFiles', scope }); + // copy templates await fse.writeJSON( join(rootPath, 'package.json'), @@ -51,6 +47,8 @@ module.exports = async function createProject( } ); + await trackUsage({ event: 'didWritePackageJSON', scope }); + // ensure node_modules is created await fse.ensureDir(join(rootPath, 'node_modules')); @@ -66,11 +64,15 @@ module.exports = async function createProject( ); }) ); + + await trackUsage({ event: 'didCopyConfigurationFiles', scope }); } catch (err) { await fse.remove(scope.rootPath); throw err; } + await trackUsage({ event: 'willInstallProjectDependencies', scope }); + const installPrefix = chalk.yellow('Installing dependencies:'); const loader = ora(installPrefix).start(); @@ -93,6 +95,8 @@ module.exports = async function createProject( loader.stop(); console.log(`Dependencies installed ${chalk.green('successfully')}.`); + + await trackUsage({ event: 'didInstallProjectDependencies', scope }); } catch (error) { loader.stop(); await trackUsage({ @@ -119,9 +123,7 @@ module.exports = async function createProject( ); console.log(); console.log( - `cd ${chalk.green(rootPath)} && ${chalk.cyan( - scope.useYarn ? 'yarn' : 'npm' - )} install` + `cd ${chalk.green(rootPath)} && ${chalk.cyan(scope.useYarn ? 'yarn' : 'npm')} install` ); console.log(); From 06f9561f86041ad7838bb7d340f353dd80eae874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Georget?= Date: Fri, 17 Apr 2020 12:33:43 +0200 Subject: [PATCH 2/4] Check package manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Georget --- packages/strapi-generate-new/lib/utils/usage.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/strapi-generate-new/lib/utils/usage.js b/packages/strapi-generate-new/lib/utils/usage.js index 7ab53581fa..8e9bda0740 100644 --- a/packages/strapi-generate-new/lib/utils/usage.js +++ b/packages/strapi-generate-new/lib/utils/usage.js @@ -71,6 +71,7 @@ function trackError({ scope, error }) { version: scope.strapiVersion, nodeVersion: process.version, docker: scope.docker, + useYarn: scope.useYarn, }, }); } catch (err) { @@ -92,6 +93,7 @@ function trackUsage({ event, scope, error }) { node_version: process.version, version: scope.strapiVersion, docker: scope.docker, + useYarn: scope.useYarn, }, }); } catch (err) { From 29f5d299f6f6a08a5667251cb4fee529b500b201 Mon Sep 17 00:00:00 2001 From: Alexandre BODIN Date: Fri, 17 Apr 2020 16:38:46 +0200 Subject: [PATCH 3/4] Fix rackspace upload to use hash (#5855) Signed-off-by: Alexandre Bodin --- .../strapi-provider-upload-rackspace/lib/index.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/strapi-provider-upload-rackspace/lib/index.js b/packages/strapi-provider-upload-rackspace/lib/index.js index 8b851f1ee0..63ddad2afc 100644 --- a/packages/strapi-provider-upload-rackspace/lib/index.js +++ b/packages/strapi-provider-upload-rackspace/lib/index.js @@ -29,7 +29,7 @@ module.exports = { const readStream = streamifier.createReadStream(file.buffer); const writeStream = client.upload({ ...options, - remote: file.name, + remote: file.hash, contentType: file.mime, }); @@ -38,22 +38,21 @@ module.exports = { writeStream.on('error', error => error && reject(error)); writeStream.on('success', result => { remoteURL() - .then(data => + .then(data => { resolve( Object.assign(file, { - name: result.name, mime: result.contentType, url: `${data.cdnSslUri}/${result.name}`, }) - ) - ) + ); + }) .catch(err => console.error(err) && reject(err)); }); }); }, delete(file) { return new Promise((resolve, reject) => { - client.removeFile(config.container, file.name, error => { + client.removeFile(config.container, file.hash, error => { if (error) return reject(error); return resolve(); }); From 4e70d6665c74231dad27381b9d334179014cf48f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20K=C3=B6nig?= Date: Fri, 17 Apr 2020 16:51:25 +0200 Subject: [PATCH 4/4] Fix relation detection for components (#5713) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the deleteOldComponents function in the strapi-connector-mongoose package. This needs to be done, as the id can be either a string or a Buffer at this point. Signed-off-by: Marvin König --- packages/strapi-connector-mongoose/lib/queries.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-connector-mongoose/lib/queries.js b/packages/strapi-connector-mongoose/lib/queries.js index 018f8ae4d0..c3f5ab1e6d 100644 --- a/packages/strapi-connector-mongoose/lib/queries.js +++ b/packages/strapi-connector-mongoose/lib/queries.js @@ -316,7 +316,7 @@ module.exports = ({ model, modelKey, strapi }) => { // verify the provided ids are related to this entity. idsToKeep.forEach(id => { - if (allIds.findIndex(currentId => currentId.toString() === id) === -1) { + if (allIds.findIndex(currentId => currentId.toString() === id.toString()) === -1) { const err = new Error( `Some of the provided components in ${key} are not related to the entity` );