(Up to date as of 2010-03-07)
Drupal core
Drupal.org naturally runs on Drupal (or, more specifically, a high-performance distribution of Drupal called Pressflow).
We are using the following Drupal core modules:
- Aggregator - Aggregates syndicated content (RSS, RDF, and Atom feeds). Used to power Planet Drupal.
- Book - Allows users to structure site pages in a hierarchy or outline. Used to create the Documentation section.
- Comment - Allows users to comment on and discuss published content. Used in the forums and issue queue.
- Contact - Used for the Drupal.org contact form and users' personal contact forms.
- Forum -Provides the Drupal.org forums.
- Menu - Standard Menu administration module.
- Path - Provides friendly URLs like, for example, http://drupal.org/handbook/modules/path.
- Profile - Powers our user profile pages and user listing pages.
- Search - Basic search framework that Apache Solr hooks into.
- Taxonomy - Taxonomy is used in a number of places around the site, including the forum, documentation, downloads, and the issue queue.
- Update Status - Standard administration module that notifies if modules, themes, or Drupal core is out of date.
Contributed modules
We also use the following contributed modules (more or less the order at /admin/reports/updates to facilitate easier updating of this list):
- Apache Solr Search Integration - A framework for searching with Solr. Powers our search and our project browsing pages.
Sub-modules: Apache Solr framework, Apache Solr search, User search - Apache Solr Multisite Search - Allows searching for content across multiple sites (e.g. association.drupal.org, groups.drupal.org) with Solr.
- Bakery Single Sign-On System - Allows your cookie from Drupal.org to automatically log you in to groups.drupal.org, api.drupal.org, etc. when you visit them.
- Beanstalkd Integration - Provides integration with a beanstalkd queue which is used for managing jobs related to the Git integration (e.g. creating new Git repositories when new projects are created, parsing Git commit information when Git commits are pushed, etc).
- Chaos tool suite - This is a requirement for Views Content Cache and our custom Drupal.org modules.
Sub-modules: Chaos tools - Code Filter - Provides formatting to code snippets in documentation pages, forum posts, issue queues, etc.
- Comment Alter Taxonomy - Allow users to alter the taxonomy terms of a node from a comment. Powers issue queue tagging.
- Comment Upload - Provides file uploads for issue comments
- DBTNG - Backport of the Drupal 7 database abstraction layer, used as a query builder by Version Control API.
- Diff - Provide comparisons between node revisions such as this.
- Drupal Queue API - Backport of the Drupal 7 Queue API, required by Beanstalkd Integration.
- Google Ad Manager - Handles advertising listings on pages such as the home page and documentation pages.
- Google Analytics - Provides integration with Google Analytics statistics.
- Homebox - Provides the Dashboard functionality.
- HTML5 user geolocation - Powers the community map on the home page.
- Image - Powers Drupal.org's screenshot galleries, which in turn power the screenshots on project pages.
Sub-modules: Image, Image attach, Image gallery - jQuery UI - Provides the jQuery UI plug-in to other Drupal modules. Used by Homebox.
- Materialized View - Materializes defined views of fields for scalability. TODO: Not totally sure where this is used.
Sub-modules: Drupal.org, Materialized view, Sources - Multiple E-mail Addresses - Allows users to associate multiple email addresses with their account.
- Paranoia - Locks down various administrative settings.
- Path Redirect - Provides an admin interface to set up redirects, such as from http://drupal.org/handbook to http://drupal.org/documentation.
- Project - Powers our module and theme download section.
Sub-modules:- Project - Provides a project node type and default browsing pages.
- Project package - Keeps track of what items are included in a given release. For example, provides the listing of which projects are included in packaged Drupal distributions.
- Project releases - Provides a release node type to represent releases of projects, the drupal.org packaging script, and the code to create the release history XML feeds available at updates.drupal.org.
- Project Solr - Provides integration with ApacheSolr for facet-based project browsing. Powers the project browsing pages.
- Project usage - Provides data about installed usage of projects. Powers the usage statistics pages.
- Project Git Instructions - Provides the "Version control" tab on project pages.
- Project Issue File Test (PIFT) - Powers a service that informs http://qa.drupal.org/ of patches waiting to be tested and updates issues with the results.
- Project issue tracking - Provides Drupal.org's issue queue.
Sub-modules: Project issue tracking, Project issue search index - SSH Key - Allows users to associate SSH public keys with their account (used to authenticate to Git).
- Tracker 2 - A high-performance replacement for Drupal core's default Tracker module. Powers the recent posts listing.
- Version Control API, Version Control API -- Git backend, and Version Control / Project* integration
- Views - Create customized lists and queries. Used pretty much everywhere. :)
Sub-modules: Views, Views UI - Views Bulk Operations - Allows views to expose options for selecting multiple items and applying operations on them. Used for various custom administrative views.
- Views Content Cache - Provides a views cache plugin based on content type changes.
Custom code
Custom code is kept in the Drupal.org customizations project. This contains a set of modules with site-specific logic that doesn't make sense to put into the more generic contributed modules.
Sub-modules:
- Block: Pivots - Provides the "Related projects" block on project pages.
- Drupal.org - Customizations and tweaks for drupal.org
- Drupal.org cross-site functionality - To be used across all the subsites on drupal.org
- Drupal.org handbooks - Handbook related customizations used on Drupal.org.
- Drupal.org news - Blocks and customizations related to Drupal.org news and Planet Drupal.
- Drupal.org Order Facets - Manage order-based facets for Drupal.org.
- Drupal.org project customizations - Drupal.org project functionality related customizations
- Drupal.org search - Drupal.org search customizations
- Drupal.org Version Control API integration - Customizations for Version Control API
- Drupal.org Git Gateway - Provides access control for using Git on drupal.org (e.g. the Git access agreement page on user profile pages)
- Drupal.org Git/Varnish Control - Provides a Varnish-cacheable alternative to drush for getting data necessary for Drupal.org Git SSH auth.
- Mailing lists - Mailing lists subscriptions services.
- Project verify package - drupal.org specific verification helpers for the project packaging system.
- Results for scratch - Mess with search results for display on scratch.drupal.org
- Role activity - Activity for selected roles
Theme and branding
The theme for Drupal.org is called Bluecheese. You will notice that it is not available for download and use outside of Drupal.org. Visual identity brand is very important and to see from various past forum requests, many people believe that the current theme is striking. In order to preserve Drupal.org's 'brand' identity, Bluecheese will not be made available outside of the Drupal.org implementers team.
The Drupal wordmark was custom designed by Mark Boulton Design.