{"push_id":987080026,"size":13,"distinct_size":13,"ref":"refs/heads/pr/compiler-compressor-unit-tests","head":"d8af869fea9461eaa89b2f709b79e0fb816eff16","before":"c8c4f3f9b4e8e22c30c326980806d64a2ece3c53","commits":[{"sha":"60262352e1d05e15c800978c44e87d795bb3e212","author":{"email":"c4a40333d2e70b3fcac4e7cd05d0e9037471cc26@gmail.com","name":"David Trowbridge"},"message":"Fix compatibility with Django < 1.8\n\nThe 1.6.1 release added a dependency on the `setting_changed` signal. In Django\nreleases prior to 1.8, this signal is located in the `django.test.signals`\nmodule, and in 1.8, an alias was added in `django.core.signals`.\n\nThis change adds a fallback import to restore compatibility with older versions\nfor applications which cannot (yet) migrate to the newer Djangos. It has been\ntested against Django 1.6.11 and 1.8.9.","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/60262352e1d05e15c800978c44e87d795bb3e212"},{"sha":"5604b07c5ae915ba480b5d3cc9ccee73d8c1675f","author":{"email":"c4a40333d2e70b3fcac4e7cd05d0e9037471cc26@gmail.com","name":"David Trowbridge"},"message":"Don't filter out \"missing\" files in the glob stage.\n\nCommit bd6b9d8 dramatically changed the way that files are loaded, and had the\nside-effect of filtering out any files which were sourced by finders outside of\nthe main `STATICFILES_DIRS`.\n\nIn the case I'm trying to address, we have an extension framework (in Review\nBoard and Djblets) which can load static media from third-party packages which\nare activated at runtime. This media is loaded by instantiating\n`StylesheetNode` and `JavascriptNode` from `pipeline.templatetags` in\ncombination with a special finder. Because django-pipeline no longer uses\nfinders before the compile stage, calling `storage.exists` (via\n`Package.sources` -> `glob`) silently filters these out.\n\nInside `glob`, I agree that it's useful to test existence when trying to expand\n`*` or `?`, but when the path is just a normal filename, it should be safe to\nassume that the user knows what they're doing. This causes the paths to be\nemitted into the rendered template whether or not `staticfiles_storage` claims\nthey exist, and anything which the configured staticfiles finders can't locate\nwill surface as a 404 rather than being silently eaten.","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/5604b07c5ae915ba480b5d3cc9ccee73d8c1675f"},{"sha":"cb39e0d18e88cac00856e3bca4b961bedad9e782","author":{"email":"f98f87922a15806635c98be8fece24e5dd79cd09@tryphon.org","name":"Timothée Peignier"},"message":"Merge pull request #536 from davidt/setting_changed-compat\n\nFix compatibility with Django < 1.8","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/cb39e0d18e88cac00856e3bca4b961bedad9e782"},{"sha":"b2be56f9ed758f55a6d5d9d8ef9f2e1a734cf6a1","author":{"email":"c4a40333d2e70b3fcac4e7cd05d0e9037471cc26@gmail.com","name":"David Trowbridge"},"message":"Fix unit tests for glob updates.\n\nThe aforementioned change to `glob` surfaced a couple errors in the unit tests:\n\n1. `test_glob_literal` was still testing the old behavior of non-existing paths\n   being filtered out.\n2. The post-process tests (`test_post_process_dry_run` and `test_post_process`)\n   were now failing because post-process was being run without first collecting\n   the media. This is a case where non-existing files were previously being\n   filtered out silently but now cause an error. Running the collection stage\n   before testing `post_process.","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/b2be56f9ed758f55a6d5d9d8ef9f2e1a734cf6a1"},{"sha":"373a0f3c7f094712adf51f90203536114bbaabe7","author":{"email":"f98f87922a15806635c98be8fece24e5dd79cd09@tryphon.org","name":"Timothée Peignier"},"message":"Bump version","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/373a0f3c7f094712adf51f90203536114bbaabe7"},{"sha":"0db06ec1e224c5649f652506687a963b13057d8c","author":{"email":"f98f87922a15806635c98be8fece24e5dd79cd09@tryphon.org","name":"Timothée Peignier"},"message":"Merge pull request #537 from davidt/glob-exists\n\nDon't filter out \"missing\" files in the glob stage.","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/0db06ec1e224c5649f652506687a963b13057d8c"},{"sha":"7f4b29892b1e9f8265d1a8019d3152548c8dc88f","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Fix to shlex.split for *_(BINARY|ARGUMENTS) settings on windows\n\nshlex.split(), without posix=False, strips \"\\\" characters, which is\nobviously problematic on windows.","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/7f4b29892b1e9f8265d1a8019d3152548c8dc88f"},{"sha":"4b1b74f880718c44062ee740a77f757aca48797a","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Fix possible NameError in SubProcessCompiler.execute_command()\n\nIf creating the NamedTemporaryFile throws an exception (for instance if\ntemp_file_container doesn't exist) this triggers a NameError in the\nfinally block.","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/4b1b74f880718c44062ee740a77f757aca48797a"},{"sha":"fc8d7396b27d956fbccaccd3c1b81095efa300ba","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Set stdout and stderr to blocking after running an external command\n\nSome nodejs executables set stdout and/or stderr to non-blocking, which\ncan trigger an IOError when the collectstatic command prints more than\n1024 bytes at a time to stdout or stderr","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/fc8d7396b27d956fbccaccd3c1b81095efa300ba"},{"sha":"95e53eb95d4692a1b3d47c0cfc85180194548bf8","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Set a default value of os.environ['NUMBER_OF_PROCESSORS'] on windows\n\nIf this environment variable is not set, multiprocessing throws a\nNotImplementedError","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/95e53eb95d4692a1b3d47c0cfc85180194548bf8"},{"sha":"90a677fe3bf29f2f031213ccc0204b36dfecf166","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Allow tox to be run without any arguments for all tests","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/90a677fe3bf29f2f031213ccc0204b36dfecf166"},{"sha":"cc9acdd44db2bad8ef89a69fde3b723b884b83af","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Add unit tests for compiler implementations","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/cc9acdd44db2bad8ef89a69fde3b723b884b83af"},{"sha":"d8af869fea9461eaa89b2f709b79e0fb816eff16","author":{"email":"8d7f1aebd899ce8a567cf239f0ed6b0c009df3a1@theatlantic.com","name":"Frankie Dintino"},"message":"Add unit tests for compressor implementations","distinct":true,"url":"https://api.github.com/repos/theatlantic/django-pipeline/commits/d8af869fea9461eaa89b2f709b79e0fb816eff16"}]}