<commit_before>module.exports = function (grunt) {
  // Full list of files that must be included by RequireJS
  includes = [
    'jquery.select2',
    'almond',

    'jquery-mousewheel' // shimmed for non-full builds
  ];

  fullIncludes = [
    'jquery',

    'select2/compat/containerCss',
    'select2/compat/dropdownCss',

    'select2/compat/initSelection',
    'select2/compat/inputData',
    'select2/compat/matcher',
    'select2/compat/query',

    'select2/dropdown/attachContainer',
    'select2/dropdown/stopPropagation',

    'select2/selection/stopPropagation'
  ].concat(includes);

  var i18nModules = [];
  var i18nPaths = {};

  var i18nFiles = grunt.file.expand({
    cwd: 'src/js'
  }, 'select2/i18n/*.js');

  var testFiles = grunt.file.expand('tests/**/*.html');
  var testUrls = testFiles.map(function (filePath) {
    return 'http://localhost:9999/' + filePath;
  });

  var testBuildNumber = "unknown";

  if (process.env.TRAVIS_JOB_ID) {
    testBuildNumber = "travis-" + process.env.TRAVIS_JOB_ID;
  } else {
    var currentTime = new Date();

    testBuildNumber = "manual-" + currentTime.getTime();
  }

  for (var i = 0; i < i18nFiles.length; i++) {
    var file = i18nFiles[i];
    var name = file.split('.')[0];

    i18nModules.push({
      name: name
    });

    i18nPaths[name] = '../../' + name;
  }

  var minifiedBanner = '/*! Select2 <%= package.version %> | https://github.com/select2/select2/blob/master/LICENSE.md */';

  grunt.initConfig({
    package: grunt.file.readJSON('package.json'),

    clean: {
      docs: ['docs/_site']
    },

    concat: {
      'dist': {
        options: {
          banner: grunt.file.read('src/js/wrapper.start.js'),
        },
        src: [
          'dist/js/select2.js',
          'src/js/wrapper.end.js'
        ],
        dest: 'dist/js/select2.js'
      },
      'dist.full': {
        options: {
          banner: grunt.file.read('src/js/wrapper.start.js'),
        },
        src: [
          'dist/js/select2.full.js',
          'src/js/wrapper.end.js'
        ],
        dest: 'dist/js/select2.full.js'
      }
    },

    connect: {
      tests: {
        options: {
          base: '.',
          hostname: '127.0.0.1',
          port: 9999
        }
      }
    },

    uglify: {
      'dist': {
        src: 'dist/js/select2.js',
        dest: 'dist/js/select2.min.js',
        options: {
          banner: minifiedBanner
        }
      },
      'dist.full': {
        src: 'dist/js/select2.full.js',
        dest: 'dist/js/select2.full.min.js',
        options: {
          banner: minifiedBanner
        }
      }
    },

    qunit: {
      all: {
        options: {
          urls: testUrls
        }
      }
    },

    'saucelabs-qunit': {
      all: {
        options: {
          build: testBuildNumber,
          tags: ['tests', 'qunit'],
          urls: testUrls,
          testTimeout: 8000,
          testname: 'QUnit test for Select2',
          browsers: [
            {
              browserName: 'internet explorer',
              version: '8'
            },
            {
              browserName: 'internet explorer',
              version: '9'
            },
            {
              browserName: 'internet explorer',
              version: '10'
            },
            {
              browserName: 'internet explorer',
              version: '11'
            },

            {
              browserName: 'firefox',
              platform: 'linux'
            },

            {
              browserName: 'chrome'
            },

            {
              browserName: 'opera',
              version: '12',
              platform: 'linux'
            }
          ]
        }
      }
    },

    'gh-pages': {
      options: {
        base: 'docs',
        branch: 'master',
        clone: 'node_modules/grunt-gh-pages/repo',
        message: 'Updated docs with master',
        push: true,
        repo: '<EMAIL>:select2/select2.github.io.git'
      },
      src: '**'
    },
<commit_msg>set platform for all browsers in grunt-saucelabs tests<commit_after>module.exports = function (grunt) {
  // Full list of files that must be included by RequireJS
  includes = [
    'jquery.select2',
    'almond',

    'jquery-mousewheel' // shimmed for non-full builds
  ];

  fullIncludes = [
    'jquery',

    'select2/compat/containerCss',
    'select2/compat/dropdownCss',

    'select2/compat/initSelection',
    'select2/compat/inputData',
    'select2/compat/matcher',
    'select2/compat/query',

    'select2/dropdown/attachContainer',
    'select2/dropdown/stopPropagation',

    'select2/selection/stopPropagation'
  ].concat(includes);

  var i18nModules = [];
  var i18nPaths = {};

  var i18nFiles = grunt.file.expand({
    cwd: 'src/js'
  }, 'select2/i18n/*.js');

  var testFiles = grunt.file.expand('tests/**/*.html');
  var testUrls = testFiles.map(function (filePath) {
    return 'http://localhost:9999/' + filePath;
  });

  var testBuildNumber = "unknown";

  if (process.env.TRAVIS_JOB_ID) {
    testBuildNumber = "travis-" + process.env.TRAVIS_JOB_ID;
  } else {
    var currentTime = new Date();

    testBuildNumber = "manual-" + currentTime.getTime();
  }

  for (var i = 0; i < i18nFiles.length; i++) {
    var file = i18nFiles[i];
    var name = file.split('.')[0];

    i18nModules.push({
      name: name
    });

    i18nPaths[name] = '../../' + name;
  }

  var minifiedBanner = '/*! Select2 <%= package.version %> | https://github.com/select2/select2/blob/master/LICENSE.md */';

  grunt.initConfig({
    package: grunt.file.readJSON('package.json'),

    clean: {
      docs: ['docs/_site']
    },

    concat: {
      'dist': {
        options: {
          banner: grunt.file.read('src/js/wrapper.start.js'),
        },
        src: [
          'dist/js/select2.js',
          'src/js/wrapper.end.js'
        ],
        dest: 'dist/js/select2.js'
      },
      'dist.full': {
        options: {
          banner: grunt.file.read('src/js/wrapper.start.js'),
        },
        src: [
          'dist/js/select2.full.js',
          'src/js/wrapper.end.js'
        ],
        dest: 'dist/js/select2.full.js'
      }
    },

    connect: {
      tests: {
        options: {
          base: '.',
          hostname: '127.0.0.1',
          port: 9999
        }
      }
    },

    uglify: {
      'dist': {
        src: 'dist/js/select2.js',
        dest: 'dist/js/select2.min.js',
        options: {
          banner: minifiedBanner
        }
      },
      'dist.full': {
        src: 'dist/js/select2.full.js',
        dest: 'dist/js/select2.full.min.js',
        options: {
          banner: minifiedBanner
        }
      }
    },

    qunit: {
      all: {
        options: {
          urls: testUrls
        }
      }
    },

    'saucelabs-qunit': {
      all: {
        options: {
          build: testBuildNumber,
          tags: ['tests', 'qunit'],
          urls: testUrls,
          testTimeout: 8000,
          testname: 'QUnit test for Select2',
          browsers: [
            {
              browserName: 'internet explorer',
              version: '8',
              platform: 'Windows 7'
            },
            {
              browserName: 'internet explorer',
              version: '9',
              platform: 'Windows 7'
            },
            {
              browserName: 'internet explorer',
              version: '10',
              platform: 'Windows 7'
            },

            {
              browserName: 'internet explorer',
              version: '11',
              platform: 'Windows 10'
            },

            {
              browserName: 'firefox',
              platform: 'linux'
            },

            {
              browserName: 'chrome',
              platform: 'linux'
            },

            {
              browserName: 'opera',
              version: '12',
              platform: 'linux'
            }
          ]
        }
      }
    },

    'gh-pages': {
      options: {
        base: 'docs',
        branch: 'master',
        clone: 'node_modules/grunt-gh-pages/repo',
        message: 'Updated docs with master',
        push: true,
        repo: '<EMAIL>:select2/select2.github.io.git'
      },
      src: '**'
    },

{'fraction_non_alphanumeric': 0.1486650485436893, 'fraction_numerical': 0.017354368932038833, 'mean_word_length': 1.5079123554473524, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5121190', 'n_tokens_mistral': 2764, 'n_tokens_neox': 2636, 'n_words': 451}