From feaa90ac21efba7731dfa9d76ad13926d7258abc Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Mon, 16 Aug 2021 16:17:59 -0700 Subject: [PATCH] chore: get rid of shrinkwrap and related functionality --- ci-jobs/create-release-branch.yml | 29 ---------------------- ci-jobs/templates/bundle-template.yml | 2 +- packages/appium/check-npm-pack-files.js | 1 - packages/appium/check-pruned-shrinkwrap.js | 25 ------------------- packages/appium/gulpfile.js | 22 ---------------- packages/appium/package.json | 8 ------ packages/appium/test/shrinkwrap-specs.js | 23 ----------------- 7 files changed, 1 insertion(+), 109 deletions(-) delete mode 100644 ci-jobs/create-release-branch.yml delete mode 100644 packages/appium/check-pruned-shrinkwrap.js delete mode 100644 packages/appium/test/shrinkwrap-specs.js diff --git a/ci-jobs/create-release-branch.yml b/ci-jobs/create-release-branch.yml deleted file mode 100644 index 27a4b0f11..000000000 --- a/ci-jobs/create-release-branch.yml +++ /dev/null @@ -1,29 +0,0 @@ -steps: -- task: NodeTool@0 - inputs: - versionSpec: '12.x' -- script: npm install - displayName: NPM install -- script: | - git remote add triager https://triager:$GITHUB_TOKEN@github.com/appium/appium - git checkout -b $MINOR_BRANCH_NAME - git status - node ./ci-jobs/scripts/set-package-json-version - rm -rf package-lock.json - npm shrinkwrap - git add . - git commit -n -m "Set version to $(MINOR_BRANCH_NAME).0-rc.0" - git push -u triager $MINOR_BRANCH_NAME - displayName: Create branch - env: - GITHUB_TOKEN: $(GITHUB_TOKEN) - MINOR_BRANCH_NAME: $(MINOR_BRANCH_NAME) -- script: | - git tag $MINOR_BRANCH_NAME.0-rc.0 - git push --tags -u triager - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc - npm publish --tag $(node ./ci-jobs/scripts/parse-tag) - env: - NPM_TOKEN: $(NPM_TOKEN) - displayName: Tag and Publish - diff --git a/ci-jobs/templates/bundle-template.yml b/ci-jobs/templates/bundle-template.yml index 7946287d9..6558946c3 100644 --- a/ci-jobs/templates/bundle-template.yml +++ b/ci-jobs/templates/bundle-template.yml @@ -12,7 +12,7 @@ jobs: - task: NodeTool@0 inputs: versionSpec: '12.x' - - script: npm ci || npm install # "npm ci" if shrinkwrap is present + - script: npm install displayName: Install NPM Dependencies - script: npm run build displayName: npm run build diff --git a/packages/appium/check-npm-pack-files.js b/packages/appium/check-npm-pack-files.js index 319fb7d8f..0d5a1e413 100644 --- a/packages/appium/check-npm-pack-files.js +++ b/packages/appium/check-npm-pack-files.js @@ -5,7 +5,6 @@ const res = JSON.parse(childProcess.execSync('npm pack --dry-run --json --ignore // List of files we are testing to make sure they are included in package const testFiles = [ - 'npm-shrinkwrap.json', // Check that npm-shrinkwrap.json is being packed 'LICENSE', // Check that license is included 'build/lib/appium.js', // Sanity check that build files are being included by testing just one file ]; diff --git a/packages/appium/check-pruned-shrinkwrap.js b/packages/appium/check-pruned-shrinkwrap.js deleted file mode 100644 index df641a0af..000000000 --- a/packages/appium/check-pruned-shrinkwrap.js +++ /dev/null @@ -1,25 +0,0 @@ -const _ = require('lodash'); -const { asyncify } = require('asyncbox'); -const { fs, logger } = require('@appium/support'); -const path = require('path'); - -const log = new logger.getLogger('ShrinkwrapValidator'); - -async function main () { - const shrinkwrapPath = path.resolve('npm-shrinkwrap.json'); - if (!(await fs.exists(shrinkwrapPath))) { - log.info('No shrinkwrap found. Skipping shrinkwrap check'); - return; - } - const shrinkwrap = JSON.parse(await fs.readFile(shrinkwrapPath)); - const backupShrinkwrap = JSON.parse(await fs.readFile(path.resolve('npm-shrinkwrap-backup.json'))); - log.info('Checking that pruned shrinkwrap is a subset of primary shrinkwrap'); - if (!_.isMatch(backupShrinkwrap, shrinkwrap)) { - log.errorAndThrow('Pruned shrinkwrap (shrinkwrap with dev dependencies removed) is not a subset of the original npm-shrinkwrap.json'); - } - log.info('Shrinkwrap check passed'); -} - -if (require.main === module) { - asyncify(main); -} diff --git a/packages/appium/gulpfile.js b/packages/appium/gulpfile.js index ccd56ed80..0ce454932 100644 --- a/packages/appium/gulpfile.js +++ b/packages/appium/gulpfile.js @@ -14,28 +14,6 @@ const log = require('fancy-log'); gulp.task('copy-fixtures', () => gulp.src('./test/fixtures/*').pipe(gulp.dest('./build/test/fixtures/'))); -// remove 'fsevents' from shrinkwrap, since it causes errors on non-Mac hosts -// see https://github.com/npm/npm/issues/2679 - -gulp.task('fixShrinkwrap', function fixShrinkwrap (done) { - let shrinkwrap; - try { - shrinkwrap = require('./npm-shrinkwrap.json'); - } catch (err) { - log.error('Could not find shrinkwrap; skipping fixing shrinkwrap. ' + - `(Original error: ${err.message})`); - return done(); - } - - if (!(shrinkwrap.dependencies || {}).fsevents) { - return done(); - } - - delete shrinkwrap.dependencies.fsevents; - const shrinkwrapString = JSON.stringify(shrinkwrap, null, ' ') + '\n'; - fs.writeFile('./npm-shrinkwrap.json', shrinkwrapString, done); -}); - boilerplate({ build: 'appium', files: [ diff --git a/packages/appium/package.json b/packages/appium/package.json index 23d468e91..5b12d1dda 100644 --- a/packages/appium/package.json +++ b/packages/appium/package.json @@ -32,20 +32,12 @@ "bin", "lib", "build/lib", - "npm-shrinkwrap.json", "postinstall.js" ], "scripts": { "generate-docs": "gulp transpile && node ./build/commands-yml/parse.js", "postinstall": "node ./postinstall.js", "install-fake-driver": "node . driver install --source=local ../fake-driver", - "prepublishOnly": "npm run shrinkwrap:prune && npm run shrinkwrap:fix", - "postpublish": "npm run shrinkwrap:restore", - "shrinkwrap:backup": "mv npm-shrinkwrap.json npm-shrinkwrap-backup.json", - "shrinkwrap:check-pruned": "node check-pruned-shrinkwrap.js", - "shrinkwrap:fix": "gulp fixShrinkwrap", - "shrinkwrap:prune": "!(test -e npm-shrinkwrap.json) || (npm ci --production --ignore-scripts && npm run backup-shrinkwrap && npm shrinkwrap)", - "shrinkwrap:restore": "(test -e npm-shrinkwrap.json) || (mv npm-shrinkwrap-backup.json npm-shrinkwrap.json)", "upload": "gulp github-upload", "zip": "zip -qr appium.zip .", "zip-and-upload": "npm run zip && npm run upload" diff --git a/packages/appium/test/shrinkwrap-specs.js b/packages/appium/test/shrinkwrap-specs.js deleted file mode 100644 index 3ab2161fa..000000000 --- a/packages/appium/test/shrinkwrap-specs.js +++ /dev/null @@ -1,23 +0,0 @@ -// these are extra unit tests to ensure that appium is set up correctly for publishing - -import _ from 'lodash'; - - -const expect = chai.expect; - -describe.skip('shrinkwrap checks', function () { - it('shrinkwrap file should exist', function () { - require('../../npm-shrinkwrap.json'); - }); - - it('shrinkwrap should not include fsevents', function () { - // fsevents is an optional dep that only works on Mac. - // if it's in shrinkwrap, non-Mac hosts won't be able to install appium - let shrinkwrap = require('../../npm-shrinkwrap.json'); - expect(shrinkwrap.dependencies, 'no shrinkwrap file found. run `npm shrinkwrap`').to.exist; - _.values(shrinkwrap.dependencies).length.should.be.above(10); - let message = "'fsevents' entry found in shrinkwrap. It causes problems " + - 'on non-Mac systems. run `gulp fixShrinkwrap` and try again'; - expect(shrinkwrap.dependencies.fsevents, message).to.not.exist; - }); -});