From 7e1b67bc45351501018f40928c7c96626591f3c8 Mon Sep 17 00:00:00 2001 From: Luke Karrys Date: Mon, 13 Feb 2023 16:31:02 -0700 Subject: [PATCH] feat: move functionality to private workspaces --- .eslintrc.js | 2 +- .github/dependabot.yml | 36 +++++++++++ .gitignore | 3 + bin/release-please.js | 2 +- lib/apply/apply-files.js | 2 +- lib/check/check-apply.js | 2 +- lib/index.js | 2 +- package.json | 27 ++++---- workspaces/config/.eslintrc.js | 17 +++++ workspaces/config/.gitignore | 21 +++++++ .../config/lib}/get-git-url.js | 0 .../config/lib}/gitignore.js | 0 .../config/lib/index.js | 12 ++-- .../config/lib/merge-with-arrays.js | 10 +-- .../config/lib}/parse-ci-versions.js | 0 workspaces/config/package.json | 59 +++++++++++++++++ workspaces/config/test/index.js | 8 +++ .../config/test}/parse-ci-versions.js | 2 +- workspaces/content/package.json | 6 +- workspaces/content/test/index.js | 4 +- workspaces/files/.eslintrc.js | 17 +++++ workspaces/files/.gitignore | 21 +++++++ .../files.js => workspaces/files/lib/index.js | 4 +- .../files/lib}/json-diff.js | 0 workspaces/files/lib/merge.js | 10 +++ {lib/util => workspaces/files/lib}/parser.js | 0 .../util => workspaces/files/lib}/template.js | 0 workspaces/files/package.json | 63 +++++++++++++++++++ workspaces/files/test/index.js | 8 +++ workspaces/release-please/.eslintrc.js | 17 +++++ workspaces/release-please/.gitignore | 21 +++++++ .../release-please/lib}/changelog.js | 0 .../release-please/lib}/github.js | 0 .../release-please/lib}/index.js | 0 .../release-please/lib}/node-workspace.js | 0 .../release-please/lib}/util.js | 0 .../release-please/lib}/version.js | 0 workspaces/release-please/package.json | 55 ++++++++++++++++ .../release-please/test}/changelog.js | 4 +- .../release-please/test}/node-workspace.js | 4 +- .../release-please/test}/version.js | 2 +- 41 files changed, 393 insertions(+), 48 deletions(-) create mode 100644 workspaces/config/.eslintrc.js create mode 100644 workspaces/config/.gitignore rename {lib/util => workspaces/config/lib}/get-git-url.js (100%) rename {lib/util => workspaces/config/lib}/gitignore.js (100%) rename lib/config.js => workspaces/config/lib/index.js (96%) rename lib/util/merge.js => workspaces/config/lib/merge-with-arrays.js (56%) rename {lib/util => workspaces/config/lib}/parse-ci-versions.js (100%) create mode 100644 workspaces/config/package.json create mode 100644 workspaces/config/test/index.js rename {test/util => workspaces/config/test}/parse-ci-versions.js (94%) create mode 100644 workspaces/files/.eslintrc.js create mode 100644 workspaces/files/.gitignore rename lib/util/files.js => workspaces/files/lib/index.js (100%) rename {lib/util => workspaces/files/lib}/json-diff.js (100%) create mode 100644 workspaces/files/lib/merge.js rename {lib/util => workspaces/files/lib}/parser.js (100%) rename {lib/util => workspaces/files/lib}/template.js (100%) create mode 100644 workspaces/files/package.json create mode 100644 workspaces/files/test/index.js create mode 100644 workspaces/release-please/.eslintrc.js create mode 100644 workspaces/release-please/.gitignore rename {lib/release-please => workspaces/release-please/lib}/changelog.js (100%) rename {lib/release-please => workspaces/release-please/lib}/github.js (100%) rename {lib/release-please => workspaces/release-please/lib}/index.js (100%) rename {lib/release-please => workspaces/release-please/lib}/node-workspace.js (100%) rename {lib/release-please => workspaces/release-please/lib}/util.js (100%) rename {lib/release-please => workspaces/release-please/lib}/version.js (100%) create mode 100644 workspaces/release-please/package.json rename {test/release-please => workspaces/release-please/test}/changelog.js (94%) rename {test/release-please => workspaces/release-please/test}/node-workspace.js (97%) rename {test/release-please => workspaces/release-please/test}/version.js (97%) diff --git a/.eslintrc.js b/.eslintrc.js index c0a11d4f..092269f0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -11,7 +11,7 @@ const localConfigs = readdir(__dirname) module.exports = { root: true, ignorePatterns: [ - 'workspaces/content/**', + 'workspaces/**', ], extends: [ '@npmcli', diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 163ae155..11011535 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -15,6 +15,18 @@ updates: prefix-development: chore labels: - "Dependencies" + - package-ecosystem: npm + directory: workspaces/config/ + schedule: + interval: daily + allow: + - dependency-type: direct + versioning-strategy: increase-if-necessary + commit-message: + prefix: deps + prefix-development: chore + labels: + - "Dependencies" - package-ecosystem: npm directory: workspaces/content/ schedule: @@ -27,3 +39,27 @@ updates: prefix-development: chore labels: - "Dependencies" + - package-ecosystem: npm + directory: workspaces/files/ + schedule: + interval: daily + allow: + - dependency-type: direct + versioning-strategy: increase-if-necessary + commit-message: + prefix: deps + prefix-development: chore + labels: + - "Dependencies" + - package-ecosystem: npm + directory: workspaces/release-please/ + schedule: + interval: daily + allow: + - dependency-type: direct + versioning-strategy: increase-if-necessary + commit-message: + prefix: deps + prefix-development: chore + labels: + - "Dependencies" diff --git a/.gitignore b/.gitignore index 8e853ba3..6b6e6759 100644 --- a/.gitignore +++ b/.gitignore @@ -28,4 +28,7 @@ !/test/ !/workspaces/ /workspaces/* +!/workspaces/config/ !/workspaces/content/ +!/workspaces/files/ +!/workspaces/release-please/ diff --git a/bin/release-please.js b/bin/release-please.js index 6237d02b..664df62d 100755 --- a/bin/release-please.js +++ b/bin/release-please.js @@ -1,7 +1,7 @@ #!/usr/bin/env node const core = require('@actions/core') -const main = require('../lib/release-please/index.js') +const main = require('@npmcli/template-oss-release-please') const dryRun = !process.env.CI const [branch, forcePullRequest] = process.argv.slice(2) diff --git a/lib/apply/apply-files.js b/lib/apply/apply-files.js index af8034a2..3651d48b 100644 --- a/lib/apply/apply-files.js +++ b/lib/apply/apply-files.js @@ -1,6 +1,6 @@ const fs = require('fs/promises') const log = require('proc-log') -const { rmEach, parseEach } = require('../util/files.js') +const { rmEach, parseEach } = require('@npmcli/template-oss-files') const run = async (dir, files, options) => { const { rm, add } = files diff --git a/lib/check/check-apply.js b/lib/check/check-apply.js index c76399bb..3280f087 100644 --- a/lib/check/check-apply.js +++ b/lib/check/check-apply.js @@ -1,6 +1,6 @@ const log = require('proc-log') const { relative, basename } = require('path') -const { rmEach, parseEach } = require('../util/files.js') +const { rmEach, parseEach } = require('@npmcli/template-oss-files') const { partition } = require('lodash') const localeCompare = require('@isaacs/string-locale-compare')('en') diff --git a/lib/index.js b/lib/index.js index 25e40513..adfcd037 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,6 +1,6 @@ const log = require('proc-log') const { resolve } = require('path') -const getConfig = require('./config.js') +const getConfig = require('@npmcli/template-oss-config') const PackageJson = require('@npmcli/package-json') const mapWorkspaces = require('@npmcli/map-workspaces') diff --git a/package.json b/package.json index fcb74c7d..9be64557 100644 --- a/package.json +++ b/package.json @@ -41,22 +41,15 @@ "@npmcli/git": "^4.0.0", "@npmcli/map-workspaces": "^3.0.0", "@npmcli/package-json": "^3.0.0", + "@npmcli/template-oss-config": "^1.0.0", "@npmcli/template-oss-content": "^1.0.0", + "@npmcli/template-oss-files": "^1.0.0", + "@npmcli/template-oss-release-please": "^1.0.0", "@octokit/rest": "^19.0.4", - "diff": "^5.0.0", - "glob": "^8.0.1", - "handlebars": "^4.7.7", - "hosted-git-info": "^6.0.0", - "ini": "^3.0.1", - "json-parse-even-better-errors": "^3.0.0", - "just-deep-map-values": "^1.1.1", - "just-diff": "^5.0.1", "lodash": "^4.17.21", "npm-package-arg": "^10.0.0", "proc-log": "^3.0.0", - "release-please": "npm:@npmcli/release-please@^14.2.6", - "semver": "^7.3.5", - "yaml": "^2.1.1" + "semver": "^7.3.5" }, "files": [ "bin/", @@ -65,25 +58,27 @@ "devDependencies": { "@npmcli/eslint-config": "^4.0.0", "@npmcli/template-oss": "file:./", - "tap": "^16.0.0" + "tap": "^16.0.0", + "yaml": "^2.2.1" }, "tap": { "timeout": 600, "nyc-arg": [ "--exclude", - "workspaces/content/**", + "workspaces/**", "--exclude", "tap-snapshots/**" ], - "test-ignore": "^(workspaces/content)/" + "test-ignore": "^(workspaces)/" }, "templateOSS": { - "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten." + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "//@npmcli/template-oss-config": "This file is partially managed by @npmcli/template-oss-config. Edits may be overwritten." }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "workspaces": [ - "workspaces/content" + "workspaces/*" ] } diff --git a/workspaces/config/.eslintrc.js b/workspaces/config/.eslintrc.js new file mode 100644 index 00000000..5db9f815 --- /dev/null +++ b/workspaces/config/.eslintrc.js @@ -0,0 +1,17 @@ +/* This file is automatically added by @npmcli/template-oss. Do not edit. */ + +'use strict' + +const { readdirSync: readdir } = require('fs') + +const localConfigs = readdir(__dirname) + .filter((file) => file.startsWith('.eslintrc.local.')) + .map((file) => `./${file}`) + +module.exports = { + root: true, + extends: [ + '@npmcli', + ...localConfigs, + ], +} diff --git a/workspaces/config/.gitignore b/workspaces/config/.gitignore new file mode 100644 index 00000000..79af2bfc --- /dev/null +++ b/workspaces/config/.gitignore @@ -0,0 +1,21 @@ +# This file is automatically added by @npmcli/template-oss. Do not edit. + +# ignore everything in the root +/* + +# keep these +!**/.gitignore +!/.eslintrc.js +!/.eslintrc.local.* +!/.gitignore +!/bin/ +!/CHANGELOG* +!/docs/ +!/lib/ +!/LICENSE* +!/map.js +!/package.json +!/README* +!/scripts/ +!/tap-snapshots/ +!/test/ diff --git a/lib/util/get-git-url.js b/workspaces/config/lib/get-git-url.js similarity index 100% rename from lib/util/get-git-url.js rename to workspaces/config/lib/get-git-url.js diff --git a/lib/util/gitignore.js b/workspaces/config/lib/gitignore.js similarity index 100% rename from lib/util/gitignore.js rename to workspaces/config/lib/gitignore.js diff --git a/lib/config.js b/workspaces/config/lib/index.js similarity index 96% rename from lib/config.js rename to workspaces/config/lib/index.js index 857ebdbc..178162f2 100644 --- a/lib/config.js +++ b/workspaces/config/lib/index.js @@ -1,16 +1,16 @@ const { relative, dirname, join, extname, posix, win32 } = require('path') const { defaults, pick, omit, uniq } = require('lodash') const semver = require('semver') -const parseCIVersions = require('./util/parse-ci-versions.js') -const getGitUrl = require('./util/get-git-url.js') -const gitignore = require('./util/gitignore.js') -const { withArrays } = require('./util/merge.js') -const { FILE_KEYS, parseConfig: parseFiles, getAddedFiles } = require('./util/files.js') +const parseCIVersions = require('./parse-ci-versions.js') +const getGitUrl = require('./get-git-url.js') +const gitignore = require('./gitignore.js') +const withArrays = require('./merge-with-arrays.js') +const { FILE_KEYS, parseConfig: parseFiles, getAddedFiles } = require('@npmcli/template-oss-files') const CONFIG_KEY = 'templateOSS' const getPkgConfig = (pkg) => pkg[CONFIG_KEY] || {} -const { name: NAME, version: LATEST_VERSION } = require('../package.json') +const { name: NAME, version: LATEST_VERSION } = require('../../../package.json') const MERGE_KEYS = [...FILE_KEYS, 'defaultContent', 'content'] const DEFAULT_CONTENT = require.resolve('@npmcli/template-oss-content') diff --git a/lib/util/merge.js b/workspaces/config/lib/merge-with-arrays.js similarity index 56% rename from lib/util/merge.js rename to workspaces/config/lib/merge-with-arrays.js index 90646b82..6b3c262a 100644 --- a/lib/util/merge.js +++ b/workspaces/config/lib/merge-with-arrays.js @@ -1,12 +1,5 @@ const { mergeWith } = require('lodash') -const merge = (...objects) => mergeWith({}, ...objects, (value, srcValue, key) => { - if (Array.isArray(srcValue)) { - // Dont merge arrays, last array wins - return srcValue - } -}) - const mergeWithArrays = (...keys) => (...objects) => mergeWith({}, ...objects, (value, srcValue, key) => { if (Array.isArray(srcValue)) { @@ -17,5 +10,4 @@ const mergeWithArrays = (...keys) => } }) -module.exports = merge -module.exports.withArrays = mergeWithArrays +module.exports = mergeWithArrays diff --git a/lib/util/parse-ci-versions.js b/workspaces/config/lib/parse-ci-versions.js similarity index 100% rename from lib/util/parse-ci-versions.js rename to workspaces/config/lib/parse-ci-versions.js diff --git a/workspaces/config/package.json b/workspaces/config/package.json new file mode 100644 index 00000000..c9b50f41 --- /dev/null +++ b/workspaces/config/package.json @@ -0,0 +1,59 @@ +{ + "name": "@npmcli/template-oss-config", + "version": "1.0.0", + "description": "The config for @npmcli/template-oss", + "private": true, + "main": "lib/index.js", + "scripts": { + "test": "tap", + "lint": "eslint \"**/*.js\"", + "postlint": "template-oss-check", + "template-oss-apply": "template-oss-apply --force", + "lintfix": "npm run lint -- --fix", + "snap": "tap", + "posttest": "npm run lint" + }, + "repository": { + "type": "git", + "url": "https://github.com/npm/template-oss.git", + "directory": "workspaces/config" + }, + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/git": "^4.0.3", + "@npmcli/template-oss-files": "^1.0.0", + "hosted-git-info": "^6.1.1", + "lodash": "^4.17.21", + "semver": "^7.3.8" + }, + "devDependencies": { + "@npmcli/eslint-config": "^4.0.0", + "@npmcli/template-oss": "file:../../", + "tap": "^16.0.0" + }, + "keywords": [], + "author": "GitHub Inc.", + "license": "ISC", + "bugs": { + "url": "https://github.com/npm/template-oss/issues" + }, + "homepage": "https://github.com/npm/template-oss#readme", + "files": [ + "bin/", + "lib/" + ], + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "//@npmcli/template-oss-config": "This file is partially managed by @npmcli/template-oss-config. Edits may be overwritten." + }, + "tap": { + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ], + "check-coverage": false + } +} diff --git a/workspaces/config/test/index.js b/workspaces/config/test/index.js new file mode 100644 index 00000000..c9a4335c --- /dev/null +++ b/workspaces/config/test/index.js @@ -0,0 +1,8 @@ +const { resolve } = require('path') +const t = require('tap') + +t.test('resolved to content index', async (t) => { + const path = require.resolve('..') + t.equal(path, resolve('lib/index.js')) + t.ok(require(path)) +}) diff --git a/test/util/parse-ci-versions.js b/workspaces/config/test/parse-ci-versions.js similarity index 94% rename from test/util/parse-ci-versions.js rename to workspaces/config/test/parse-ci-versions.js index 85226e76..5429a874 100644 --- a/test/util/parse-ci-versions.js +++ b/workspaces/config/test/parse-ci-versions.js @@ -1,5 +1,5 @@ const t = require('tap') -const parse = require('../../lib/util/parse-ci-versions.js') +const parse = require('../lib/parse-ci-versions.js') const targets = [ [[], ''], diff --git a/workspaces/content/package.json b/workspaces/content/package.json index 04d664ba..48e481a0 100644 --- a/workspaces/content/package.json +++ b/workspaces/content/package.json @@ -38,12 +38,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "templateOSS": { - "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten." + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "//@npmcli/template-oss-config": "This file is partially managed by @npmcli/template-oss-config. Edits may be overwritten." }, "tap": { "nyc-arg": [ "--exclude", "tap-snapshots/**" - ] + ], + "check-coverage": false } } diff --git a/workspaces/content/test/index.js b/workspaces/content/test/index.js index d49e01d0..c9a4335c 100644 --- a/workspaces/content/test/index.js +++ b/workspaces/content/test/index.js @@ -1,8 +1,8 @@ const { resolve } = require('path') const t = require('tap') -t.test('resolved to content index', () => { +t.test('resolved to content index', async (t) => { const path = require.resolve('..') t.equal(path, resolve('lib/index.js')) t.ok(require(path)) -}) \ No newline at end of file +}) diff --git a/workspaces/files/.eslintrc.js b/workspaces/files/.eslintrc.js new file mode 100644 index 00000000..5db9f815 --- /dev/null +++ b/workspaces/files/.eslintrc.js @@ -0,0 +1,17 @@ +/* This file is automatically added by @npmcli/template-oss. Do not edit. */ + +'use strict' + +const { readdirSync: readdir } = require('fs') + +const localConfigs = readdir(__dirname) + .filter((file) => file.startsWith('.eslintrc.local.')) + .map((file) => `./${file}`) + +module.exports = { + root: true, + extends: [ + '@npmcli', + ...localConfigs, + ], +} diff --git a/workspaces/files/.gitignore b/workspaces/files/.gitignore new file mode 100644 index 00000000..79af2bfc --- /dev/null +++ b/workspaces/files/.gitignore @@ -0,0 +1,21 @@ +# This file is automatically added by @npmcli/template-oss. Do not edit. + +# ignore everything in the root +/* + +# keep these +!**/.gitignore +!/.eslintrc.js +!/.eslintrc.local.* +!/.gitignore +!/bin/ +!/CHANGELOG* +!/docs/ +!/lib/ +!/LICENSE* +!/map.js +!/package.json +!/README* +!/scripts/ +!/tap-snapshots/ +!/test/ diff --git a/lib/util/files.js b/workspaces/files/lib/index.js similarity index 100% rename from lib/util/files.js rename to workspaces/files/lib/index.js index c0be36ad..aae52b4c 100644 --- a/lib/util/files.js +++ b/workspaces/files/lib/index.js @@ -1,9 +1,9 @@ const { join } = require('path') -const { defaultsDeep } = require('lodash') const { promisify } = require('util') -const merge = require('./merge.js') +const { defaultsDeep } = require('lodash') const deepMapValues = require('just-deep-map-values') const glob = promisify(require('glob')) +const merge = require('./merge.js') const Parser = require('./parser.js') const template = require('./template.js') diff --git a/lib/util/json-diff.js b/workspaces/files/lib/json-diff.js similarity index 100% rename from lib/util/json-diff.js rename to workspaces/files/lib/json-diff.js diff --git a/workspaces/files/lib/merge.js b/workspaces/files/lib/merge.js new file mode 100644 index 00000000..e8375903 --- /dev/null +++ b/workspaces/files/lib/merge.js @@ -0,0 +1,10 @@ +const { mergeWith } = require('lodash') + +const merge = (...objects) => mergeWith({}, ...objects, (value, srcValue, key) => { + if (Array.isArray(srcValue)) { + // Dont merge arrays, last array wins + return srcValue + } +}) + +module.exports = merge diff --git a/lib/util/parser.js b/workspaces/files/lib/parser.js similarity index 100% rename from lib/util/parser.js rename to workspaces/files/lib/parser.js diff --git a/lib/util/template.js b/workspaces/files/lib/template.js similarity index 100% rename from lib/util/template.js rename to workspaces/files/lib/template.js diff --git a/workspaces/files/package.json b/workspaces/files/package.json new file mode 100644 index 00000000..20baf2f5 --- /dev/null +++ b/workspaces/files/package.json @@ -0,0 +1,63 @@ +{ + "name": "@npmcli/template-oss-files", + "version": "1.0.0", + "description": "The files for @npmcli/template-oss", + "private": true, + "main": "lib/index.js", + "scripts": { + "test": "tap", + "lint": "eslint \"**/*.js\"", + "postlint": "template-oss-check", + "template-oss-apply": "template-oss-apply --force", + "lintfix": "npm run lint -- --fix", + "snap": "tap", + "posttest": "npm run lint" + }, + "repository": { + "type": "git", + "url": "https://github.com/npm/template-oss.git", + "directory": "workspaces/files" + }, + "devDependencies": { + "@npmcli/eslint-config": "^4.0.0", + "@npmcli/template-oss": "file:../../", + "tap": "^16.0.0" + }, + "keywords": [], + "author": "GitHub Inc.", + "license": "ISC", + "bugs": { + "url": "https://github.com/npm/template-oss/issues" + }, + "homepage": "https://github.com/npm/template-oss#readme", + "files": [ + "bin/", + "lib/" + ], + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "//@npmcli/template-oss-config": "This file is partially managed by @npmcli/template-oss-config. Edits may be overwritten." + }, + "tap": { + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ], + "check-coverage": false + }, + "dependencies": { + "@npmcli/package-json": "^3.0.0", + "diff": "^5.1.0", + "glob": "^8.1.0", + "handlebars": "^4.7.7", + "ini": "^3.0.1", + "json-parse-even-better-errors": "^3.0.0", + "just-deep-map-values": "^1.2.0", + "just-diff": "^5.2.0", + "lodash": "^4.17.21", + "yaml": "^2.2.1" + } +} diff --git a/workspaces/files/test/index.js b/workspaces/files/test/index.js new file mode 100644 index 00000000..c9a4335c --- /dev/null +++ b/workspaces/files/test/index.js @@ -0,0 +1,8 @@ +const { resolve } = require('path') +const t = require('tap') + +t.test('resolved to content index', async (t) => { + const path = require.resolve('..') + t.equal(path, resolve('lib/index.js')) + t.ok(require(path)) +}) diff --git a/workspaces/release-please/.eslintrc.js b/workspaces/release-please/.eslintrc.js new file mode 100644 index 00000000..5db9f815 --- /dev/null +++ b/workspaces/release-please/.eslintrc.js @@ -0,0 +1,17 @@ +/* This file is automatically added by @npmcli/template-oss. Do not edit. */ + +'use strict' + +const { readdirSync: readdir } = require('fs') + +const localConfigs = readdir(__dirname) + .filter((file) => file.startsWith('.eslintrc.local.')) + .map((file) => `./${file}`) + +module.exports = { + root: true, + extends: [ + '@npmcli', + ...localConfigs, + ], +} diff --git a/workspaces/release-please/.gitignore b/workspaces/release-please/.gitignore new file mode 100644 index 00000000..79af2bfc --- /dev/null +++ b/workspaces/release-please/.gitignore @@ -0,0 +1,21 @@ +# This file is automatically added by @npmcli/template-oss. Do not edit. + +# ignore everything in the root +/* + +# keep these +!**/.gitignore +!/.eslintrc.js +!/.eslintrc.local.* +!/.gitignore +!/bin/ +!/CHANGELOG* +!/docs/ +!/lib/ +!/LICENSE* +!/map.js +!/package.json +!/README* +!/scripts/ +!/tap-snapshots/ +!/test/ diff --git a/lib/release-please/changelog.js b/workspaces/release-please/lib/changelog.js similarity index 100% rename from lib/release-please/changelog.js rename to workspaces/release-please/lib/changelog.js diff --git a/lib/release-please/github.js b/workspaces/release-please/lib/github.js similarity index 100% rename from lib/release-please/github.js rename to workspaces/release-please/lib/github.js diff --git a/lib/release-please/index.js b/workspaces/release-please/lib/index.js similarity index 100% rename from lib/release-please/index.js rename to workspaces/release-please/lib/index.js diff --git a/lib/release-please/node-workspace.js b/workspaces/release-please/lib/node-workspace.js similarity index 100% rename from lib/release-please/node-workspace.js rename to workspaces/release-please/lib/node-workspace.js diff --git a/lib/release-please/util.js b/workspaces/release-please/lib/util.js similarity index 100% rename from lib/release-please/util.js rename to workspaces/release-please/lib/util.js diff --git a/lib/release-please/version.js b/workspaces/release-please/lib/version.js similarity index 100% rename from lib/release-please/version.js rename to workspaces/release-please/lib/version.js diff --git a/workspaces/release-please/package.json b/workspaces/release-please/package.json new file mode 100644 index 00000000..54f5f665 --- /dev/null +++ b/workspaces/release-please/package.json @@ -0,0 +1,55 @@ +{ + "name": "@npmcli/template-oss-release-please", + "version": "1.0.0", + "description": "", + "private": true, + "main": "lib/index.js", + "scripts": { + "test": "tap", + "lint": "eslint \"**/*.js\"", + "postlint": "template-oss-check", + "template-oss-apply": "template-oss-apply --force", + "lintfix": "npm run lint -- --fix", + "snap": "tap", + "posttest": "npm run lint" + }, + "repository": { + "type": "git", + "url": "https://github.com/npm/template-oss.git", + "directory": "workspaces/release-please" + }, + "keywords": [], + "author": "GitHub Inc.", + "license": "ISC", + "bugs": { + "url": "https://github.com/npm/template-oss/issues" + }, + "homepage": "https://github.com/npm/template-oss#readme", + "files": [ + "bin/", + "lib/" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "release-please": "npm:@npmcli/release-please@^14.2.6", + "semver": "^7.3.8" + }, + "devDependencies": { + "@npmcli/eslint-config": "^4.0.0", + "@npmcli/template-oss": "file:../../", + "tap": "^16.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten." + }, + "tap": { + "check-coverage": false, + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ] + } +} diff --git a/test/release-please/changelog.js b/workspaces/release-please/test/changelog.js similarity index 94% rename from test/release-please/changelog.js rename to workspaces/release-please/test/changelog.js index dee6f118..356110fb 100644 --- a/test/release-please/changelog.js +++ b/workspaces/release-please/test/changelog.js @@ -1,5 +1,5 @@ const t = require('tap') -const ChangelogNotes = require('../../lib/release-please/changelog.js') +const ChangelogNotes = require('../lib/changelog.js') const mockChangelog = async ({ shas = true, authors = true, previousTag = true } = {}) => { const commits = [{ @@ -69,7 +69,7 @@ const mockChangelog = async ({ shas = true, authors = true, previousTag = true } version: '1.0.0', previousTag: previousTag ? 'v0.1.0' : null, currentTag: 'v1.0.0', - changelogSections: require('../../release-please-config.json')['changelog-sections'], + changelogSections: require('../../../release-please-config.json')['changelog-sections'], }) return notes diff --git a/test/release-please/node-workspace.js b/workspaces/release-please/test/node-workspace.js similarity index 97% rename from test/release-please/node-workspace.js rename to workspaces/release-please/test/node-workspace.js index 09e523eb..b6766a8d 100644 --- a/test/release-please/node-workspace.js +++ b/workspaces/release-please/test/node-workspace.js @@ -3,8 +3,8 @@ const { setLogger } = require('release-please') // this avoids a release-please const { Node } = require('release-please/build/src/strategies/node') const { Version } = require('release-please/build/src/version') const { TagName } = require('release-please/build/src/util/tag-name') -const NodeWorkspace = require('../../lib/release-please/node-workspace') -const Changelog = require('../../lib/release-please/changelog') +const NodeWorkspace = require('../lib/node-workspace') +const Changelog = require('../lib/changelog') setLogger({ error () {}, warn () {}, info () {}, debug () {}, trace () {} }) diff --git a/test/release-please/version.js b/workspaces/release-please/test/version.js similarity index 97% rename from test/release-please/version.js rename to workspaces/release-please/test/version.js index 063a8514..fa09fd57 100644 --- a/test/release-please/version.js +++ b/workspaces/release-please/test/version.js @@ -1,5 +1,5 @@ const t = require('tap') -const Version = require('../../lib/release-please/version.js') +const Version = require('../lib/version.js') const COMMITS = { major: [{ type: 'feat' }, {}, {}, { breaking: true }],