mirror of
https://github.com/librespeed/speedtest.git
synced 2026-05-13 16:26:38 +00:00
* Create stale.yml * Configure Dependabot for GitHub Actions and Docker Added support for GitHub Actions and Docker updates. * Bump actions/stale from 5 to 10 Bumps [actions/stale](https://github.com/actions/stale) from 5 to 10. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v5...v10) --- updated-dependencies: - dependency-name: actions/stale dependency-version: '10' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump actions/checkout from 4 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump docker/build-push-action from 5 to 6 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5...v6) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * typo * Add npm package manager with development tooling and improve Docker builds (#5) * Initial plan * Add npm package manager with development tooling Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Add package manager investigation summary Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Improve Docker build process and analyze PHP package manager needs Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Fix documentation based on code review feedback Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Initial plan * Add npm package manager with development tooling Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Add package manager investigation summary Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Improve Docker build process and analyze PHP package manager needs Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Fix documentation based on code review feedback Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * Restore Dockerfile.alpine to dev version (re-enable php-apache2) * Remove redundant docker-php-extension-installer from Dockerfile.alpine * remove useless ai files * typo * Initial plan * Initial plan * Improve Docker build process and analyze PHP package manager needs Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> * remove useless ai files --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at> * Update .github/workflows/stale.yml Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com> * Update Dockerfile.alpine Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com> * Update .github/workflows/stale.yml Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stefan Stidl <stefan.stidl@ffg.at> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com> Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2.9 KiB
2.9 KiB
Development Guide
This document describes how to use the package manager (npm) for development tasks.
Prerequisites
- Node.js 14.0.0 or higher
- npm (comes with Node.js)
Getting Started
Install development dependencies:
npm install
Available Scripts
Linting
Check code for potential issues:
npm run lint
Automatically fix linting issues where possible:
npm run lint:fix
Code Formatting
Check code formatting (JavaScript files only):
npm run format:check
Format JavaScript files:
npm run format
Note
: The existing codebase uses its original formatting style. Prettier and ESLint are provided as optional tools for new code or improvements.
Validation
Run all checks (formatting and linting):
npm run validate
Testing
Currently, there are no automated tests configured:
npm run test
Docker
Build Docker images:
npm run docker:build # Standard Debian-based image
npm run docker:build-alpine # Alpine-based image
Development Tools
The package manager setup includes:
- ESLint: JavaScript linting tool to catch common errors
- Prettier: Code formatting tool to maintain consistent style
These tools are configured but non-intrusive to the existing codebase.
Project Structure
.
├── speedtest.js # Main speedtest library
├── speedtest_worker.js # Web Worker for speed testing
├── index.html # Default UI
├── backend/ # PHP backend files
├── examples/ # Example implementations
├── results/ # Results/telemetry handling
├── docker/ # Docker-related files
└── package.json # npm package configuration
Why Use a Package Manager?
The package manager provides several benefits:
- Standardized tooling: Common commands across different environments
- Development dependencies: Easy installation of linting and formatting tools
- Project metadata: Version, description, and licensing information
- Future extensibility: Foundation for adding build tools, tests, or bundlers if needed
- npm distribution: Makes the library easy to use in other Node.js projects
Contributing
When making changes:
- Run
npm run lintto check for potential issues - Consider running
npm run formaton new files for consistency - Test your changes manually in a browser
- For PHP backend changes, test with the appropriate server setup
Notes
- The core library has no runtime dependencies - it's pure vanilla JavaScript
- Development dependencies (ESLint, Prettier) are only needed for development
- The library can still be used standalone without npm (just include the JS files)
- npm setup is completely optional and doesn't change how the library is deployed