skyltmax_config 1.0.0 → 2.0.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bb8b2611c8168618fc563d5e5a05e3a1a3ebcc99fb00e6ca1021aa87293d8fe
4
- data.tar.gz: 848a241042100a6b0883b67ea975ca764be6ceb690633d300d7da68da4518a3d
3
+ metadata.gz: 789ece4527f6edeffb76dc49feaf146bc86968f55b2da30a5489080d91b4581a
4
+ data.tar.gz: e9996f2bb5ce81ab1a955d54e0ec68fa5bea41c1516241868b02e966910a5fde
5
5
  SHA512:
6
- metadata.gz: fae9c7c105a338da8f074b492941d12c6e1b311a8056706081d0c0bf3e29d2dcb1fad3ca4f03dcfcb596d72ef60f7035f8930d00719f15b66666d351265d180b
7
- data.tar.gz: 0a03a0643b8892ce900ff9d8415b279342c378c78d42bb2f63529a409f37279970479d51671335a8ccb86b7e892d8e240e3a3e04751d122e6aded7a40b0efe0a
6
+ metadata.gz: d05d8a229b7ddb5f753d81441b05aa0550052fb6d98919b2dd4ed117c5fb9f90198a54b113cb7e09d9696377b3949b78a836d468ff1b60cda128a84864b1ef5d
7
+ data.tar.gz: c454366e718d408f13de2df1b11d3f54fa66d70b4241c9fef6f5dc493076f7839821bd677519f59c7277737f458616feb1278b57592c89e349196aaee22af702
@@ -1,15 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- set -e
4
-
5
- if [ -f "/home/$HOSTLOGNAME/.ssh/id_rsa.pub.sign" ]; then
6
- ln -sf /home/$HOSTLOGNAME/.ssh/id_rsa.pub.sign /home/vscode/.ssh/id_rsa.pub.sign
7
- fi
8
-
9
- sudo chown -R vscode:vscode .ruby-lsp
10
- sudo chown -R vscode:vscode /usr/local/bundle
11
-
12
- git config --global --add safe.directory $DEVC_WORKSPACE
3
+ set -eo pipefail
13
4
 
