Contributing to Bootstrap-select

We welcome contributions from everyone! Following these guidelines helps to make the contribution process easy and effective for everyone involved.

Using the Issue Tracker

The issue tracker is the preferred channel for bug reports, feature requests, and submitting pull requests.

  • Please do not use the issue tracker for personal support requests. Use Stack Overflow instead.
  • Please do not derail or troll issues. Keep the discussion on topic and respect the opinions of others.

Bug Reports

A good bug report is a demonstrable problem caused by the code in the repository. Please follow these steps:

  1. Search existing issues: Check if the issue has already been reported.
  2. Use the latest version: Try to reproduce the bug using the latest master or dev branch.
  3. Provide environment details: Include your OS, browser, jQuery version, Bootstrap version, and bootstrap-select version.
  4. Create a reproducible test case: An isolated example is extremely helpful. You can use this Plunker debugging template.

Feature Requests

Feature requests are welcome. Please provide as much detail and context as possible to make a strong case for your idea.

Pull Request Guidelines

  • Base your Pull Request on the dev branch and target the dev branch.
  • Do not edit the generated or minified files in the dist/ directory. Edit the original source files in js/ and less/sass.
  • If possible, add relevant tests to cover your changes.
  • Write a clear and convincing description of your PR.

Development Setup

To contribute code, you'll need to set up a local development environment.

  1. Prerequisites: Install Node.js (which includes npm) and Grunt CLI.

    npm install -g grunt-cli
  2. Install Dependencies: Clone the repository and install the project's development dependencies.

    git clone https://github.com/snapappointments/bootstrap-select.git
    cd bootstrap-select
    npm install
  3. Build the Project: Use Grunt to build the distribution files from the source.

    • grunt: Cleans and rebuilds all distribution files.
    • grunt dist: Builds the distribution files (dist/).
    • grunt build-css: Builds only the CSS files.
    • grunt build-js: Builds only the JavaScript files.
    • grunt dev-watch: Watches for changes in source files and automatically rebuilds them.
    • grunt lint: Runs ESLint to check for code quality issues.

Running Documentation Locally

This documentation site is built with mkdocs. You can run it locally to preview your changes.

  1. Install dependencies: You'll need Python and pip. Install MkDocs and the Bootstrap theme.

    pip install mkdocs mkdocs-bootstrap
  2. Serve the documentation: From the docs/ directory within the project, run the mkdocs serve command.

    cd docs
    mkdocs serve
  3. Open http://127.0.0.1:8000/ in your browser to view the local documentation site.