Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
e22fdec
docs: document lib setting in README
D3strukt0r Mar 25, 2026
9b2d60a
chore(deps): bump dependabot/fetch-metadata from 2 to 3
dependabot[bot] Apr 10, 2026
1c0dec5
Merge pull request #13 from iwf-web/dependabot/github_actions/develop…
D3strukt0r Apr 10, 2026
e5c1f34
ci: run workflow on all pull requests
D3strukt0r Apr 14, 2026
35f790b
chore(deps): bump pnpm/action-setup from 5 to 6
dependabot[bot] Apr 17, 2026
ea91efe
Merge pull request #14 from iwf-web/dependabot/github_actions/develop…
D3strukt0r Apr 17, 2026
aa8fd1c
chore(deps): bump googleapis/release-please-action from 4 to 5
dependabot[bot] Apr 24, 2026
e8d2f26
Merge pull request #15 from iwf-web/dependabot/github_actions/develop…
D3strukt0r Apr 24, 2026
7b7f491
chore(deps): bump ghcr.io/devcontainers/features/node
dependabot[bot] May 1, 2026
42b3c4e
Merge pull request #16 from iwf-web/dependabot/devcontainers/develop/…
D3strukt0r May 3, 2026
49c2f49
chore(deps): bump @tsconfig/vite-react from 7.0.2 to 8.0.6
dependabot[bot] May 15, 2026
1cde102
chore(deps): @tsconfig/vite-react added ""types": ["vite/client"]", s…
D3strukt0r Jun 8, 2026
a1d1773
Merge pull request #17 from iwf-web/dependabot/npm_and_yarn/develop/t…
D3strukt0r Jun 8, 2026
bb93e3c
chore(deps): Update to pnpm 11 and handle default minimumReleaseAge
D3strukt0r Jun 8, 2026
241a929
chore(deps): bump actions/checkout from 6 to 7
dependabot[bot] Jun 19, 2026
e0d4da6
Merge pull request #18 from iwf-web/dependabot/github_actions/develop…
D3strukt0r Jun 19, 2026
a11cfcb
fix(ci): group dependabot updates and harden release workflow
D3strukt0r Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"features": {
"ghcr.io/devcontainers-extra/features/act:1": {
"version": "1.0.15",
"resolved": "ghcr.io/devcontainers-extra/features/act@sha256:db4a2194930d1f7ec62822d4f600dd2fa4aff3c33b98cdb0b578b64ffb10924c",
"integrity": "sha256:db4a2194930d1f7ec62822d4f600dd2fa4aff3c33b98cdb0b578b64ffb10924c"
},
"ghcr.io/devcontainers/features/common-utils:2": {
"version": "2.5.9",
"resolved": "ghcr.io/devcontainers/features/common-utils@sha256:cb0c4d3c276f157eed17935747e364178d75fee17f55c4e129966f64633deb3a",
"integrity": "sha256:cb0c4d3c276f157eed17935747e364178d75fee17f55c4e129966f64633deb3a"
},
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
"version": "1.10.0",
"resolved": "ghcr.io/devcontainers/features/docker-outside-of-docker@sha256:c2c2cf829505ead8e4892c88c31b6594ae94a2bbb209e16e1fac456c1a3a624e",
"integrity": "sha256:c2c2cf829505ead8e4892c88c31b6594ae94a2bbb209e16e1fac456c1a3a624e"
},
"ghcr.io/devcontainers/features/github-cli:1": {
"version": "1.1.0",
"resolved": "ghcr.io/devcontainers/features/github-cli@sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671",
"integrity": "sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671"
},
"ghcr.io/devcontainers/features/node:2": {
"version": "2.1.0",
"resolved": "ghcr.io/devcontainers/features/node@sha256:586c9a6f7dd40bd3ba2cd41e7f2f88dcc31fbe5d1442afcbf07ffbc66b686857",
"integrity": "sha256:586c9a6f7dd40bd3ba2cd41e7f2f88dcc31fbe5d1442afcbf07ffbc66b686857"
}
}
}
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": true
},
"ghcr.io/devcontainers/features/node:1": {
"ghcr.io/devcontainers/features/node:2": {
"version": "24",
"pnpmVersion": "latest"
},
Expand Down
14 changes: 14 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
# Last matching pattern wins. Only ONE listed owner needs to approve, not all.

# Default owner for everything.
* @D3strukt0r

# Files Dependabot manages — @iwf-web/CI (incl. the bot user) can also review,
# so the bot's auto-approval satisfies the code-owner requirement on these paths.
# npm
/package.json @D3strukt0r @iwf-web/CI
# github-actions
/.github/workflows/ @D3strukt0r @iwf-web/CI
# devcontainers
/.devcontainer/ @D3strukt0r @iwf-web/CI
20 changes: 19 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@ updates:
labels:
- "dependabot :robot:"
schedule:
interval: weekly # on monday
interval: weekly
day: monday
time: '09:30'
timezone: Europe/Zurich
groups:
github-actions:
patterns:
- "*"

- package-ecosystem: devcontainers
directory: /
Expand All @@ -24,8 +29,13 @@ updates:
- "dependabot :robot:"
schedule:
interval: weekly
day: monday
time: '09:30'
timezone: Europe/Zurich
groups:
devcontainers:
patterns:
- "*"

- package-ecosystem: npm # pnpm
directory: /
Expand All @@ -34,5 +44,13 @@ updates:
- "dependabot :robot:"
schedule:
interval: weekly
day: monday
time: '09:30'
timezone: Europe/Zurich
cooldown:
default-days: 1 # Match pnpm 11 default minimumReleaseAge (1440 min = 1 day)
groups:
npm-non-breaking:
update-types:
- minor
- patch
File renamed without changes.
File renamed without changes.
5 changes: 2 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]

