diff --git a/drupalorg_project/drupalorg_project.field_group.inc b/drupalorg_project/drupalorg_project.field_group.inc
new file mode 100644
index 0000000..0b74001
--- /dev/null
+++ b/drupalorg_project/drupalorg_project.field_group.inc
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * @file
+ * Bulk export of field_group objects generated by Bulk export module.
+ */
+
+/**
+ * Implements hook_field_group_info().
+ */
+function project_issue_field_group_info() {
+  $field_groups = array();
+
+  $field_group = new stdClass();
+  $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+  $field_group->api_version = 1;
+  $field_group->group_name = 'group_issues';
+  $field_group->entity_type = 'node';
+  $field_group->mode = 'form';
+  $field_group->parent_name = '';
+  $field_group->data = array(
+    'label' => 'Issues',
+    'weight' => '4',
+    'children' => array(
+      0 => 'field_project_has_issue_queue',
+      1 => 'field_project_components',
+    ),
+    'format_type' => 'tab',
+    'format_settings' => array(
+      'formatter' => 'closed',
+      'instance_settings' => array(
+        'description' => '',
+        'classes' => '',
+        'required_fields' => 1,
+      ),
+    ),
+  );
+
+  foreach (drupalorg_project_project_types() as $bundle => $info) {
+    $field_group->bundle = $bundle;
+    $field_group->identifier = "group_issues|node|$bundle|form";
+    $field_groups[$field_group->identifier] = $field_group;
+  }
+
+  $field_group = new stdClass();
+  $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+  $field_group->api_version = 1;
+  $field_group->group_name = 'group_releases';
+  $field_group->entity_type = 'node';
+  $field_group->mode = 'form';
+  $field_group->parent_name = '';
+  $field_group->data = array(
+    'label' => 'Releases',
+    'weight' => '5',
+    'children' => array(
+      0 => 'field_project_has_releases',
+      1 => 'field_release_version_format',
+    ),
+    'format_type' => 'tab',
+    'format_settings' => array(
+      'formatter' => 'closed',
+      'instance_settings' => array(
+        'description' => '',
+        'classes' => '',
+        'required_fields' => 1,
+      ),
+    ),
+  );
+
+  foreach (drupalorg_project_project_types() as $bundle => $info) {
+    $field_group->bundle = $bundle;
+    $field_group->identifier = "group_releases|node|$bundle|form";
+    $field_groups[$field_group->identifier] = $field_group;
+  }
+
+  return $field_groups;
+}
diff --git a/drupalorg_project/drupalorg_project.install b/drupalorg_project/drupalorg_project.install
index 9347811..53c0121 100644
--- a/drupalorg_project/drupalorg_project.install
+++ b/drupalorg_project/drupalorg_project.install
@@ -82,26 +82,10 @@ function drupalorg_project_update_7000() {
 }
 
 /**
- * Get the project node type map used for migrating away from vocab 3 for
- * identifying the type of project this is.
- */
-function _drupalorg_project_types() {
-  return array(
-    'project_module' => array('tid' => 14, 'title' => 'Module project'),
-    'project_theme' => array('tid' => 15, 'title' => 'Theme project'),
-    'project_theme_engine' => array('tid' => 32, 'title' => 'Theme Engine project'),
-    'project_distribution' => array('tid' => 96, 'title' => 'Distribution project'),
-    'project_drupalorg' => array('tid' => 22588, 'title' => 'Drupal.org project'),
-    'project_core' => array('tid' => 13, 'title' => 'Drupal core'),
-    'project_translation' => array('tid' => 29, 'title' => 'Translation project'),
-  );
-}
-
-/**
  * Create content types for project types.
  */
 function drupalorg_project_update_7001() {
-  foreach (_drupalorg_project_types() as $project_type => $type_data) {
+  foreach (drupalorg_project_project_types() as $project_type => $type_data) {
     $type = node_type_load('project');
     // We are cloning, not renaming.
     unset($type->old_type);
@@ -145,7 +129,7 @@ function drupalorg_project_update_7001() {
  */
 function drupalorg_project_update_7002() {
   $instances = field_read_instances(array('entity_type' => 'node', 'bundle' => 'project'));
-  foreach (_drupalorg_project_types() as $type => $type_data) {
+  foreach (drupalorg_project_project_types() as $type => $type_data) {
     // Twiddle the node types of all the projects.
     $tid = $type_data['tid'];
     db_query('UPDATE {node}, {taxonomy_index} SET {node}.type = :type WHERE {node}.nid = {taxonomy_index}.nid AND {taxonomy_index}.tid = :tid', array(':type' => $type, ':tid' => $tid));
@@ -183,7 +167,7 @@ function drupalorg_project_update_7003() {
     taxonomy_term_save($term);
   }
   // Now, we can delete the project type terms.
-  foreach (_drupalorg_project_types() as $type => $type_data) {
+  foreach (drupalorg_project_project_types() as $type => $type_data) {
     taxonomy_term_delete($type_data['tid']);
     if ($type != 'project_module') {
       $instance = field_read_instance('node', 'taxonomy_vocabulary_3', $type);
diff --git a/drupalorg_project/drupalorg_project.module b/drupalorg_project/drupalorg_project.module
index beae995..a3f86d0 100644
--- a/drupalorg_project/drupalorg_project.module
+++ b/drupalorg_project/drupalorg_project.module
@@ -1177,6 +1177,15 @@ function drupalorg_project_ctools_plugin_directory($module, $plugin) {
 }
 
 /**
+ * Implements hook_ctools_plugin_api().
+ */
+function drupalorg_project_ctools_plugin_api($module, $api) {
+  if ($module == 'field_group' && $api == 'field_group') {
+    return array('version' => 1);
+  }
+}
+
+/**
  * Implements hook_views_pre_render().
  *
  * Sets the breadcrumb up for project navigation for the change records views.
@@ -1229,3 +1238,45 @@ function drupalorg_project_node_view($node, $view_mode = 'full') {
     }
   }
 }
+
+/**
+ * Return an array of project node types used on d.o.
+ *
+ * @return array
+ *   An associative array indexed by bundle name with the following properties:
+ *   - title: The human-readable title of the project type.
+ *   - tid: The legacy taxonomy ID for the corresponding term in the D6
+ *     "Project types" vocabulary.
+ */
+function drupalorg_project_project_types() {
+  return array(
+    'project_module' => array(
+      'title' => 'Module project',
+      'tid' => 14,
+    ),
+    'project_theme' => array(
+      'title' => 'Theme project',
+      'tid' => 15,
+    ),
+    'project_theme_engine' => array(
+      'title' => 'Theme Engine project',
+      'tid' => 32,
+    ),
+    'project_distribution' => array(
+      'title' => 'Distribution project',
+      'tid' => 96,
+    ),
+    'project_drupalorg' => array(
+      'title' => 'Drupal.org project',
+      'tid' => 22588,
+    ),
+    'project_core' => array(
+      'title' => 'Drupal core',
+      'tid' => 13,
+    ),
+    'project_translation' => array(
+      'title' => 'Translation project',
+      'tid' => 29,
+    ),
+  );
+}
