<commit_before>/*global module:false*/
module.exports = function(grunt) {
	// Bootstrap the extra tasks needed by Grunt
	grunt.loadNpmTasks('grunt-contrib-less');
	grunt.loadNpmTasks('grunt-contrib-clean');
	grunt.loadNpmTasks('grunt-contrib-copy');
	grunt.loadNpmTasks('grunt-requirejs');

	// The real grunt config
	var config = {
		pkg : '<json:package.json>',
		/* Code quality related tasks */
		lint : {
			files : 'client/app/**/*.js'
		},
		jshint : {
			options : {
				curly : true, eqeqeq : true, immed : true, latedef : true,
				newcap : true,noarg : true, sub : true, undef : true,
				boss : true, eqnull : true, browser : true, devel : true
			},
			globals : {
				require : true,
				define : true
			}
		},
		qunit : {
			files : 'tests/*.html'
		},

		/* Build & Optimization steps */
		requirejs : {
			release : {
				options : {
					baseUrl: 'client/app',
					name: 'main',
					mainConfigFile: 'client/app/main.js',
					out: 'staging/app/main.js',
					optimize: 'none'
				}
			}
		},
		less : {
			// Fill in manually afterwards to support our config style
			debug : {
				src: 'client/css/styles.less',
				dest: 'staging/css/styles.css'
			},
			release : {
				options : {
					yuicompress : true
				},
				src: 'client/css/styles.less',
				dest: 'staging/css/styles.css'
			}
		},
		// Build JS into one monolith by JamJS/RequireJS
		min : {
			dist : {
				src : 'staging/app/main.js',
				dest : 'dist/app/main.js'
			}
		},
		/* Helper tasks */
		copy : {
			debug : {
				files : {
					'staging/': 'client/*.html',
					'staging/app/': 'client/app/**/*',
					'staging/components/': 'client/components/**/*'
				}
			},
			release : {
				files : {
					'staging/': 'client/*.html',
					'staging/components/requirejs/require.js': 'client/components/requirejs/require.js',
					'dist/components/requirejs/require.js': 'staging/components/requirejs/require.js',
					'dist/': 'staging/*.html',
					'dist/css/': 'staging/css/*.css'
				}
			}
		},
		clean: {
		 all: [ 'staging', 'dist' ]
		},
		watch : {
			client : {
				files : [ 'client/app/**/*.js', 'client/css/**/*.js', 'client/*.html' ],
				tasks : 'debug'
			},
			tests : {
				files : [ 'tests/*.html' ],
				tasks : 'test'
			}
		}
	};

	// Project configuration.
	grunt.initConfig(config);

	// Task aliases
	grunt.registerTask('release', 'clean less:release requirejs:release copy:release min test');
	grunt.registerTask('debug', 'clean less:debug copy:debug test watch');
	grunt.registerTask('test', 'lint qunit');
	grunt.registerTask('default', 'release');
};<commit_msg>FIX: LESS files not automatically rebuilding<commit_after>/*global module:false*/
module.exports = function(grunt) {
	// Bootstrap the extra tasks needed by Grunt
	grunt.loadNpmTasks('grunt-contrib-less');
	grunt.loadNpmTasks('grunt-contrib-clean');
	grunt.loadNpmTasks('grunt-contrib-copy');
	grunt.loadNpmTasks('grunt-requirejs');

	// The real grunt config
	var config = {
		pkg : '<json:package.json>',
		/* Code quality related tasks */
		lint : {
			files : 'client/app/**/*.js'
		},
		jshint : {
			options : {
				curly : true, eqeqeq : true, immed : true, latedef : true,
				newcap : true,noarg : true, sub : true, undef : true,
				boss : true, eqnull : true, browser : true, devel : true
			},
			globals : {
				require : true,
				define : true
			}
		},
		qunit : {
			files : 'tests/*.html'
		},

		/* Build & Optimization steps */
		requirejs : {
			release : {
				options : {
					baseUrl: 'client/app',
					name: 'main',
					mainConfigFile: 'client/app/main.js',
					out: 'staging/app/main.js',
					optimize: 'none'
				}
			}
		},
		less : {
			// Fill in manually afterwards to support our config style
			debug : {
				src: 'client/css/styles.less',
				dest: 'staging/css/styles.css'
			},
			release : {
				options : {
					yuicompress : true
				},
				src: 'client/css/styles.less',
				dest: 'staging/css/styles.css'
			}
		},
		// Build JS into one monolith by JamJS/RequireJS
		min : {
			dist : {
				src : 'staging/app/main.js',
				dest : 'dist/app/main.js'
			}
		},
		/* Helper tasks */
		copy : {
			debug : {
				files : {
					'staging/': 'client/*.html',
					'staging/app/': 'client/app/**/*',
					'staging/components/': 'client/components/**/*'
				}
			},
			release : {
				files : {
					'staging/': 'client/*.html',
					'staging/components/requirejs/require.js': 'client/components/requirejs/require.js',
					'dist/components/requirejs/require.js': 'staging/components/requirejs/require.js',
					'dist/': 'staging/*.html',
					'dist/css/': 'staging/css/*.css'
				}
			}
		},
		clean: {
		 all: [ 'staging', 'dist' ]
		},
		watch : {
			client : {
				files : [ 'client/app/**/*.js', 'client/css/**/*.less', 'client/*.html' ],
				tasks : 'debug'
			},
			tests : {
				files : [ 'tests/*.html' ],
				tasks : 'test'
			}
		}
	};

	// Project configuration.
	grunt.initConfig(config);

	// Task aliases
	grunt.registerTask('release', 'clean less:release requirejs:release copy:release min test');
	grunt.registerTask('debug', 'clean less:debug copy:debug test watch');
	grunt.registerTask('test', 'lint qunit');
	grunt.registerTask('default', 'release');
};
{'fraction_non_alphanumeric': 0.1805047197071855, 'fraction_numerical': 0.0, 'mean_word_length': 2.610570236439499, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, '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': '4162269', 'n_tokens_mistral': 2257, 'n_tokens_neox': 1849, 'n_words': 361}