joshuakgoldberg / create-typescript-app Goto Github PK
View Code? Open in Web Editor NEWQuickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. π
License: MIT License
Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. π
License: MIT License
main
branch of the repository.Folks sometimes misunderstand the "accepting PRs" label concept and send a PR for an issue not yet ready to accept one. The compliance bot should post an informative message when that happens.
No response
main
branch of the repository.Clicking the Use this template option on GitHub should create a new repo with no issues.
JoshuaKGoldberg/ts-function-inliner#1
## :rotating_light: The automated release from the `main` branch failed. :rotating_light:
I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.
You can find below the list of errors reported by **semantic-release**. Each one of them has to be resolved in order to automatically publish your package. Iβm sure you can fix this πͺ.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, **semantic-release** will release your package the next time you push a commit to the `main` branch. You can also manually restart the failed CI job that runs **semantic-release**.
If you are not sure how to resolve this, here are some links that can help you:
- [Usage documentation](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/README.md)
- [Frequently Asked Questions](https://github.com/semantic-release/semantic-release/blob/caribou/docs/support/FAQ.md)
- [Support channels](https://github.com/semantic-release/semantic-release#get-help)
If those donβt help, or if this issue is reporting something you think isnβt right, you can always ask the humans behind **[semantic-release](https://github.com/semantic-release/semantic-release/issues/new)**.
---
### No npm token specified.
An [npm token](https://github.com/semantic-release/npm/blob/master/README.md#npm-registry-authentication) must be created and set in the `NPM_TOKEN` environment variable on your CI environment.
Please make sure to create an [npm token](https://docs.npmjs.com/getting-started/working_with_tokens#how-to-create-new-tokens) and to set it in the `NPM_TOKEN` environment variable on your CI environment. The token must allow to publish to the registry `https://registry.npmjs.org/`.
---
Good luck with your project β¨
Your **[semantic-release](https://github.com/semantic-release/semantic-release)** bot :package::rocket:
<!-- semantic-release:github -->
No response
main
branch of the repository.[7:18:49 PM] [semantic-release] βΊ βΉ Start step "prepare" of plugin "@semantic-release/git"
[7:18:49 PM] [semantic-release] βΊ β Failed step "prepare" of plugin "@semantic-release/git"
[7:18:49 PM] [semantic-release] βΊ β An error occurred while running semantic-release: TypeError: assets.map is not a function
at module.exports (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/@[email protected][email protected]/node_modules/@semantic-release/git/lib/prepare.js:37:14)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async prepare (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/@[email protected][email protected]/node_modules/@semantic-release/git/index.js:28:3)
at async validator (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/lib/plugins/normalize.js:34:24)
at async /home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/lib/plugins/pipeline.js:37:34
at async /home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/lib/plugins/pipeline.js:31:3
at async pluginsConf.<computed> [as prepare] (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/lib/plugins/index.js:80:11)
at async run (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/index.js:193:3)
at async module.exports (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/index.js:269:22)
at async module.exports (/home/runner/work/template-typescript-node-package/template-typescript-node-package/node_modules/.pnpm/[email protected]/node_modules/semantic-release/cli.js:55:5) {
pluginName: '@semantic-release/git'
}
main
branch of the repository.The bot shouldn't be checking in any source code.
I'm so confused. Why is it doing this to me??
No response
main
branch of the repository.https://github.com/semantic-release/changelog -- let's use it!
No response
main
branch of the repository.This package got to 1.X
suddenly, with great surprise to me. No thank you.
No response
main
branch of the repository.I like those tables like on https://github.com/LearningTypeScript/projects#contributors- π
No response
main
branch of the repository.As mentioned in #55 (comment), whenever the all-contributors bot commits to the README.md, it breaks formatting. README.md's top contents became:
This might be an issue to post on the all-contributors repo?
This is a little tricky to fix here because README.md is also auto-formatted with Prettier.
main
branch of the repository.I know I missed a few. I'll add more.
No response
main
branch of the repository.When you have yarn build
running, yarn test
shouldn't pick up lib/**/*.test.js*
files.
It does now. Oops.
I'll just move to dist/
, as that's supported by vitest natively.
main
branch of the repository.Copying from JoshuaKGoldberg/refined-saved-replies#68: it'd be good to check in an .nvmrc
and add an engines
entry in the package.json
. Some packages only work on certain Node versions.
No response
main
branch of the repository.It's TODO: ...
now. Let's go with a real description.
No response
main
branch of the repository.There's no need for them in packages. They should be removed.
Nothing removes them now. So they're published.
No response
main
branch of the repository.yarn build
needs to run before publish to build .js
files & co.
That doesn't happen right now.
No response
main
branch of the repository.Right now, CONTRIBUTING.md mentions that you should search for all open issues with the good first issue
tag. But that's not quite accurate: anything explicitly assigned to someone should be ignored. So the text and link in the docs should be updated.
No response
main
branch of the repository.There should be a main
field in package.json
: https://docs.npmjs.com/cli/v8/configuring-npm/package-json#main
There isn't.
Also, the types
file should be either import type
imported, or imported as types.js
. Otherwise the runtime import for the file cannot be found.
main
branch of the repository.What a beautiful plugin: https://github.com/lydell/eslint-plugin-simple-import-sort. Let's add it to the ESLint config.
No response
main
branch of the repository.Problem: sometimes duplicate issues are filed under different labels! E.g. someone might think they're reporting a bug, only for it to actually be a duplicate of a feature request.
Let's remove the label:*
queries & similar from those suggested searches.
No response
main
branch of the repository.Repositories should be able to have a protected main
branch.
From #3 (comment):
when I protected my main branch I found I couldn't release anymore (possibly because it's trying to update the main branch with dist?): https://github.com/johnnyreilly/easyauth-deeplink/actions/runs/3612405437/jobs/6087493810
[8:20:16 AM] [semantic-release] [@semantic-release/git] βΊ βΉ Found 4 file(s) to commit
[8:20:18 AM] [semantic-release] βΊ β Failed step "prepare" of plugin "@semantic-release/git"
[8:20:18 AM] [semantic-release] βΊ β An error occurred while running semantic-release: Error: Command failed with exit code 1: git push --tags https://github.com/johnnyreilly/easyauth-deeplink HEAD:main
remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: 3 of 3 required status checks are expected. Changes must be made through a pull request.
To https://github.com/johnnyreilly/easyauth-deeplink
! [remote rejected] HEAD -> main (protected branch hook declined)
error: failed to push some refs to 'https://github.com/johnnyreilly/easyauth-deeplink'
at makeError (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/execa/lib/error.js:60:11)
at handlePromise (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/execa/index.js:118:26)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async push (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/@semantic-release/git/lib/git.js:51:3)
at async module.exports (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/@semantic-release/git/lib/prepare.js:[69](https://github.com/johnnyreilly/easyauth-deeplink/actions/runs/3612405437/jobs/6087493810#step:5:70):5)
at async prepare (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/@semantic-release/git/index.js:28:3)
at async validator (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/semantic-release/lib/plugins/normalize.js:34:24)
at async /home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/semantic-release/lib/plugins/pipeline.js:37:34
at async /home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/semantic-release/lib/plugins/pipeline.js:31:3
at async pluginsConf.<computed> [as prepare] (/home/runner/work/easyauth-deeplink/easyauth-deeplink/node_modules/semantic-release/lib/plugins/index.js:80:11) {
shortMessage: 'Command failed with exit code 1: git push --tags https://github.com/johnnyreilly/easyauth-deeplink HEAD:main',
command: 'git push --tags https://github.com/johnnyreilly/easyauth-deeplink HEAD:main',
escapedCommand: 'git push --tags "https://github.com/johnnyreilly/easyauth-deeplink" "HEAD:main"',
exitCode: 1,
signal: undefined,
signalDescription: undefined,
stdout: '',
stderr: 'remote: error: GH006: Protected branch update failed for refs/heads/main. \n' +
'remote: error: 3 of 3 required status checks are expected. Changes must be made through a pull request. \n' +
'To [https://github.com/johnnyreilly/easyauth-deeplink\n](https://github.com/johnnyreilly/easyauth-deeplink/n)' +
' ! [remote rejected] HEAD -> main (protected branch hook declined)\n' +
"error: failed to push some refs to 'https://github.com/johnnyreilly/easyauth-deeplink'",
failed: true,
timedOut: false,
isCanceled: false,
killed: false,
pluginName: '@semantic-release/git'
}
I'll want to add this to the setup script in #77 probably: https://gist.github.com/tiesmaster/ffd4f4a8b4dd2c127516c93af6cc7b46
main
branch of the repository.I have two conflicting desires:
Example of the incident kind I want to avoid: https://snyk.io/blog/open-source-npm-packages-colors-faker
I don't know whether dependabot has a way to wait some number of days after a version is released. If there is, that'd be ideal. If not, some kind of action that's pending for 3 days after PR creation would be nice. I don't know if that's doable either.
I haven't looked into this very much π.
Another possibility is that Renovate would be better able to do this thing.
Issue clone of LearningTypeScript/site#46.
main
branch of the repository.https://github.com/dustinspecker/awesome-eslint has a huge list of plugins. Let's add in any more that are relevant.
Sibling issue to #16.
main
branch of the repository.https://typescript-eslint.io/architecture/typescript-estree: parserOptions.allowAutomaticSingleRunInference
is an opt-in feature that should get more testing in real-world projects. I'm volunteering to be a tester.
No response
main
branch of the repository.Hard to believe https://github.com/JoshuaKGoldberg/sentences-per-line is 4 years old! Let's use it.
I'll probably want to revamp that repo and bring it into my github.com/JoshuaKGoldberg/JoshuaKGoldberg README.md
main
branch of the repository.#82 added usage of the gh
GitHub CLI for a few project settings. But there are a few areas of project settings not doable just through that:
Those should also be set up for repositories, so you don't have to do it manually.
I'd like to use octokit.js or some equivalent to also set those up in scripts/setup.js
.
main
branch of the repository.The "plugin:typescript-sort-keys/recommended", should be listed in the "extends" key in the "overrides" key for the files "**/*.{ts,tsx}".
No response
main
branch of the repository.I'd like to have automatic tagging & publishing of releases set up. They should release to npm and have an equivalent tagged release on GitHub.
Right now there's a Publish job that publishes to npm. It doesn't auto-bump packages and is not integrated with GitHub Releases though.
main
branch of the repository.<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
...not so many!
No response
main
branch of the repository.I sometimes fork this template into a new repo, and then push a few initial commits as I work on it. I wouldn't want those initial commits to try to be published - the package generally isn't ready yet.
#33 is happening for them. Example: JoshuaKGoldberg/typescript-static-analysis-hidden-gems#1 (comment)
I'm thinking packages should start at version 0.0.0
, and only after bumping them to a higher version should the release flow trigger.
cc @sinchang if you're interested in taking this one! π
main
branch of the repository.Nice little badge improvement IMO.
No response
main
branch of the repository.Sometimes duplicate issues are filed in the wrong category, and/or have labels like type: bug
removed. Let's remove any labels like area: *
or type: *
from the searches in this repo's issue templates: https://github.com/JoshuaKGoldberg/template-typescript-node-package/tree/main/.github/ISSUE_TEMPLATE
Same change as typescript-eslint/typescript-eslint#6123, just in this repo.
main
branch of the repository.https://github.com/nadeesha/ts-prune - one of my favorite libraries! Let's add it in as another linter.
No response
main
branch of the repository.I want sorted fields in my JSON files! π
No response
main
branch of the repository.There are other linters (spelling, markdown) in CI but not ESLint!
No response
main
branch of the repository.There are searches linked in .md
docs for issue labels. But, nowhere is it mentioned what that total list is.
It'd be nice to have a saved script / utility that auto-creates them... and maybe even standardizes colors.
main
branch of the repository.I'm adding a lot of ESLint configuration out-of-the-box (#16, #17). It'd be nice to put it all in one place.
main
branch of the repository.greet
takes in a GreetOptions
options object where the only required property is message: string
. Let's make greet
take string | GreetOptions
.
This is more for me to exercise semantic-release than anything else π
main
branch of the repository.Similar to #32's specific sub-request that I'll have to order package.json
fields alphabetically. But this is for all TypeScript code!
No response
main
branch of the repository.DavidAnson/markdownlint#594 - the .markdownlint.json
file in this repo should be able to be simplified to just one line, to disable formatting rules.
No response
main
branch of the repository.As of JoshuaKGoldberg/emoji-blast#53, emojisplosion reports a surprisingly high coverage level of 62%:
That's ... wrong.
No response
main
branch of the repository.https://typescript-eslint.io/rules/naming-convention is a good rule but requires some configuration. I'll admit, I haven't figured out my preferred config for it yet.
Related: #18
main
branch of the repository.Hooray, constant PR spam... π
No response
main
branch of the repository.DEVELOPMENT.md
is pretty sparse right now. I'll add more details.
No response
main
branch of the repository.There's no need to publish test files to npm.
No response
main
branch of the repository.There are a few things that a repository should do to really use this package:
main
branchIt'd be nice to have a script that sets all this stuff up for you. And uses the GitHub API to do so.
The script should probably be documented in the README.md... and include removal of that documentation as part of its effects.
main
branch of the repository.The compliance bot will skip standard checks for users who are maintainers/admins on a repo. Let's disable that so I can get linted like everyone else! π
Tooling features such as #23 will be easier for me to develop when this is in.
main
branch of the repository.Everyone seems to like pnpm these days. And it's annoying how Yarn so aggressively moved to the zip-based approach, which I do not like.
No response
main
branch of the repository.I'll want to document what to do to take this template & make a new repo out of it.
At the very least:
template-typescript-node-package
to the new name.md
filessrc/
NPM_TOKEN
env variable in settingsGH_TOKEN
is available on your account in CI0.1.0
or 0.0.1
main
branch of the repository.Codecov, Code Climate, Coveralls - all options!
I don't want to bake in minimum coverage %s to this template (that's a bit much for a general-purpose template). But at least reporting changes is good.
main
branch of the repository.Breaking out of discussion in #66.
Consider using lint-staged
to apply linting rules to staged (e.g. changed) files locally via a precommit hook.
tslint-to-eslint-config was the recommendation to benchmark against. The initial concern being ESLint + type info could cause slowness.
No response
main
branch of the repository.https://www.npmjs.com/package/yarn-deduplicate is a wonderful thing.
If #10 happens, the equivalent tool (if one exists / is needed) should be used there.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.