permissions:
contents: read
Expand All @@ -14,15 +13,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 24.x

- name: Install pnpm
uses: pnpm/action-setup@v5
uses: pnpm/action-setup@v6

- name: Get pnpm cache directory path
id: pnpm-cache-dir-path
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/dependabot-automerge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Fetch Dependabot metadata 🔍
uses: dependabot/fetch-metadata@v2
uses: dependabot/fetch-metadata@v3
id: metadata
with:
github-token: ${{ github.token }}
Expand All @@ -29,7 +29,7 @@ jobs:
if: steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch'
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ github.token }}
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
run: |
gh pr checkout "$PR_URL" # sets the upstream metadata for `gh pr status`
if [ "$(gh pr status --json reviewDecision -q .currentBranch.reviewDecision)" != "APPROVED" ]; then
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/greetings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
greeting:
name: Greet First-Time Contributors
runs-on: ubuntu-latest
if: github.actor != 'dependabot[bot]'

steps:
- name: Greet First-Time Contributors
Expand Down
56 changes: 53 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,60 @@ jobs:
pull-requests: write
outputs:
release_created: ${{ steps.release.outputs.release_created }}
# Non-empty JSON when release-please created or updated a release PR
# this run. Used by `reattribute` below to decide whether to amend.
pr: ${{ steps.release.outputs.pr }}
steps:
- name: Create Release PR
uses: googleapis/release-please-action@v4
id: release
uses: googleapis/release-please-action@v5
with:
config-file: .github/release-please-config.json
manifest-file: .github/release-please-manifest.json
# Bot PAT with access to Workflows
# The built-in GITHUB_TOKEN has cannot trigger other workflows
token: ${{ secrets.GH_PAT }}

# release-please-action commits the release PR's contents as the PAT
# owner (the action has no input to override the commit author). Re-attribute
# to github-actions[bot] so the PR shows the bot as author instead of the
# person the PAT belongs to.
reattribute:
needs: release-please
if: ${{ needs.release-please.outputs.pr != '' }}
runs-on: ubuntu-latest
permissions:
contents: write
# Cosmetic best-effort: rewrites the release-PR commit author to the bot. If
# the release PR is merged before this runs, its branch is deleted and the
# checkout below can't fetch it — don't fail the release workflow over that.
continue-on-error: true
env:
# release-please's branch name varies by config (`release-please--branches--<base>`
# for single-package, with extra `--components--<name>` segments for component mode).
# The action emits the PR object as JSON — pull `headBranchName` from it instead of
# guessing the pattern.
PR_BRANCH: ${{ fromJSON(needs.release-please.outputs.pr).headBranchName }}
steps:
- name: Checkout release-please branch
uses: actions/checkout@v7
with:
token: ${{ secrets.GH_PAT }}
ref: ${{ env.PR_BRANCH }}
fetch-depth: 2

