Commit graph

388 commits

Author SHA1 Message Date
Jordan Eldredge
27ba138a3e Try package-specific Netlify build 2025-07-15 20:13:45 -07:00
Jordan Eldredge
cb651adfaf Run library build one at a time to avoid OOM on Netlify 2025-07-15 20:00:41 -07:00
Jordan Eldredge
224b4b8058 Revive Webamp modern on Netlify 2025-07-15 19:33:26 -07:00
Jordan Eldredge
f35f1242ca Try harder to avoid OOms in Netlify build 2025-07-15 19:25:16 -07:00
Jordan Eldredge
acff24b7bb Try to avoid OOM on Netlify 2025-07-15 19:13:06 -07:00
Jordan Eldredge
e99b2ab6f7 Fix deploy script 2025-07-15 19:02:17 -07:00
Jordan Eldredge
eaba9667e2 Try to fix netlify deploy 2025-07-15 18:57:35 -07:00
Jordan Eldredge
a06485f1be Avoid some lint errors 2025-07-09 21:05:54 -07:00
Jordan Eldredge
daf06567b0 Consolidate dependency versions 2025-07-09 13:25:05 -07:00
Jordan Eldredge
26e8e6dfeb Run more tests in CI 2025-07-07 12:51:20 -07:00
Jordan Eldredge
8425adaeff
Upgrade node 22 lts (#1305)
* Upgrade Node.js to v22 LTS across the entire repo

- Update CI workflows (.github/workflows/ci.yml, code-size.yml) to use Node.js 22.x
- Update Netlify config to use Node.js 22.11.0
- Update all package.json engines to require Node.js 22.0.0+
- Add .nvmrc file with Node.js 22 for local development
- Update documentation to reflect Node.js 22+ requirement
- Update skin-database scripts to use Node.js 22
- Tested locally with nvm and confirmed builds work correctly

Node.js v22 is the current LTS version and provides improved performance
and security features. All packages now require Node.js 22+ to ensure
consistency across development, CI, and production environments.

* Don't update node version here
2025-07-07 10:30:13 -07:00
Jordan Eldredge
f45736c0b6
Try Turborepo (#1304)
* Try Turborepo

* Add webamp as explicit dependency of docs

* Update pnpm lock

* Generate types as part of webamp build-library

* To many dashes
2025-07-06 22:50:04 -07:00
Jordan Eldredge
fee8030882 Clean up create-react-app cruft 2025-07-06 18:12:50 -07:00
Jordan Eldredge
46ad06054e Clean up old parcel cruft 2025-07-06 18:07:31 -07:00
Jordan Eldredge
e641c61b64 Fixup winamp-eqf tests 2025-07-06 18:00:48 -07:00
Jordan Eldredge
dbf54596e4 Type winamp-eqf 2025-07-06 17:17:55 -07:00
Jordan Eldredge
b99ea291eb Fix type checking of skin-database 2025-07-06 16:33:09 -07:00
Jordan Eldredge
8abcf9d139 Typecheck more packages in CI 2025-07-06 16:23:57 -07:00
Jordan Eldredge
08ec7ce69f
Migrate from yarn to pnpm (#1303)
* Migrate from yarn to pnpm

This comprehensive migration includes:

### Configuration Updates
- Updated root package.json with pnpm workspace configuration
- Added packageManager field and pnpm overrides for graphql version
- Updated GitHub Actions workflows (.github/workflows/ci.yml, code-size.yml)
- Updated Netlify configuration (netlify.toml)
- Updated deployment script (deploy.sh)

### Documentation Updates
- Updated all README files to use pnpm instead of yarn
- Updated installation and build instructions across packages:
  - packages/webamp/README.md
  - packages/webamp-modern/README.md
  - packages/webamp-docs/README.md
  - packages/ani-cursor/README.md
  - packages/webamp/demo/readme.md

### Lock File Migration
- Removed yarn.lock
- Generated pnpm-lock.yaml preserving exact dependency versions
- Moved resolutions from skin-database package.json to root pnpm overrides
- Created pnpm-workspace.yaml for optimized workspace configuration

### CI/CD Updates
- Updated all yarn commands to use pnpm equivalents
- Changed yarn workspace commands to pnpm --filter syntax
- Updated cache keys to use pnpm-lock.yaml instead of yarn.lock
- Added pnpm/action-setup for GitHub Actions

### Validation
- Tested builds for webamp, webamp-modern, ani-cursor, webamp-docs
- Tested installation and linting for skin-database
- Verified dependency resolution consistency
- Confirmed all scripts work with pnpm

All package versions remain identical to yarn.lock, ensuring no breaking changes.

* Fix GitHub Actions CI: Install pnpm before using cache

The GitHub Actions workflow was trying to cache pnpm before installing it.
Fixed by reordering steps in all jobs to:
1. Install pnpm first
2. Setup Node.js with pnpm cache
3. Install dependencies

This ensures pnpm is available when setting up the cache.

* Fix pnpm overrides configuration format

Move overrides from pnpm.overrides to top-level overrides in package.json
to match the format expected by pnpm lockfile. This resolves the
ERR_PNPM_LOCKFILE_CONFIG_MISMATCH error in CI.

* Update CI to use pnpm version 9 to match lockfile format

* Add missing @types dependencies for ani-cursor

Add @types/jest and @types/node as devDependencies to ani-cursor package.
These were missing but referenced in tsconfig.json, causing TypeScript
compilation failures in CI with pnpm's stricter package isolation.

* Fix dependency isolation issues for pnpm migration

- Add strtok3 as direct dependency to webamp package (was transitive)
- Add missing Babel plugins that were accessible as transitive deps with yarn
- These packages need to be explicit dependencies for pnpm's stricter isolation

Addresses missing dependencies that caused CI build failures:
- Cannot find module 'strtok3'
- Cannot find package '@babel/plugin-proposal-nullish-coalescing-operator'
- Cannot find package '@babel/plugin-proposal-optional-chaining'

* Add @babel/preset-env to webamp devDependencies

- Fixes build-library failing due to missing Babel preset
- pnpm's stricter dependency isolation revealed this missing direct dependency
- Confirmed build-library now passes locally

* Lock changes

* Remove workspaces field from package.json

- pnpm uses pnpm-workspace.yaml instead of package.json workspaces field
- Fixes warning: 'The workspaces field in package.json is not supported by pnpm'
- Workspace configuration is already correctly defined in pnpm-workspace.yaml

* Does forcing a specific pnpm version help?

* Update pnpm version to 9.12.0 in CI workflows

- Fixes issues with pnpm v9.0 as mentioned in https://github.com/pnpm/pnpm/issues/6312
- Updates both ci.yml and code-size.yml workflows
- 9.12.0 matches the local version and is more stable
- Should resolve workspaces field warning and other pnpm issues

* Skip root-level Jest tests in CI due to configuration conflicts

- Root-level Jest config has compatibility issues with jest-environment-jsdom@29.7.0
- Different packages use different Jest versions causing testEnvironmentOptions errors
- Webamp package tests work fine with their specific Jest configuration
- This is the same issue we saw locally - pnpm's stricter isolation reveals these conflicts
- CI only needs webamp tests to pass for the migration validation

* Add missing Babel plugins for build-library

- Add @babel/plugin-proposal-object-rest-spread
- Add @babel/plugin-syntax-dynamic-import
- These were missing dependencies revealed by pnpm's stricter isolation
- Fixes build-library errors in CI

* Upgrade Jest to v29.7.0 to fix test environment issues

- Upgrade from Jest 27.5.1 to 29.7.0 to match webamp package version
- Add jest-environment-jsdom as direct dependency
- Fixes 'Cannot read properties of undefined (reading testEnvironmentOptions)' error
- pnpm's stricter isolation revealed version conflicts between packages
- Tests now run properly but some snapshots need updating due to format changes

* Re-enable Jest tests in CI

- Jest environment issues are now fixed with v29.7.0 upgrade
- Tests work properly with the updated configuration
- Some packages may have snapshot format changes but tests pass

* Clean up lock

* Clean up Yarn cruft

* Update snapshots

* Fix compressed size workflow for pnpm

- Add Node.js setup step (required for pnpm)
- Add pnpm install step to install dependencies before build
- Update checkout action from v2 to v4
- Ensure dependencies are available before running deploy script
2025-07-06 15:45:44 -07:00
Jordan Eldredge
df80d1a375 0.0.0-next-87012d8d 2024-10-02 09:01:51 -07:00
Jordan Eldredge
c88d8b390e Upgrade @typescript-eslint/parser 2024-03-02 12:18:20 -08:00
Jordan Eldredge
501f77656d Typescript upgrades 2024-03-02 09:28:36 -08:00
Jordan Eldredge
cca6d0c78e Upgrade eslint 2024-03-01 15:11:00 -08:00
Jordan Eldredge
04eaf017fd Fix eslint 2024-02-23 16:08:40 -08:00
Jordan Eldredge
cef0740058 Hoist eslint into monorepo 2023-02-05 11:20:55 -08:00
Jordan Eldredge
6a71878a98
First attempt at adopting Parcel (#1186)
* Upgrade sharp

* First attempt at adopting Parcel

* Get multiple targets working for Parcel

* Use lts node for Netlify deploy

* Update deploy script to reflect new demo site dir

* Inline css into library bundles

* More updates

* Remove uri optimization

* Upgrade parcel

* Fix butterchurn logo import for Parcel

* Add browser build

* List browser build

* Prefer jest-swc to babel

* Preserve old build artifact location

* Ignore dist

* Minify library bundles

* Switch to postcss to use uri optimization plugin

* Serve from the correct location

* Clarifying comments

* Ignore bundle reports in git

* Refine Parcel builds

* Try to be more explicit with port

* Use relative path to create build dir

* Try to force supporting chrome 76

* Update the location of the test skin in integration test to work with Parcel
2023-01-20 11:15:39 -08:00
Jordan Eldredge
2faf80dac1 Use Node 16 2022-12-31 19:01:01 -08:00
Jordan Eldredge
4dbb82220f Hoist linting for skin museum client 2022-09-20 19:50:42 -07:00
Jordan Eldredge
3ab1ca0ec3 Upgrade eslint 2022-05-07 12:35:48 -07:00
Fathony Luthfillah
10555e093f
Set the 2nd modern iteration as only one on (modern) track. (#1166)
* yarn extract-object-types (run again)

* preparing to load Application.mi

* avoid error about using function ins strict mode.
turn this to "function" syntax to see the error/warn

* embed TrueTypeFont in one CSS

* add api: getAttribute

* reaching zero erro at devtool Console

* set color correctly.

* move compiler to new project

* take some yarn-scripts from sibling (modern-1)

* reconfigure objectData target path

* remove duplicated folder

* discontinuing the 1st iteration
captbaritone: it's probably time to del modern & ren modern-2: modern

* set the 2nd iteration as only one on track.
captbaritone: it's probably time to del modern & ren modern-2: modern

* bugfix test not working: path unavailable

* implement TODO

* reduce warning at import jzip

* solving Deploy: failed

* solving deploy failed
error: Unknown workspace "webamp-modern

* bugfix premateur call of this._font_id

* bugfix font-family : ''; prettier.

Co-authored-by: Fathony <fathony@smart-leaders.net>
2022-03-30 19:35:19 -07:00
Jordan Eldredge
058228fd22 Add format command 2022-03-18 00:16:50 -07:00
Jordan Eldredge
6d3ac62d78 Lift prettier to workspace 2022-03-09 21:45:18 -08:00
Jordan Eldredge
39da79ddf2 Enforce Prettier at the root 2022-03-06 23:08:43 -08:00
Jordan Eldredge
4ce89495cb Enable top-level lint 2022-03-06 23:05:11 -08:00
Jordan Eldredge
1880070205 Unify tests into the top level workspace 2022-03-06 22:41:18 -08:00
Jordan Eldredge
9cc20f0da1 Upgrade Prettier 2021-07-31 13:59:38 -07:00
Jordan Eldredge
459b186f47 Build modern example for Netlify 2021-06-27 14:19:59 -07:00
Jordan Eldredge
5abadecc4f
Pull ani-cursor out into its own package (#1040)
* Pull ani-cursor out into its own package

* Fix yarn.lock?

* Ignore compiled tests

* Was yarn.lock messed up?

* Add ani-cursor to build
2020-12-09 22:47:50 -08:00
Jordan Eldredge
3a48076f91 Move examples to their own directory 2020-07-03 22:06:29 -07:00
Jordan Eldredge
975d712662
Start adopting Yarn workspaces (#985)
* Start adopting Yarn workspaces

My plan is to move the existing package into a workspace and then split
out the things that really ought to be their own packages. For example,
the demo site and the experiments really ought to be separate.

Fix lint command

* Use workspaces in CI

* Fix deploy for monorepo
2020-05-17 22:12:17 -07:00
Jordan Eldredge
39da735f17 Use --rulesdir 2020-05-17 20:27:51 -07:00
Jordan Eldredge
91fd22ec38 Upgrade Prettier 2020-04-06 19:50:20 -07:00
Jordan Eldredge
ebd3eb56b6 Add command for lint fix 2020-03-02 06:59:22 -08:00
Jordan Eldredge
97c6194bbb Add command to generate maki interface types 2020-03-02 06:59:22 -08:00
Jordan Eldredge
820a6f30f4
Upgrade some screenshot related packages (#969)
* Upgrade screenshot testing stuff

* New screenshots
2020-02-19 21:01:20 -08:00
Jordan Eldredge
296ffdd7da
Get Screenshot tests working in CI (#967)
* Use GitHub Actions only

This retires Travis, and starts upload screenshot diffs when integration
tests fail.

* Use screenshots that match CI font rendering

* Run tests on Node 12
2020-02-19 20:14:16 -08:00
Jordan Eldredge
10b9c76aae Don't try to offer Webamp as a PWA
It was fun to get working, but now: Keep it simple stupid.
2019-12-19 21:29:58 -08:00
Jordan Eldredge
e826d41761 Remove service worker 2019-12-19 20:45:05 -08:00
Jordan Eldredge
016eb6f797 Use redux-sentry-middleware rather than our own thing 2019-12-19 06:51:50 -08:00
Jordan Eldredge
a488a4b3f0
Upgrade to new Sentry SDK (#956)
* Upgrade to new Sentry SDK

* Rename middleware to use Sentry instead of Raven
2019-12-17 20:24:20 -08:00