The main instance monitoring jQuery core and related projects runs at swarm.jquery.org.
TestSwarm is still in use in projects of the jQuery Foundation, but it isn't under active development anymore. Although critical issues may be patched in the future, most open issues will remain unaddressed.
Within the jQuery Foundation, we're experimenting with alternative projects, to eventually shut down our own instance of TestSwarm:
We recommend reviewing those and other alternatives.
Clone the repo,
git clone --recursive git://github.com/jquery/testswarm.git.
TestSwarm uses the Semantic Versioning guidelines as much as possible.
Releases will be numbered in the following format:
-alpha suffix is used to indicate unreleased versions in development.
For more information on SemVer, please visit http://semver.org/.
Found a bug? Please report it using our issue tracker!
To run TestSwarm you will need a web server, a database server and PHP. At the moment TestSwarm supports the following, but other configurations may work as well.
- Apache 2.0+, NGINX 1.2+
- PHP 5.4+ (or PHP-FPM for NGINX)
- MySQL 4.0+
- cURL (for the cleanup action; see step 8)
Set up a MySQL database and create a user with read and write access.
localSettings.jsonand replace the sample settings with your own.
Refer to the Settings page for more information.
To run TestSwarm from a non-root directory, set
localSettings.jsonto the correct path from the web root and update RewriteBase in
.htaccess. Verify that
.htaccessis working properly by opening a page other than the HomePage (e.g.
/testswarm/projects) in your browser.
Required Apache configuration:
AllowOverrideis set to
mod_rewriteinstalled and loaded.
The file name should match your domain e.g. for swarm.example.org:
cp config/sample-nginx.conf /etc/nginx/sites-available/swarm.example.org.conf
Open this conf file in your editor and replace the "example" values with the correct values.
Make sure your install is located at
/var/www/testswarm(otherwise update the file to match the correct location).
Now you need to link the
sites-availableconfig to the
(replace the "swarm.example.org" with your own file name):
ln -s /etc/nginx/sites-available/swarm.example.org.conf /etc/nginx/sites-enabled/swarm.example.org.conf
Now make sure that php-fpm is running:
if is not running start it:
Or, if TestSwarm is not in the root directory, add similar rules to your root
storage.cacheDirto a writable directory that is not readable from the web. Either set it to a custom path outside the document root, or use the default
cachedirectory (protected with .htaccess).
chmod 777 cache.
Install the TestSwarm database by running:
Fetch the latest user-agent information:
php external/ua-parser/php/uaparser-cli.php -g
Note that ua-parser is based on patterns, so you don't need to re-run this after every browser release to be able to detect this, however it is recommmended to periodically run this to stay up to date (once a month should be enough).
Create an entry in your crontab for action=cleanup. This performs various cleaning duties such as making timed-out runs available again.
* * * * * curl -s http://swarm.example.org/api.php?action=cleanup > /dev/null
You're welcome to use the GitHub issue tracker to start discussions.
Or post to the QUnit and Testing forum.
Most of us are also on IRC in the #jquery-dev channel at irc.freenode.net
Copyright and license