- name: Configure git
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Amend release commit as github-actions[bot]
run: |
set -euo pipefail
# --reset-author rewrites both author and committer to the configured
# identity; --no-edit keeps the existing commit message verbatim.
git commit --amend --reset-author --no-edit
git push origin "$PR_BRANCH" --force-with-lease

publish:
needs: release-please
Expand All @@ -28,7 +78,7 @@ jobs:
id-token: write # for provenance
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

# Setup .npmrc file to publish to npm
- name: Setup Node.js
Expand All @@ -38,7 +88,7 @@ jobs:
registry-url: https://registry.npmjs.org

- name: Install pnpm
uses: pnpm/action-setup@v5
uses: pnpm/action-setup@v6

#- name: Get pnpm cache directory path
# id: pnpm-cache-dir-path
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
node_modules
pnpm-lock.yaml
*.tgz
CLAUDE.md
6 changes: 0 additions & 6 deletions .vscode/settings.json

This file was deleted.

5 changes: 3 additions & 2 deletions CLAUDE.md → AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CLAUDE.md
# AGENTS.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This file provides guidance to coding agents (Claude Code, etc.) when working with code in this repository. `CLAUDE.md` simply imports this file via `@AGENTS.md`.

## Project Overview

Expand All @@ -10,6 +10,7 @@ This is `@iwf-web/tsconfig`, a TypeScript configuration package for IWF projects

```bash
pnpm install # Install dependencies
pnpm ts:check # Type-check the configs against test/index.ts (tsc --noEmit)
```

No build step required - the package exports JSON configuration files directly.
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.1.0](https://github.com/iwf-web/tsconfig/compare/1.0.2...1.1.0) (2026-03-25)


Expand Down
4 changes: 0 additions & 4 deletions CODEOWNERS

This file was deleted.

2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2025 IWF Web Solutions
Copyright (c) 2025-2026 IWF Web Solutions

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,13 @@ This configuration extends three base configurations for comprehensive TypeScrip

The following settings are relaxed from the strictest defaults for practical development:

| Setting | Value | Reason |
| ------------------------------------ | ------- | ---------------------------------------------------- |
| `erasableSyntaxOnly` | `false` | Allows enums, namespaces, and classes |
| `noPropertyAccessFromIndexSignature` | `false` | Allows dot notation for index signatures |
| `noImplicitAny` | `false` | Permits implicit `any` types where inference fails |
| `exactOptionalPropertyTypes` | `false` | Allows `undefined` assignment to optional properties |
| Setting | Value | Reason |
| ------------------------------------ | ------------------------------- | ---------------------------------------------------- |
| `lib` | `ES2023`, `DOM`, `DOM.Iterable` | Supports modern array functions (e.g. `toSorted`) |
| `erasableSyntaxOnly` | `false` | Allows enums, namespaces, and classes |
| `noPropertyAccessFromIndexSignature` | `false` | Allows dot notation for index signatures |
| `noImplicitAny` | `false` | Permits implicit `any` types where inference fails |
| `exactOptionalPropertyTypes` | `false` | Allows `undefined` assignment to optional properties |

## Contributing

Expand Down
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@
"dependencies": {
"@tsconfig/recommended": "^1.0.0",
"@tsconfig/strictest": "^2.0.0",
"@tsconfig/vite-react": "^7.0.0"
"@tsconfig/vite-react": "^8.0.0"
},
"devDependencies": {
"typescript": "^6.0.2"
"typescript": "^6.0.2",
"vite": "^8.0.16"
},
"packageManager": "pnpm@10.26.0+sha512.3b3f6c725ebe712506c0ab1ad4133cf86b1f4b687effce62a9b38b4d72e3954242e643190fc51fa1642949c735f403debd44f5cb0edd657abe63a8b6a7e1e402"
"packageManager": "pnpm@11.9.0+sha512.bd682d5d03fe525ef7c9fd6780c6884d1e756ac4c9c9fe00c538782824310dcf90e3ddc4f53835f06dfaebd5085e41855e0bcbb3b60de2ac5bbab89e5036f03b"
}
Loading