Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📌 Tracking: Rolling out v2 and automated updates to other repositories I work on #1966

Closed
JoshuaKGoldberg opened this issue Mar 6, 2025 · 2 comments
Assignees
Labels
area: documentation Improvements or additions to docs

Comments

@JoshuaKGoldberg
Copy link
Owner

JoshuaKGoldberg commented Mar 6, 2025

Update (April 2025): This work has mostly completed. See #2145 for tracking of making automated updates fully inferable: i.e. not needing a create-typescript-app.config.js config file. milestone/8 Transition Mode Automation tracks issues in that area.


Now that create-typescript-app@v2 is stable (#1831 -> #1955) and adhering to the long-term vision of using Bingo (#1181), I'd like to roll out the v2 to other repositories I'm a maintainer on.

But there's a catch: I'd like this rollout to include getting each repository auto-updating to the latest version of the template. #1965 tracks adding a Block to enable them to do that. 🤖

Automatic refers to whether the repositories are able to fully infer their current options without a create-typescript-app.config.js. Running the following command should be enough to initialize most repositories:

npx create-typescript-app --add-cta-transitions
Repos with refinements that aren't yet inferable can use an explicit config file
// create-typescript-app.config.js
// 👋 Hi! This is an optional config file for create-typescript-app (CTA).
// Repos created with CTA or its underlying framework Bingo don't use one by default.
// A CTA config file allows automatic updates to the repo that preserve customizations.
// For more information, see Bingo's docs:
//   https://www.create.bingo/execution#transition-mode
// Eventually these values should be inferable, making this config file unnecessary:
//   https://github.com/JoshuaKGoldberg/bingo/issues/128
import { createConfig } from "create-typescript-app";

export default createConfig({
  refinements: {
    // ...
  },
});
pnpm add create-typescript-app -D;
npx create-typescript-app

Status key:

  • ✅: Done
  • 👀: In Review
  • ⏳: In Progress
  • 🛠️: Blocked on CTA/Bingo issue
  • ⚪️: To do
  • 🛑: Blocked on external issue
Status Issue PR Automatic
all-contributors-auto-action#898 all-contributors-auto-action#900 🛠️
all-contributors-for-repository#771 all-contributors-for-repository#772
all-contributors-inferred#81 all-contributors-inferred#82 🛠️
all-properties-lazy#26 all-properties-lazy#27
are-docs-informative#683 are-docs-informative#686 🛠️
cached-factory#20 cached-factory#22 🛠️
co-author-to-username#414 co-author-to-username#415
console-table-without-index#332 console-table-without-index#334 🛠️
cspell-populate-words#24 cspell-populate-words#25 🛠️
debug-for-file#64 debug-for-file#69 🛠️
description-to-co-authors#197 description-to-co-authors#201 🛠️
emoji-platform-data#600 emoji-platform-data#607 🛠️
eslint-fix-utils#75 eslint-fix-utils#79 🛠️
eslint-plugin-erasable-syntax-only#46 eslint-plugin-erasable-syntax-only#51 🛠️
formatly#74 formatly#81 🛠️
get-github-auth-token#374 get-github-auth-token#375 🛠️
github-default-labels#26 github-default-labels#27 🛠️
github-sponsors-to-markdown#729 github-sponsors-to-markdown#749 🛠️
github-username-to-emails#563 github-username-to-emails#565 🛠️
import-local-or-npx#25 import-local-or-npx#26
JoshuaKGoldberg#402 JoshuaKGoldberg#406 🛠️
new-github-repository#12 🛠️
notion-rich-text-to-markdown#373 notion-rich-text-to-markdown#389
npm-username-to-packages#298 npm-username-to-packages#299 🛠️
object-strings-deep#17
octokit-from-auth#18 octokit-from-auth#19
package-json-validator#172 package-json-validator#178 🛠️
populate-all-contributors-for-repository#14 populate-all-contributors-for-repository#15 🛠️
prettier-plugin-curly#629 prettier-plugin-curly#630 🛠️
prune-github-notifications#200 prune-github-notifications#201 🛠️
refined-saved-replies#1048 refined-saved-replies#1051 🛠️
release-it-action#477 release-it-action#479 🛠️
remove-dependencies#52 remove-dependencies#59 🛠️
set-github-repository-labels#15 set-github-repository-labels#16 🛠️
should-semantic-release#546 should-semantic-release#547 🛠️
text-table-fast#349 text-table-fast#362 🛠️
tidelift-me-up#664 tidelift-me-up#684 🛠️
ts-function-inliner#205 tidelift-me-up#206 🛠️
without-undefined-properties#12 without-undefined-properties#13 🛠️
zod-tsconfig#17 zod-tsconfig#19 🛠️
👀 eslint-plugin-package-json#969 eslint-plugin-package-json#993 🛠️
🛑 console-fail-test#1041 console-fail-test#1046 ⚪️
🛑 emojipedia#44 emojipedia#45 ⚪️
🛑 eslint-plugin-expect-type#821 eslint-plugin-expect-type#825 🛠️
🛑 github-username-to-emails-site#763 ⚪️
🛑 mock-react-redux#72 ⚪️
🛑 sentences-per-line#779 ⚪️
🛑 sinon-timers-repeatable#871 sinon-timers-repeatable#894
🛑 stoptalking#657 ⚪️
🛑 tidelift-me-up-site#845 ⚪️
🛑 ts-api-utils#727 ⚪️
@JoshuaKGoldberg JoshuaKGoldberg added area: documentation Improvements or additions to docs status: blocked Waiting for something else to be resolved labels Mar 6, 2025
@JoshuaKGoldberg JoshuaKGoldberg self-assigned this Mar 6, 2025
@JoshuaKGoldberg JoshuaKGoldberg pinned this issue Mar 6, 2025
@JoshuaKGoldberg JoshuaKGoldberg unpinned this issue Mar 7, 2025
This was referenced Mar 21, 2025
JoshuaKGoldberg added a commit that referenced this issue Mar 21, 2025
)

