Added scanning barcodes with a camera
This commit is contained in:
119
quagga2/quagga2-1.12.1/docs/contributing.md
Normal file
119
quagga2/quagga2-1.12.1/docs/contributing.md
Normal file
@@ -0,0 +1,119 @@
|
||||
## Contributing {#contributing}
|
||||
|
||||
### Questions, Bugs, Enhancements / Suggestions {#questions-bugs-enhancements}
|
||||
|
||||
For questions, bug reports, and enhancement requests / suggestions, please use the GitHub issue
|
||||
tracker at https://github.com/ericblade/quagga2/issues
|
||||
|
||||
### Chat / Real Time Communication? {#chat}
|
||||
|
||||
We have a Gitter chat channel available at https://gitter.im/quaggaJS/Lobby . Please join us there,
|
||||
and be patient. Thanks!
|
||||
|
||||
### Code {#code}
|
||||
|
||||
#### Developing enhancements to Quagga2 {#developing-enhancements}
|
||||
|
||||
If you'd like to work directly on the Quagga2 code, it is quite easy to build a local development
|
||||
copy and get started hacking on the base code. Simply clone this repository, then run:
|
||||
|
||||
```
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
#### Running tests {#running-tests}
|
||||
|
||||
There are several tests included in Quagga2, in the test/ folder. Please make sure before you
|
||||
send in any pull requests, that you have run ```npm test``` against the existing tests, as well as
|
||||
implemented any tests that may be needed to test your new code. If you're not sure how to properly
|
||||
unit test your new code, then go ahead and make that pull request, and we'll try to help you before
|
||||
merging.
|
||||
|
||||
**Test Structure**:
|
||||
|
||||
- Unit tests are in `src/` alongside source files (`.spec.ts` files)
|
||||
- Integration tests are in `test/integration/` organized by decoder type
|
||||
- See `test/integration/README.md` for detailed information about integration test structure and configuration
|
||||
|
||||
**Running Specific Tests**:
|
||||
|
||||
```bash
|
||||
# All tests (Node unit/integration + full Cypress suite)
|
||||
npm test
|
||||
|
||||
# Run Node and Cypress in parallel (faster local iteration)
|
||||
npm run test:parallel
|
||||
|
||||
# Node tests only
|
||||
npm run test:node
|
||||
|
||||
# Browser tests only (requires Cypress)
|
||||
npm run test:browser-all
|
||||
|
||||
# E2E examples spec with server (headless)
|
||||
npm run test:e2e
|
||||
|
||||
# E2E examples spec (interactive, Electron)
|
||||
npm run test:e2e:open
|
||||
|
||||
# Cypress: run only specific spec(s)
|
||||
# Pass --spec through npm using --
|
||||
npm run cypress:run -- --spec cypress/e2e/browser.cy.ts
|
||||
|
||||
# Multiple specs (comma-separated)
|
||||
npm run cypress:run -- --spec cypress/e2e/browser.cy.ts,cypress/e2e/integration.cy.ts
|
||||
|
||||
# Glob pattern
|
||||
npm run cypress:run -- --spec "cypress/e2e/**/browser*.cy.ts"
|
||||
|
||||
# Open interactive runner
|
||||
npm run cypress:open
|
||||
|
||||
# Open only the examples E2E spec (Electron)
|
||||
npm run cypress:open:e2e
|
||||
|
||||
# Choose a browser (if installed)
|
||||
npx cross-env NODE_ENV=development BUILD_ENV=development NODE_OPTIONS=--openssl-legacy-provider cypress run --browser chrome --env BUILD_ENV=development --spec cypress/e2e/browser.cy.ts
|
||||
|
||||
# Integration tests only (Node)
|
||||
npx ts-mocha -p test/tsconfig.json test/integration/**/*.spec.ts
|
||||
|
||||
# Specific decoder integration tests
|
||||
npx ts-mocha -p test/tsconfig.json test/integration/decoders/ean_8.spec.ts
|
||||
```
|
||||
|
||||
**Adding Integration Tests**:
|
||||
|
||||
When adding new test cases to decoder integration tests, tests should pass in both Node and browser
|
||||
environments by default. If a test is known to fail in a specific environment, mark it explicitly with:
|
||||
|
||||
- `allowFailInNode: true` - Test can fail in Node without failing CI
|
||||
- `allowFailInBrowser: true` - Test can fail in browser without failing CI
|
||||
- Both flags - Test can fail in both environments
|
||||
|
||||
See `test/integration/README.md` for complete details on the test failure marking system.
|
||||
|
||||
**Notes**:
|
||||
|
||||
- The Cypress E2E examples (`cypress/e2e/examples.cy.ts`) require the local examples server on port 8080; the `test`, `test:e2e`, and `test:e2e:open` scripts start it automatically via `start-server-and-test`.
|
||||
- The parallel runner uses prefixed logs (`e2e`, `node`) and exits non-zero if either side fails (`--kill-others-on-fail --success=all`).
|
||||
|
||||
#### Working on a changed copy of Quagga2 from another repository (ie, developing an external plugin) {#working-on-external-plugin}
|
||||
|
||||
If you need to make changes to Quagga2 to support some external code (such as an external reader plugin),
|
||||
you will probably need to be able to test the code in your other repo. One such way to do that is
|
||||
to ```npm install @ericblade/quagga2``` inside the external repo, which will initialize the module
|
||||
structure, and fill it with the current release of quagga2. Once that is completed, then copy the
|
||||
lib/quagga.js (node) and/or dist/quagga.js and/or dist/quagga.min.js files into
|
||||
ExternalRepo/node_modules/@ericblade/quagga2, preserving the "lib" or "dist" folder. Then your code
|
||||
will have the new changes that you have implemented in your copy of the quagga2 repo.
|
||||
|
||||
#### Pull requests {#pull-requests}
|
||||
|
||||
Please, submit pull requests! Open source works best when we all work together. If you find a change
|
||||
to be useful, the odds are that other users will, as well!
|
||||
|
||||
## BE AWESOME {#be-awesome}
|
||||
|
||||
Don't forget to BE AWESOME.
|
||||
Reference in New Issue
Block a user