.gitignore
author Gregory Szorc <gps@mozilla.com>
Mon, 08 May 2017 17:19:05 -0700
changeset 361962 11ba6213be5a745d70e5c6fdcd036bafb1ac2718
parent 361533 ecb85cc1ee3e7e6473ecbe2b450fa2a5a55fc5ff
child 362858 34b11112f0e3b342c149295ea8e8eac01cdf646c
permissions -rw-r--r--
Bug 1359965 - Support and generate tar.gz WPT archive; r=glandium Several years ago there was a single zip file for all test files. Clients would only extract the files they needed. Thus, zip was a reasonable archive format because it allowed direct access to members without having to decompress the entirety of the stream. We have since split up that monolithic archive into separate, domain-specific archives. e.g. 1 archive for mochitests and one for xpcshell tests. This drastically cut down on network I/O required on testers because they only fetched archives/data that was relevant. It also enabled parallel generation of test archives, we shaved dozens of seconds off builds due to compression being a long pole. Despite the architectural changes to test archive management, we still used zip files. This is not ideal because we no longer access specific files in test archives and thus don't care about single/partial member access performance. This commit implements support for generating tar.gz test archives. And it switches the web-platform archive to a tar.gz file. The performance implications for archive generation are significant: before: 48,321,250 bytes; 6.05s after: 31,844,267 bytes; 4.57s The size is reduced because we have a single compression context so data from 1 file can benefit compression in a subsequent file. CPU usage is reduced because the compressor has to work less with 1 context than it does with N. While I didn't measure it, decompression performance should also be improved for the same reasons. And of course network I/O will be reduced. mozharness consumers use a generic method for handling unarchiving. This method automagically handles multiple file extensions. So as long as downstream consumers aren't hard coding ".zip" this change should "just work." MozReview-Commit-ID: LQa5MIHLsms

# .gitignore - List of filenames git should ignore

# Filenames that should be ignored wherever they appear
*~
*.pyc
*.pyo
TAGS
tags
ID
!/browser/extensions/screenshots/webextension/_locales/id/
.DS_Store*
*.pdb
*.egg-info

# Vim swap files.
.*.sw[a-z]

# Emacs directory variable files.
**/.dir-locals.el

# User files that may appear at the root
/.mozconfig*
/mozconfig
/configure
/old-configure
/config.cache
/config.log
/.clang_complete
/machrc
/.machrc

# Empty marker file that's generated when we check out NSS
security/manager/.nss.checkout

# Build directories
/obj*/

# gecko.log is generated by various test harnesses
/gecko.log

# Build directories for js shell
_DBG.OBJ/
_OPT.OBJ/

# SpiderMonkey configury
js/src/configure
js/src/old-configure
js/src/autom4te.cache
# SpiderMonkey test result logs
js/src/tests/results-*.html
js/src/tests/results-*.txt

# Java HTML5 parser classes
parser/html/java/htmlparser/
parser/html/java/javaparser/

# Ignore the files and directory that Eclipse IDE creates
.project
.cproject
.settings/

# Ignore the files and directory that JetBrains IDEs create.
/.idea/
*.iml

# Gradle cache.
/.gradle/

# Local Gradle configuration properties.
/local.properties

# Python virtualenv artifacts.
python/psutil/**/*.so
python/psutil/**/*.pyd
python/psutil/build/

# Ignore chrome.manifest files from the devtools loader
devtools/client/chrome.manifest
devtools/shared/chrome.manifest

# Ignore node_modules directories in devtools
devtools/**/node_modules

# Tag files generated by GNU Global
GTAGS
GRTAGS
GSYMS
GPATH

# Git clone directory for updating web-platform-tests
testing/web-platform/sync/

# Third party metadata for web-platform-tests
testing/web-platform/products/

# Android Gradle artifacts.
mobile/android/gradle/.gradle

# XCode project cruft
embedding/ios/GeckoEmbed/GeckoEmbed.xcodeproj/project.xcworkspace/xcuserdata
embedding/ios/GeckoEmbed/GeckoEmbed.xcodeproj/xcuserdata

# Ignore mozharness execution files
testing/mozharness/.tox/
testing/mozharness/build/
testing/mozharness/logs/
testing/mozharness/.coverage
testing/mozharness/nosetests.xml

# Ignore ESLint node_modules
node_modules/

# Ignore talos virtualenv and tp5n files.
# The tp5n set is supposed to be decompressed at
# testing/talos/talos/page_load_test/tp5n in order to run tests like tps
# locally. Similarly, running talos requires a Python package virtual
# environment. Both the virtual environment and tp5n files end up littering
# the status command, so we ignore them.
testing/talos/.Python
testing/talos/bin/
testing/talos/include/
testing/talos/lib/
testing/talos/talos/tests/tp5n.zip
testing/talos/talos/tests/tp5n
testing/talos/talos/tests/devtools/damp.manifest.develop

# Ignore files created when running a reftest.
lextab.py

# tup database
/.tup

# Ignore Visual Studio Code workspace files.
.vscode/*
!.vscode/extensions.json
!.vscode/tasks.json