Skip to content
Draft
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
eb7a2f8
build: modernize tooling — esbuild, ESLint 9, Prettier, GitHub Actions
mrecachinas Mar 8, 2026
739c127
build: add Vite dev server and Vitest test runner
mrecachinas Mar 8, 2026
ecf57ed
ci: enable test job now that Vitest is configured
mrecachinas Mar 8, 2026
de42e63
refactor: convert all source files from CommonJS IIFE to ES modules
mrecachinas Mar 8, 2026
9b8f50e
build: remove Grunt, Karma, and all legacy tooling
mrecachinas Mar 8, 2026
61828d7
test: migrate QUnit unit tests to Vitest API
mrecachinas Mar 8, 2026
c39ac48
chore: remove migrated QUnit test files and HTML runners
mrecachinas Mar 8, 2026
3117581
test: migrate sigplot core tests to Vitest (25 tests, 17 pass, 8 skip)
mrecachinas Mar 9, 2026
63c7966
chore: remove stale configs, clean up gitignore
mrecachinas Mar 9, 2026
aca09c4
chore: add engines field and Dependabot with grouped updates
mrecachinas Mar 9, 2026
3ce4ff4
refactor: replace underscore with native JS
mrecachinas Mar 9, 2026
90fd8ac
refactor: replace spin and lru with zero-dependency alternatives
mrecachinas Mar 9, 2026
e6d05a9
refactor: remove legacy polyfills from common.js
mrecachinas Mar 9, 2026
75d6fa6
test: add coverage reporting and comprehensive unit tests
mrecachinas Mar 9, 2026
2b82953
test: add 128 tests for math, ColorMap, and Plugin coverage
mrecachinas Mar 9, 2026
e58ced2
test: unskip 5 layout-dependent tests via clientWidth/Height mock
mrecachinas Mar 9, 2026
450611d
test: keep jsdom with canvas stubs (sigfile blocks browser mode)
mrecachinas Mar 9, 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
35 changes: 35 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 2

updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 5
groups:
dev-dependencies:
dependency-type: development
update-types:
- minor
- patch
production-dependencies:
dependency-type: production
update-types:
- minor
- patch
commit-message:
prefix: "deps"
include: scope

- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: monday
groups:
actions:
patterns:
- "*"
commit-message:
prefix: "ci"
87 changes: 50 additions & 37 deletions .github/workflows/build-sigplot.yml
Original file line number Diff line number Diff line change
@@ -1,53 +1,66 @@
name: Build
name: CI

on:
push:
branches: [ master, develop ]
branches: [main, master, develop]
tags:
- '*'
- "*"
pull_request:
branches: [ master, develop ]
branches: [main, master, develop]

jobs:
build:
lint:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [12.x, 14.x, 16.x]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run lint -- --max-warnings=999
- run: npm run format:check || echo "::warning::Formatting issues found. Run 'npm run format' to fix."

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run build
- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

- name: Install dependencies
run: npm install -q
test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run test

- name: Build SigPlot
run: npx grunt dist

publish:
needs: build
needs: [lint, build, test]
if: startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v2
with:
node-version: 12
cache: 'npm'

- run: npm install
- run: npm run build
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
- if: steps.publish.outputs.type != 'none'
run: |
echo "Version changed: ${{ steps.publish.outputs.old-version }} => ${{ steps.publish.outputs.version }}"
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
registry-url: https://registry.npmjs.org
- run: npm ci
- run: npm run build
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
129 changes: 21 additions & 108 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,120 +1,33 @@
*.o
*.so
*.exe
# Dependencies
node_modules/

# Build output
dist/

# Generated docs
doc/

# OS files
.DS_Store
*~
*.gitignore
Git_History
node_modules
/C:\nppdf32Log\debuglog.txt
.DS_Store
doc/

# Editor files
.idea/
*.swp
.vscode/

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage
coverage/
.nyc_output/

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
# Environment
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Vim Swap Files
*.swp
# IDE caches
.eslintcache
*.tsbuildinfo
6 changes: 0 additions & 6 deletions .jsbeautifyrc

This file was deleted.

6 changes: 0 additions & 6 deletions .jshintignore

This file was deleted.

14 changes: 0 additions & 14 deletions .jshintrc

This file was deleted.

Empty file removed .npmignore
Empty file.
1 change: 0 additions & 1 deletion .nvmrc

This file was deleted.

6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules/
dist/
doc/
benchmark/
support/
*.min.js
11 changes: 11 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "none",
"printWidth": 120,
"endOfLine": "lf",
"bracketSpacing": true,
"arrowParens": "always"
}
18 changes: 0 additions & 18 deletions .travis.yml

This file was deleted.

Loading
Loading