{"push_id":1170833327,"size":28,"distinct_size":1,"ref":"refs/heads/schneems/not-sure-if-i-messed-up-this-rebase-so-im-going-to-make-a-PR-to-compare","head":"a3d6591fd5a2c489e78249285d6bf1641b68c0ad","before":"c6eb746600de90e6062dba466ac2ff29678f87ed","commits":[{"sha":"035de89f373a9c1cd769f3dd1d09d7274abe0197","author":{"name":"schneems","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Deprecate legacy processor interface.","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/035de89f373a9c1cd769f3dd1d09d7274abe0197"},{"sha":"29d391cabfb918d371a9ec82791651db09b5a238","author":{"name":"schneems","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Deprecation Branch for 3.X\n\nThe goal of this branch is to house all deprecations for 3.x.\n\nI would like to add deprecation warnings where possible, the goal is that immediately after 4.x reaches a 4.0.0 release we can cut a deprecation release of Sprockets 3. Until then we can make pull requests to this deprecation branch so they are ready to go whenever we want to start issuing deprecation warnings.","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/29d391cabfb918d371a9ec82791651db09b5a238"},{"sha":"a11b97f7a8f9bcb7730db8c6b413e243205932e9","author":{"name":"Richard Schneeman","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Merge pull request #265 from rails/schneems/3.x-deprecate-processor-interface\n\nDeprecate legacy processor interface.","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/a11b97f7a8f9bcb7730db8c6b413e243205932e9"},{"sha":"db7356aecbfda8b488f299dbcd4eb57914e3ad2e","author":{"name":"Rafael Mendonça França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Merge pull request #268 from byroot/real-atomicity\n\nImprobe PathUtils.atomic_write","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/db7356aecbfda8b488f299dbcd4eb57914e3ad2e"},{"sha":"64924916e1f75de4ed52a394a6d8a2969422d05a","author":{"name":"Rafael Mendonça França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Improve the performance of FileStore cache in 20%\n\nThe FileStore cache write the cache files in the same directory. Because\nof that the operation in the cache files becomes slower as the directory\nsize grows.\n\nTo fix this we use the first 2 digits of the cache key to generate\ndifferent folders.\n\nThis improved the time of compiling the assets in a large application\nfrom 3m8.592s to 2m34.529s.\n\nA cold cache compiling on this application generates 18760 files.","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/64924916e1f75de4ed52a394a6d8a2969422d05a"},{"sha":"9482e25a4d190461e2638d34fbb40c4de7e163b7","author":{"name":"Rafael Mendonça França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Use sass < 3.4 with Ruby 1.9\n\nsass 3.4 is deprecated with Ruby 1.9","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/9482e25a4d190461e2638d34fbb40c4de7e163b7"},{"sha":"122590826664cffb76f13e00af2b58dff815f38d","author":{"name":"Rafael Mendonça França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Fix typo","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/122590826664cffb76f13e00af2b58dff815f38d"},{"sha":"87fb2bda87866f8a8177e803b040265332a1f4ab","author":{"name":"Rafael Mendonça França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Release 3.6.0","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/87fb2bda87866f8a8177e803b040265332a1f4ab"},{"sha":"b53d7f6da42a6b89d2c3459fedab42e4b9e59694","author":{"name":"Rafael França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Merge pull request #275 from BlakeMesdag/speedup-pathutils-entries\n\nConvert regex to Ruby start_with? end_with? in PathUtils#entries","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/b53d7f6da42a6b89d2c3459fedab42e4b9e59694"},{"sha":"be40ca2d2ebb518cec8703bde24fe67bda0eb2f6","author":{"name":"Rafael França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Merge pull request #277 from BlakeMesdag/memorycache-store-over-delete-set\n\nHash#store is faster than delete then []=","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/be40ca2d2ebb518cec8703bde24fe67bda0eb2f6"},{"sha":"afffcef6858b7c9d88390f91643bc22530a41477","author":{"name":"Rafael França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Merge pull request #276 from BlakeMesdag/uritar-init-faster\n\nUse partition instead of split for URITar#initialize","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/afffcef6858b7c9d88390f91643bc22530a41477"},{"sha":"c446f71fd5fb4d3230c8466f35a0572cc514d60e","author":{"name":"Rafael França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Merge pull request #278 from vipulnsward/rm-cache-delte\n\nrm code to check unused exists","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/c446f71fd5fb4d3230c8466f35a0572cc514d60e"},{"sha":"5cc9a27a4412aed1f7c20f1fbd0dfc5a7204dcb5","author":{"name":"Daniel P. Clark","email":"539b287fce002ff217019924816dc3ca3b9c3384@gmail.com"},"message":"Fix typo","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/5cc9a27a4412aed1f7c20f1fbd0dfc5a7204dcb5"},{"sha":"509e1922be66a4bedba22c30289c9b073218103e","author":{"name":"Tim Petricola","email":"d3a1ca5a06d79d6bac585a149c9aa6faeca1ef01@gmail.com"},"message":"FileStore: find caches and compute size only when needed","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/509e1922be66a4bedba22c30289c9b073218103e"},{"sha":"0297029db05f03d44e447c5b2c4f7abd0f1e6deb","author":{"name":"Rafael França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Merge pull request #311 from bouk/fix-quadratic-performance-in-concat_javascript_sources\n\nFix quadratic performance in concat_javascript_sources","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/0297029db05f03d44e447c5b2c4f7abd0f1e6deb"},{"sha":"bbe0dd8bf877ca0a2ff4c98d7cc690d3f47f850f","author":{"name":"Rafael Mendonça França","email":"34336d1352eb57c00d6c738f78075df0d11314db@gmail.com"},"message":"Release 3.6.1","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/bbe0dd8bf877ca0a2ff4c98d7cc690d3f47f850f"},{"sha":"79083560e53fcdd4a1b4ca76e03c547044f8803b","author":{"name":"schneems","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Prefer Hash#[] over Set#.include? for speed\n\nPlaying with stackprof against codetriage and for an initial run with no cache `Set#include?` was the top called method, something around 8% of execution time spent there.\n\nDid a microbenchmark to see if it would be faster to use a hash:\n\n```\nrequire 'benchmark/ips'\n\nrequire 'set'\n\nset  = Set.new [:foo, :bar]\nhash = {foo: true, bar: true}\n\nBenchmark.ips do |x|\n  x.report(\"set \") {|num|\n    i = 0\n    while i < num\n      set.include?(:foo)\n      i += 1\n    end\n\n  }\n  x.report(\"hash\") {|num|\n    i = 0\n    while i < num\n      hash[:foo]\n      i += 1\n    end\n  }\n  x.compare!\nend\n\n# Warming up --------------------------------------\n#                 set    215.314k i/100ms\n#                 hash   219.939k i/100ms\n# Calculating -------------------------------------\n#                 set      11.715M (±15.5%) i/s -     56.843M in   5.010837s\n#                 hash     20.119M (±18.2%) i/s -     96.333M in   5.010977s\n\n# Comparison:\n#                 hash: 20118880.7 i/s\n#                 set : 11714839.0 i/s - 1.72x slower\n```\n\nYes, it is faster.\n\nAnecdotally when running `RAILS_ENV=production time rake assets:precompile` against codetriage:\n\nBefore patch:\n\n```\neal    0m18.325s\nuser    0m14.564s\nsys    0m2.729s\n```\n\nAfter patch:\n\n```\nreal    0m17.981s\nuser    0m14.461s\nsys    0m2.716s\n```","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/79083560e53fcdd4a1b4ca76e03c547044f8803b"},{"sha":"cb6995cbb9be4d09b7024b3560bcf49898baa4da","author":{"name":"schneems","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Speed up digest with recursive hash\n\nDigest is the second most time spent while compiling assets on the first run for CodeTriage. The `if/elsif` means that for complex data structures many many comparisons are made. Instead we store the logic of digesting each class in a hash with the class name as a key. Complex data types digest themselves by recursively calling into the hash.\n\nIs it faster?\n\nOn CodeTriage.com over 50 runs against this codebase and master it averaged 12.54s per run on this branch stdev 0.27seconds and against master it was 14.9s with a 2.045 stdev. So in the average case it makes asset generation 16% faster.","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/cb6995cbb9be4d09b7024b3560bcf49898baa4da"},{"sha":"1b536c74066d39481b919d2901696f8c8cbcc8e1","author":{"name":"schneems","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Introduce deprecation class","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/1b536c74066d39481b919d2901696f8c8cbcc8e1"},{"sha":"9a5c39cfd2c5a4779940705fc6aff3c4670986ca","author":{"name":"schneems","email":"c14a41698892ba9bb4ba113f863cf6ac7adc56d2@gmail.com"},"message":"Explicitly deprecate \"Template\" interfaces\n\nFound they're bing used by `sassc-rails` https://github.com/sass/sassc-rails/issues/64.","distinct":false,"url":"https://api.github.com/repos/rails/sprockets/commits/9a5c39cfd2c5a4779940705fc6aff3c4670986ca"}]}
{"actor":{"display_login":"schneems"}}