## PR Checklist

- [x] Addresses an existing open issue: fixes #1965
- [x] That issue was marked as [`status: accepting
prs`](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
- [x] Steps in
[CONTRIBUTING.md](https://github.com/JoshuaKGoldberg/create-typescript-app/blob/main/.github/CONTRIBUTING.md)
were taken

## Overview

Adds an opt-in `blockCTATransitions` that creates a CI step to run `npx
create-typescript-app` and check in any updates. This will only run on
`renovate/*` branches with `create-typescript-app` in the title.

I'm not documenting the action in this PR yet. It'll likely change as I
roll it out to repos
(#1966).
First preview usage in
JoshuaKGoldberg/all-contributors-for-repository#772.

🎁
JoshuaKGoldberg added a commit to JoshuaKGoldberg/import-local-or-npx that referenced this issue Apr 1, 2025
## PR Checklist

- [x] Addresses an existing open issue: fixes #25
- [x] That issue was marked as [`status: accepting
prs`](https://github.com/JoshuaKGoldberg/import-local-or-npx/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
- [x] Steps in
[CONTRIBUTING.md](https://github.com/JoshuaKGoldberg/import-local-or-npx/blob/main/.github/CONTRIBUTING.md)
were taken

## Overview

Runs `npx create-typescript-app --add-cta-transitions` to keep this
repo's customizations through automated updates.

Fun fact: this is the first repo I've gotten to through
JoshuaKGoldberg/create-typescript-app#1966
that doesn't need an a `create-typescript-app.config.js` file for
explicit Addons. Everything is inferable! 🙌

🚚
@JoshuaKGoldberg
Copy link
Owner Author

JoshuaKGoldberg commented Apr 1, 2025

Status update: I'd wanted to complete this within March, but am running at what looks like a week behind. I'm hopeful I'll get most-to-all of these converted by the end of this week - EOD April 4th.

The 🛑 blocked repos are due to missing Blocks that I'll implement soon:

Most repos should be able to infer most-to-all of their customizations from disk:

Roughly 50% of repos are ✅ running CTA 2 with at least a create-typescript-app.config.js.

@JoshuaKGoldberg
Copy link
Owner Author

Status update: all the repos I'd meant to target are now either ✅ onboarded or 🛑 blocked. Closing this issue out as done.

Note that many of the onboarded repos have an explicit create-typescript-app.config.js. Which is not ideal. #2145 and milestone/8 Transition Mode Automation track removing the need for that config file across most-to-all repos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: documentation Improvements or additions to docs
Projects
None yet
Development

No branches or pull requests

1 participant