Skip to content

Maintaining and Contributing

John James Jacoby edited this page Sep 28, 2026 · 3 revisions

Maintaining and contributing

Chosen is a maintained fork of Harvest Chosen. The project accepts focused fixes and additions that preserve the library’s established role: enhancing ordinary select elements without replacing their form semantics.

Before opening a pull request

  1. Read the contributing guide.
  2. Search both the fork’s issues and the Harvest archive.
  3. Reproduce the behavior against current master.
  4. Preserve current defaults unless new behavior is intentionally opt-in.
  5. Update both jQuery and Prototype adapters when shared behavior changes.
  6. Follow the repository's AGENTS.md documentation and verification guidance.

Build and test

The project requires the Node version declared in .nvmrc.

npm install
npm test

npm test rebuilds generated assets and runs the browser matrix. Commit source and generated distribution files together.

Useful focused commands:

npm run test:jquery
npm run test:proto
npm run test:mobile

Generated files

CoffeeScript and SCSS remain the editable sources. Built JavaScript, CSS, source maps, and documentation copies are part of the repository and release packages.

Compatibility notes

Document user-visible behavior in CHANGELOG.md. Add a developer note when generated markup, classes, IDs, or nesting changes, even when the visible behavior is a bug fix. Update the live Options page for new settings, add jQuery and Prototype examples when the behavior benefits from trying it, and keep the corresponding wiki guide and screenshots current.

Releases

The GitHub Actions trusted-publishing workflow publishes npm releases. GitHub Pages separately publishes the committed docs/ directory whenever master changes. A tag by itself does not update the site. CI and the npm release workflow check that a fresh build leaves dist/ and docs/ unchanged, so release commits must include their generated site assets. Follow the release checklist in the contributing guide rather than publishing from an arbitrary local checkout.

Credits

Chosen was created by Patrick Filler for Harvest, with design and CSS by Matthew Lettini. The current fork retains the project history and credits contributors in the repository and release notes.