14
5
  function bootcmd() {
15
6
  printf "\n"
@@ -23,25 +14,73 @@ if [ -f "${MARKER_FILE}" ]; then
23
14
  source "${MARKER_FILE}"
24
15
  fi
25
16
 
26
- if [ "${BUNDLE_ALREADY_INSTALLED}" != "true" ]; then
17
+ # Per-user shared volume (skyltmax-dc template), reachable at the same path as on the host.
18
+ if [ -d "/home/$HOSTLOGNAME/shared" ]; then
19
+ ln -sfn "/home/$HOSTLOGNAME/shared" /home/vscode/shared
20
+ fi
21
+
22
+ if [ -d "/home/$HOSTLOGNAME/.config" ]; then
23
+ sudo chown -R vscode:vscode /home/$HOSTLOGNAME/.config
24
+ fi
25
+
26
+ # Commit signing config written by the Coder template on the workspace host (home.sh in
27
+ # skyltmax/infra); the key path inside it resolves in-container through the host-home bind.
28
+ # Inert when absent — git skips missing [include] paths (the dotfiles .gitconfig carries the include).
29
+ if [ -f "/home/$HOSTLOGNAME/.config/git/coder-signing" ]; then
30
+ mkdir -p /home/vscode/.config/git
31
+ cp "/home/$HOSTLOGNAME/.config/git/coder-signing" /home/vscode/.config/git/coder-signing
32
+ fi
33
+
34
+ sudo chown -R vscode:vscode .ruby-lsp
35
+ sudo chown -R vscode:vscode /usr/local/bundle
36
+
37
+ git config --global --add safe.directory $DEVC_WORKSPACE
38
+
39
+ # npm credentials are written to the workspace host home by the Coder template (skyltmax-dc)
40
+ # and reach us through the host-home bind mount. Only needed for publishing here — every
41
+ # dependency resolves from the public registry.
42
+ if [ -f "/home/$HOSTLOGNAME/.npmrc" ]; then
43
+ cp "/home/$HOSTLOGNAME/.npmrc" "${DEVC_WORKSPACE}/.npmrc"
44
+ fi
45
+
46
+ # Both halves of this repo get set up: the gem and the @signmax/config package.
47
+ if [ "${PNPM_ALREADY_INSTALLED_1}" != "true" ]; then
48
+ rm -rf $DEVC_WORKSPACE/node_modules
49
+ bootcmd "Installing NPM packages" "pnpm install"
50
+ pnpm install
51
+
52
+ PNPM_ALREADY_INSTALLED_1="true"
53
+ fi
54
+
55
+ # The bundle volume outlives the image, so gems built against the previous Ruby have to go.
56
+ if [ "${GEMS_ALREADY_RESET_1}" != "true" ]; then
57
+ rm -rf /usr/local/bundle/*
58
+ sudo chown -R vscode:vscode /usr/local/bundle
59
+
60
+ GEMS_ALREADY_RESET_1="true"
61
+ fi
62
+
63
+ if [ "${BUNDLE_ALREADY_INSTALLED_2}" != "true" ]; then
27
64
  bootcmd "Installing gems" "bundle install"
28
65
  bundle install
29
- BUNDLE_ALREADY_INSTALLED="true"
66
+ BUNDLE_ALREADY_INSTALLED_2="true"
30
67
  fi
31
68
 
32
- if [ "${CHANGELOG_DISPLAYED_6}" != "true" ]; then
69
+ if [ "${CHANGELOG_DISPLAYED_7}" != "true" ]; then
33
70
  if [ -f "/var/lib/smdevc/changelog" ]; then
34
71
  printf "\n"
35
72
  toilet -f term -t -F border:metal "Latest Changes"
36
73
  cat /var/lib/smdevc/changelog
37
74
  fi
38
75
 
39
- CHANGELOG_DISPLAYED_6="true"
76
+ CHANGELOG_DISPLAYED_7="true"
40
77
  fi
41
78
 
42
79
  echo -e "\
43
- BUNDLE_ALREADY_INSTALLED=${BUNDLE_ALREADY_INSTALLED}\n\
44
- CHANGELOG_DISPLAYED_6=${CHANGELOG_DISPLAYED_6}" > "${MARKER_FILE}"
80
+ GEMS_ALREADY_RESET_1=${GEMS_ALREADY_RESET_1}\n\
81
+ BUNDLE_ALREADY_INSTALLED_2=${BUNDLE_ALREADY_INSTALLED_2}\n\
82
+ PNPM_ALREADY_INSTALLED_1=${PNPM_ALREADY_INSTALLED_1}\n\
83
+ CHANGELOG_DISPLAYED_7=${CHANGELOG_DISPLAYED_7}" > "${MARKER_FILE}"
45
84
 
46
85
  printf "\n\n\e[38;2;252;163;17m"
47
86
  toilet -f standard "Config"
@@ -7,11 +7,17 @@
7
7
  "RUBY_YJIT_ENABLE": "true",
8
8
  "MALLOC_ARENA_MAX": "2",
9
9
  "BUNDLE_JOBS": "8",
10
- "DEVC_WORKSPACE": "${containerWorkspaceFolder}"
10
+ "DEVC_WORKSPACE": "${containerWorkspaceFolder}",
11
+ "PNPM_CONFIG_VERIFY_DEPS_BEFORE_RUN": "false"
11
12
  },
12
13
  "mounts": [
13
14
  "source=bundle,target=/usr/local/bundle,type=volume",
14
15
  "source=rubylsp,target=${containerWorkspaceFolder}/.ruby-lsp,type=volume"
15
16
  ],
17
+ "customizations": {
18
+ "coder": {
19
+ "autoStart": true
20
+ }
21
+ },
16
22
  "onCreateCommand": ".devcontainer/boot.sh"
17
23
  }
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  app:
3
- image: harbor.signmax.cloud/public/devcontainer:rails-4.0.1-20
3
+ image: harbor.signmax.cloud/public/devcontainer:rails-4.0.6-30
4
4
  volumes:
5
5
  - ..:/workspaces/config:cached
6
6
  shm_size: "1gb"
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  node_modules
2
+ .idea
3
+ .npmrc
2
4
  .pnpm-store
3
5
  .devcontainer/.bootdone
data/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ### Unreleased
4
4
 
5
+ ### [2.0.0] - 2026-08-12
6
+
7
+ - feat!: Move all eslint/prettier plugins (and `@total-typescript/ts-reset`) from `peerDependencies` to `dependencies`;
8
+ they now resolve from this package and consumers stop declaring them.
9
+ - feat!: Shrink `peerDependencies` to ranged CLIs: `eslint ^9.30.0`, `prettier ^3.6.0`, `typescript >=5.9 <6.1`.
10
+ - feat!: Drop support for eslint 10 (1.0.0 pinned `eslint 10.1.0`). The pinned `eslint-plugin-react-hooks`,
11
+ `eslint-plugin-jsx-a11y`, and `eslint-plugin-jest-dom` only declare support through eslint 9, so consumers on eslint
12
+ 10 must move to `^9.30.0`. Support returns once those plugins ship eslint 10 peer ranges.
13
+ - feat!: Remove the `skyltmax-config-peers` bin and the peer install/audit scripts.
14
+ - fix: Resolve prettier plugins via `import.meta.resolve` instead of bare names, so resolution is anchored to this
15
+ package instead of the consumer's context.
16
+
5
17
  ### [1.0.0] - 2026-03-31
6
18
 
7
19
  - chore: Release stable version.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- skyltmax_config (1.0.0)
4
+ skyltmax_config (2.0.0.beta.1)
5
5
  rubocop (>= 1.84.2, < 2)
6
6
  rubocop-performance (>= 1.26.0, < 2)
7
7
  rubocop-rails (>= 2.33.0, < 3)
data/README.md CHANGED
@@ -11,24 +11,15 @@ Based on <a href="https://github.com/epicweb-dev/config">@epic-web/config</a>.
11
11
  ### JavaScript/TypeScript
12
12
 
13
13
  ```bash
14
- npm install --save-dev @skyltmax/config
14
+ npm install --save-dev @signmax/config eslint prettier typescript
15
15
  # or
16
- pnpm add -D @skyltmax/config
16
+ pnpm add -D @signmax/config eslint prettier typescript
17
17
  ```
18
18
 
19
- Once the package is in place, sync the tooling versions we pin:
20
-
21
- ```bash
22
- npx skyltmax-config-peers --dry-run # inspect the command (optional)
23
- npx skyltmax-config-peers
24
- ```
25
-
26
- The helper installs the exact ESLint, Prettier, TypeScript, and plugin versions we dogfood with. It currently supports
27
- `npm`, `pnpm`, and `bun`. If you prefer to manage things yourself, install each entry from
28
- [`peerDependencies`](package.json) with the version locked there.
29
-
30
- > After installation the package runs a lightweight audit and will warn if any peer is missing or pinned to a different
31
- > version. When that happens, rerun `npx skyltmax-config-peers` to sync everything.
19
+ Every ESLint and Prettier plugin is a regular dependency of this package and resolves from here — consumers never
20
+ declare plugins. The three CLIs are peer dependencies with version ranges (see [`peerDependencies`](package.json)): they
21
+ must live in your project root so the `eslint`/`prettier`/`tsc` binaries and your editor's extensions can find them.
22
+ Plugin versions are owned and tested in this repo and arrive via ordinary `@signmax/config` releases.
32
23
 
33
24
  ### Ruby
34
25
 
@@ -56,7 +47,7 @@ inherit_gem:
56
47
  The easiest way to use this config is in your `package.json`:
57
48
 
58
49
  ```json
59
- "prettier": "@skyltmax/config/prettier"
50
+ "prettier": "@signmax/config/prettier"
60
51
  ```
61
52
 
62
53
  <details>
@@ -68,7 +59,7 @@ can override it using regular JavaScript stuff.
68
59
  Create a `.prettierrc.js` file in your project root with the following content:
69
60
 
70
61
  ```js
71
- import defaultConfig from "skyltmax/config/prettier"
62
+ import defaultConfig from "@signmax/config/prettier"
72
63
 
73
64
  /** @type {import("prettier").Options} */
74
65
  export default {
@@ -85,7 +76,7 @@ Create a `tsconfig.json` file in your project root with the following content:
85
76
 
86
77
  ```json
87
78
  {
88
- "extends": ["@skyltmax/config/typescript"],
79
+ "extends": ["@signmax/config/typescript"],
89
80
  "include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"],
90
81
  "compilerOptions": {
91
82
  "paths": {
@@ -99,7 +90,7 @@ Create a `tsconfig.json` file in your project root with the following content:
99
90
  Create a `reset.d.ts` file in your project with these contents:
100
91
 
101
92
  ```typescript
102
- import "@skyltmax/config/reset.d.ts"
93
+ import "@signmax/config/reset.d.ts"
103
94
  ```
104
95
 
105
96
  <details>
@@ -114,7 +105,7 @@ Learn more from [the TypeScript docs here](https://www.typescriptlang.org/tsconf
114
105
  Create a `eslint.config.js` file in your project root with the following content:
115
106
 
116
107
  ```js
117
- import { config as defaultConfig } from "@skyltmax/config/eslint"
108
+ import { config as defaultConfig } from "@signmax/config/eslint"
118
109
 
119
110
  /** @type {import("eslint").Linter.Config[]} */
120
111
  export default [...defaultConfig]
@@ -134,7 +125,7 @@ positives.
134
125
 
135
126
  ## Publishing
136
127
 
137
- This repo publishes a Ruby gem (skyltmax_config) and an npm package (@skyltmax/config) whenever a GitHub Release is
128
+ This repo publishes a Ruby gem (skyltmax_config) and an npm package (@signmax/config) whenever a GitHub Release is
138
129
  published. A manual run is also available.
139
130
 
140
131
  Setup (one-time):
data/fixture/package.json CHANGED
@@ -13,29 +13,10 @@
13
13
  "typecheck": "tsc --noEmit"
14
14
  },
15
15
  "devDependencies": {
16
- "@eslint/js": "9.39.1",
17
16
  "@signmax/config": "file:..",
18
- "@total-typescript/ts-reset": "0.6.1",
19
- "@typescript-eslint/eslint-plugin": "8.46.3",
20
- "@typescript-eslint/parser": "8.46.3",
21
- "@typescript-eslint/utils": "8.46.3",
22
- "@vitest/eslint-plugin": "1.4.1",
23
- "eslint": "9.39.1",
24
- "eslint-config-prettier": "10.1.8",
25
- "eslint-plugin-import-x": "4.16.1",
26
- "eslint-plugin-jest-dom": "5.5.0",
27
- "eslint-plugin-jsx-a11y": "6.10.2",
28
- "eslint-plugin-prettier": "5.5.4",
29
- "eslint-plugin-react": "7.37.5",
30
- "eslint-plugin-react-hooks": "7.0.1",
31
- "eslint-plugin-testing-library": "7.13.3",
32
- "globals": "16.5.0",
33
- "prettier": "3.6.2",
34
- "prettier-plugin-ignored": "1.0.0",
35
- "prettier-plugin-tailwindcss": "0.7.1",
36
- "tslib": "2.8.1",
37
- "typescript": "5.9.3",
38
- "typescript-eslint": "8.46.3"
17
+ "eslint": "9.39.4",
18
+ "prettier": "3.8.2",
19
+ "typescript": "6.0.2"
39
20
  },
40
21
  "prettier": "@signmax/config/prettier"
41
22
  }