? node_collisions.patch Index: project.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/project.inc,v retrieving revision 1.118 diff -u -F^f -r1.118 project.inc --- project.inc 14 Oct 2007 18:34:50 -0000 1.118 +++ project.inc 20 Oct 2007 04:15:29 -0000 @@ -95,7 +95,9 @@ function project_project_form($node) { $form['project']['uri'] = array( '#type' => 'textfield', '#title' => t('Short project name'), - '#default_value' => isset($node->uri) ? $node->uri : NULL, +// MUNGE: $node->uri +// MUNGE: $node->uri + '#default_value' => isset($node->project['uri']) ? $node->project['uri'] : NULL, '#size' => 40, '#maxlength' => 50, '#description' => t('This will be used to generate a /project/<shortname>/ URL for your project.'), @@ -110,7 +112,9 @@ function project_project_form($node) { $form['project']['mail'] = array( '#type' => 'textfield', '#title' => t('Project e-mail'), - '#default_value' => isset($node->mail) ? $node->mail : $user->mail, +// MUNGE: $node->mail +// MUNGE: $node->mail + '#default_value' => isset($node->project['mail']) ? $node->project['mail'] : $user->mail, '#size' => 40, '#maxlength' => 255, '#description' => $description, @@ -119,7 +123,9 @@ function project_project_form($node) { $form['project']['homepage'] = array( '#type' => 'textfield', '#title' => t('Homepage'), - '#default_value' => isset($node->homepage) ? $node->homepage : NULL, +// MUNGE: $node->homepage +// MUNGE: $node->homepage + '#default_value' => isset($node->project['homepage']) ? $node->project['homepage'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to project homepage.'), @@ -127,7 +133,9 @@ function project_project_form($node) { $form['project']['documentation'] = array( '#type' => 'textfield', '#title' => t('Documentation'), - '#default_value' => isset($node->documentation) ? $node->documentation : NULL, +// MUNGE: $node->documentation +// MUNGE: $node->documentation + '#default_value' => isset($node->project['documentation']) ? $node->project['documentation'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to project documentation.'), @@ -135,7 +143,9 @@ function project_project_form($node) { $form['project']['license'] = array( '#type' => 'textfield', '#title' => t('License'), - '#default_value' => isset($node->license) ? $node->license : NULL, +// MUNGE: $node->license +// MUNGE: $node->license + '#default_value' => isset($node->project['license']) ? $node->project['license'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to project license.'), @@ -143,7 +153,9 @@ function project_project_form($node) { $form['project']['screenshots'] = array( '#type' => 'textfield', '#title' => t('Screenshots'), - '#default_value' => isset($node->screenshots) ? $node->screenshots : NULL, +// MUNGE: $node->screenshots +// MUNGE: $node->screenshots + '#default_value' => isset($node->project['screenshots']) ? $node->project['screenshots'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to project screenshots.'), @@ -151,7 +163,9 @@ function project_project_form($node) { $form['project']['changelog'] = array( '#type' => 'textfield', '#title' => t('Changelog'), - '#default_value' => isset($node->changelog) ? $node->changelog : NULL, +// MUNGE: $node->changelog +// MUNGE: $node->changelog + '#default_value' => isset($node->project['changelog']) ? $node->project['changelog'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to changelog.'), @@ -159,7 +173,9 @@ function project_project_form($node) { $form['project']['cvs'] = array( '#type' => 'textfield', '#title' => t('CVS tree'), - '#default_value' => isset($node->cvs) ? $node->cvs : NULL, +// MUNGE: $node->cvs +// MUNGE: $node->cvs + '#default_value' => isset($node->project['cvs']) ? $node->project['cvs'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to webcvs/viewcvs.'), @@ -167,7 +183,9 @@ function project_project_form($node) { $form['project']['demo'] = array( '#type' => 'textfield', '#title' => t('Demo site'), - '#default_value' => isset($node->demo) ? $node->demo : NULL, +// MUNGE: $node->demo +// MUNGE: $node->demo + '#default_value' => isset($node->project['demo']) ? $node->project['demo'] : NULL, '#size' => 40, '#maxlength' => 255, '#description' => t('Link to a live demo.'), @@ -193,12 +211,14 @@ function project_project_validate(&$node } // Validate uri. - if (empty($node->uri)) { +// MUNGE: $node->uri + if (empty($node->project['uri'])) { form_set_error('uri', t('A short project name is required.')); } else { // Make sure uri only includes valid characters - if (!preg_match('/^[a-zA-Z0-9_-]+$/', $node->uri)) { +// MUNGE: $node->uri + if (!preg_match('/^[a-zA-Z0-9_-]+$/', $node->project['uri'])) { form_set_error('uri', t('Please only use alphanumerical characters for the project name.')); } @@ -213,7 +233,9 @@ function project_project_validate(&$node } } } - if (in_array(strtolower($node->uri), $reserved_names) || db_num_rows(db_query("SELECT nid FROM {project_projects} WHERE uri = '%s' AND nid <> %d", $node->uri, $node->nid))) { +// MUNGE: $node->uri +// MUNGE: $node->uri + if (in_array(strtolower($node->project['uri']), $reserved_names) || db_num_rows(db_query("SELECT nid FROM {project_projects} WHERE uri = '%s' AND nid <> %d", $node->project['uri'], $node->nid))) { form_set_error('uri', t('This project name is already in use.')); } } @@ -224,27 +246,41 @@ function project_project_validate(&$node } // Validate emails - if (empty($node->mail)) { +// MUNGE: $node->mail + if (empty($node->project['mail'])) { form_set_error('mail', t('You must specify a project e-mail.')); } - elseif ($data = user_validate_mail($node->mail)) { +// MUNGE: $node->mail + elseif ($data = user_validate_mail($node->project['mail'])) { form_set_error('mail', $data); } - if (!empty($node->mail_digest) && ($data = user_validate_mail($node->mail_digest))) { +// MUNGE: $node->mail +// MUNGE: $node->mail + if (!empty($node->project['mail']) && ($data = user_validate_mail($node->project['mail']))) { form_set_error('mail_digest', $data); } - if (!empty($node->mail_copy) && ($data = user_validate_mail($node->mail_copy))) { +// MUNGE: $node->mail +// MUNGE: $node->mail + if (!empty($node->project['mail']) && ($data = user_validate_mail($node->project['mail']))) { form_set_error('mail_copy', $data); } - if (isset($node->mail_copy_filter) && is_array($node->mail_copy_filter)) { - $node->mail_copy_filter = array_filter($node->mail_copy_filter, 'project_project_cleanup'); +// MUNGE: $node->mail +// MUNGE: $node->mail + if (isset($node->project['mail']) && is_array($node->project['mail'])) { +// MUNGE: $node->mail +// MUNGE: $node->mail + $node->project['mail'] = array_filter($node->project['mail'], 'project_project_cleanup'); } - if (isset($node->mail_copy_filter_state) && is_array($node->mail_copy_filter_state)) { - $node->mail_copy_filter_state = array_filter($node->mail_copy_filter_state, 'project_project_cleanup'); +// MUNGE: $node->mail +// MUNGE: $node->mail + if (isset($node->project['mail']) && is_array($node->project['mail'])) { +// MUNGE: $node->mail +// MUNGE: $node->mail + $node->project['mail'] = array_filter($node->project['mail'], 'project_project_cleanup'); } // Make sure all URL fields actually contain URLs. @@ -350,18 +386,26 @@ function project_project_view($node, $te // Support section. $links = array(); if ($view_issues) { - $links[] = l(t('View all support requests'), 'project/issues/'. $node->uri, null, 'categories=support&states=all', null); - $links[] = l(t('View pending support requests'), 'project/issues/'. $node->uri, null, 'categories=support', null); - $links[] = l(t('View pending bug reports'), 'project/issues/'. $node->uri, null, 'categories=bug', null); - $links[] = l(t('View pending feature requests'), 'project/issues/'. $node->uri, null, 'categories=feature', null); +// MUNGE: $node->uri + $links[] = l(t('View all support requests'), 'project/issues/'. $node->project['uri'], null, 'categories=support&states=all', null); +// MUNGE: $node->uri + $links[] = l(t('View pending support requests'), 'project/issues/'. $node->project['uri'], null, 'categories=support', null); +// MUNGE: $node->uri + $links[] = l(t('View pending bug reports'), 'project/issues/'. $node->project['uri'], null, 'categories=bug', null); +// MUNGE: $node->uri + $links[] = l(t('View pending feature requests'), 'project/issues/'. $node->project['uri'], null, 'categories=feature', null); } if ($make_issues) { - $links[] = l(t('Request support'), 'node/add/project_issue/'. $node->uri .'/support'); - $links[] = l(t('Report new bug'), 'node/add/project_issue/'. $node->uri .'/bug'); - $links[] = l(t('Request new feature'), 'node/add/project_issue/'. $node->uri .'/feature'); +// MUNGE: $node->uri + $links[] = l(t('Request support'), 'node/add/project_issue/'. $node->project['uri'] .'/support'); +// MUNGE: $node->uri + $links[] = l(t('Report new bug'), 'node/add/project_issue/'. $node->project['uri'] .'/bug'); +// MUNGE: $node->uri + $links[] = l(t('Request new feature'), 'node/add/project_issue/'. $node->project['uri'] .'/feature'); } else { - $links[] = theme('project_issue_create_forbidden', $node->uri); +// MUNGE: $node->uri + $links[] = theme('project_issue_create_forbidden', $node->project['uri']); } if ($links) { @@ -374,13 +418,18 @@ function project_project_view($node, $te // Developer section $links = array(); if ($view_issues) { - $links[] = l(t('View pending patches'), 'project/issues/'. $node->uri, null, 'states=8,13,14', null); - $links[] = l(t('View available tasks'), 'project/issues/'. $node->uri, null, 'categories=task', null); - $links[] = l(t('View all pending issues'), 'project/issues/'. $node->uri); +// MUNGE: $node->uri + $links[] = l(t('View pending patches'), 'project/issues/'. $node->project['uri'], null, 'states=8,13,14', null); +// MUNGE: $node->uri + $links[] = l(t('View available tasks'), 'project/issues/'. $node->project['uri'], null, 'categories=task', null); +// MUNGE: $node->uri + $links[] = l(t('View all pending issues'), 'project/issues/'. $node->project['uri']); } - if ($node->cvs) { - $links[] = l(t('Browse the CVS repository'), $node->cvs); +// MUNGE: $node->cvs + if ($node->project['cvs']) { +// MUNGE: $node->cvs + $links[] = l(t('Browse the CVS repository'), $node->project['cvs']); } if (project_use_cvs($node)) { @@ -413,7 +462,8 @@ function project_project_nodeapi(&$node, case 'insert': _project_save_taxonomy($node); if (module_exists('path')) { - path_set_alias("node/$node->nid", "project/$node->uri"); +// MUNGE: $node->uri + path_set_alias("node/$node->nid", "project/$node->project['uri']"); } break; @@ -421,20 +471,43 @@ function project_project_nodeapi(&$node, _project_save_taxonomy($node); if (module_exists('path')) { path_set_alias("node/$node->nid"); // Clear existing alias. - path_set_alias("node/$node->nid", "project/$node->uri"); +// MUNGE: $node->uri + path_set_alias("node/$node->nid", "project/$node->project['uri']"); } break; } } function project_project_insert($node) { - db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, release_directory, mail, version, screenshots, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s')", $node->nid, $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->release_directory, $node->mail, $node->version, $node->screenshots, $node->documentation, $node->license); -// project_release_scan_directory($node->uri); +// MUNGE: $node->license +// MUNGE: $node->documentation +// MUNGE: $node->screenshots +// MUNGE: $node->version +// MUNGE: $node->mail +// MUNGE: $node->release_directory +// MUNGE: $node->demo +// MUNGE: $node->cvs +// MUNGE: $node->changelog +// MUNGE: $node->homepage +// MUNGE: $node->uri + db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, release_directory, mail, version, screenshots, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s')", $node->nid, $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['release_directory'], $node->project['mail'], $node->project['version'], $node->project['screenshots'], $node->project['documentation'], $node->project['license']); + // project_release_scan_directory($node->uri); } function project_project_update($node) { - db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', release_directory = '%s', mail = '%s', version = %d, screenshots = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->release_directory, $node->mail, $node->version, $node->screenshots, $node->documentation, $node->license, $node->nid); -// project_release_scan_directory($node->uri); +// MUNGE: $node->license +// MUNGE: $node->documentation +// MUNGE: $node->screenshots +// MUNGE: $node->version +// MUNGE: $node->mail +// MUNGE: $node->release_directory +// MUNGE: $node->demo +// MUNGE: $node->cvs +// MUNGE: $node->changelog +// MUNGE: $node->homepage +// MUNGE: $node->uri + db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', release_directory = '%s', mail = '%s', version = %d, screenshots = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['release_directory'], $node->project['mail'], $node->project['version'], $node->project['screenshots'], $node->project['documentation'], $node->project['license'], $node->nid); + // project_release_scan_directory($node->uri); } function project_project_delete($node) { Index: release/project_release.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v retrieving revision 1.53 diff -u -F^f -r1.53 project_release.module --- release/project_release.module 14 Oct 2007 19:53:07 -0000 1.53 +++ release/project_release.module 20 Oct 2007 04:15:31 -0000 @@ -184,7 +184,8 @@ function project_release_access($op, $no // We can't just use project_project_access() here, since we // need to check access to the project itself, not the release // node, so we use the helper method and pass the project id. - return project_check_admin_access($node->pid); +// MUNGE: $node->pid + return project_check_admin_access($node->project_release['pid']); case 'delete': // No one should ever delete a release node, only unpublish it. return FALSE; @@ -530,7 +531,8 @@ function project_release_load($node) { function project_release_insert($node) { project_release_db_save($node, true); if (project_use_cvs($node->project)) { - if ($node->rebuild) { +// MUNGE: $node->rebuild + if ($node->project_release['rebuild']) { $msg = variable_get('cvs_message_new_release_branch', ''); } else { @@ -569,8 +571,11 @@ function project_release_db_save($node, // If the patch field is set to a non-numeric value, we just want to // keep it as a NULL in the DB, instead of casting it to a 0. - if (isset($node->version_patch) && !is_numeric($node->version_patch)) { - unset($node->version_patch); +// MUNGE: $node->version +// MUNGE: $node->version + if (isset($node->project_release['version']) && !is_numeric($node->project_release['version'])) { +// MUNGE: $node->version + unset($node->project_release['version']); } // Handle file upload data. @@ -583,10 +588,18 @@ function project_release_db_save($node, 'file_path' => "'%s'", 'file_date' => "%d", 'file_hash' => "'%s'", 'rebuild' => "%d", ); - $values = array( 'pid' => $node->pid, 'version' => $node->version, - 'tag' => $node->tag, 'file_path' => $node->file_path ? $node->file_path : $file_data->filepath, - 'file_date' => $node->file_date, 'file_hash' => $node->file_hash, - 'rebuild' => $node->rebuild, +// MUNGE: $node->version +// MUNGE: $node->pid + $values = array( 'pid' => $node->project_release['pid'], 'version' => $node->project_release['version'], +// MUNGE: $node->file_path +// MUNGE: $node->file_path +// MUNGE: $node->tag + 'tag' => $node->project_release['tag'], 'file_path' => $node->project_release['file_path'] ? $node->project_release['file_path'] : $file_data->filepath, +// MUNGE: $node->file_hash +// MUNGE: $node->file_date + 'file_date' => $node->project_release['file_date'], 'file_hash' => $node->project_release['file_hash'], +// MUNGE: $node->rebuild + 'rebuild' => $node->project_release['rebuild'], ); $fields = array('version_major', 'version_minor', 'version_patch'); foreach ($fields as $field) { @@ -595,9 +608,11 @@ function project_release_db_save($node, $values[$field] = $node->$field; } } - if (!empty($node->version_extra)) { +// MUNGE: $node->version + if (!empty($node->project_release['version'])) { $types['version_extra'] = "'%s'"; - $values['version_extra'] = $node->version_extra; +// MUNGE: $node->version + $values['version_extra'] = $node->project_release['version']; } if ($is_new) { @@ -620,13 +635,15 @@ function project_release_db_save($node, $vid = _project_release_get_api_vid(); if (isset($node->taxonomy[$vid])) { $tid = $node->taxonomy[$vid]; - project_release_check_default_version($node->pid, $tid); +// MUNGE: $node->pid + project_release_check_default_version($node->project_release['pid'], $tid); } } // Finally, clear the cache for the release table whenever a release node is // added or updated, since what we want to display might have changed, too. - $cid = 'table:'. $node->pid .':'; +// MUNGE: $node->pid + $cid = 'table:'. $node->project_release['pid'] .':'; cache_clear_all($cid, 'cache_project_release', TRUE); } @@ -665,17 +682,22 @@ function project_release_check_default_v * @ingroup project_release_node */ function project_release_delete($node) { - if ($node->file_path) { - file_delete(file_create_path($node->file_path)); +// MUNGE: $node->file_path + if ($node->project_release['file_path']) { +// MUNGE: $node->file_path + file_delete(file_create_path($node->project_release['file_path'])); } db_query("DELETE FROM {project_release_nodes} WHERE nid = %d", $node->nid); // Make sure that the default release version information is up to date. - project_release_check_default_version($node->pid, $node->version_api_tid); +// MUNGE: $node->version +// MUNGE: $node->pid + project_release_check_default_version($node->project_release['pid'], $node->project_release['version']); // Finally, clear the cache for the release table whenever a release node is // deleted, since what we want to display might have changed, too. - $cid = 'table:'. $node->pid .':'; +// MUNGE: $node->pid + $cid = 'table:'. $node->project_release['pid'] .':'; cache_clear_all($cid, 'cache_project_release', TRUE); } @@ -768,7 +790,8 @@ function project_release_get_version($re */ function project_release_view($node, $teaser = FALSE, $page = FALSE) { $node = node_prepare($node, $teaser); - $project = node_load($node->pid); +// MUNGE: $node->pid + $project = node_load($node->project_release['pid']); if ($page) { // Breadcrumb navigation @@ -778,25 +801,36 @@ function project_release_view($node, $te } $output = ''; - if (project_use_cvs($project) && isset($node->tag)) { - if ($node->rebuild) { - $output .= t('Nightly development snapshot from CVS branch: @tag', array('@tag' => $node->tag)) .'
'; +// MUNGE: $node->tag + if (project_use_cvs($project) && isset($node->project_release['tag'])) { +// MUNGE: $node->rebuild + if ($node->project_release['rebuild']) { +// MUNGE: $node->tag + $output .= t('Nightly development snapshot from CVS branch: @tag', array('@tag' => $node->project_release['tag'])) .'
'; } else { - $output .= t('Official release from CVS tag: @tag', array('@tag' => $node->tag)) .'
'; +// MUNGE: $node->tag + $output .= t('Official release from CVS tag: @tag', array('@tag' => $node->project_release['tag'])) .'
'; } } - if ($node->file_path) { - $output .= ''. t('Download: !file', array('!file' => theme('project_release_download_link', $node->file_path))) .'
'; - $output .= ''. t('Size: !size', array('!size' => format_size(filesize(file_create_path($node->file_path))))) .'
'; - $output .= ''. t('md5_file hash: !file_hash', array('!file_hash' => $node->file_hash)) .'
'; +// MUNGE: $node->file_path + if ($node->project_release['file_path']) { +// MUNGE: $node->file_path + $output .= ''. t('Download: !file', array('!file' => theme('project_release_download_link', $node->project_release['file_path']))) .'
'; +// MUNGE: $node->file_path + $output .= ''. t('Size: !size', array('!size' => format_size(filesize(file_create_path($node->project_release['file_path']))))) .'
'; +// MUNGE: $node->file_hash + $output .= ''. t('md5_file hash: !file_hash', array('!file_hash' => $node->project_release['file_hash'])) .'
'; } if ($node->created) { $output .= ''. t('First released: !created', array('!created' => format_date($node->created))) .'
'; } - if ($node->file_date && ($node->file_date != $node->created)) { - $output .= ''. t('Last updated: !changed', array('!changed' => format_date($node->file_date))) .'
'; +// MUNGE: $node->file_date +// MUNGE: $node->file_date + if ($node->project_release['file_date'] && ($node->project_release['file_date'] != $node->created)) { +// MUNGE: $node->file_date + $output .= ''. t('Last updated: !changed', array('!changed' => format_date($node->project_release['file_date']))) .'
'; } $node->content['release_info'] = array( '#value' => '
'. $output .'
', @@ -804,7 +838,8 @@ function project_release_view($node, $te ); // Display packaging errors to admins. - if (project_check_admin_access($node->pid)) { +// MUNGE: $node->pid + if (project_check_admin_access($node->project_release['pid'])) { $rows = array(); $result = db_query('SELECT * FROM {project_release_package_errors} WHERE nid = %d', $node->nid); $error = db_fetch_object($result); @@ -1094,7 +1129,8 @@ function project_release_project_edit_fo $form['advanced']['version_format'] = array( '#type' => 'textfield', '#title' => t('Version format string'), - '#default_value' => $node->version_format, +// MUNGE: $node->version + '#default_value' => $node->project_release['version'], '#size' => 50, '#maxlength' => 255, '#description' => t('Customize the format of the version strings for releases of this project.') .' '. PROJECT_RELEASE_VERSION_FORMAT_HELP .' '. t('If blank, this project will use the site-wide default (currently set to: %default)', array('%default' => variable_get('project_release_default_version_format', PROJECT_RELEASE_DEFAULT_VERSION_FORMAT))), @@ -1203,15 +1239,18 @@ function project_release_project_edit_fo function project_release_alter_release_form(&$form) { global $user; $node = $form['#node']; - $tid = $node->version_api_tid; +// MUNGE: $node->version + $tid = $node->project_release['version']; $vid = _project_release_get_api_vid(); if (!project_release_get_api_taxonomy() && isset($form['taxonomy'][$vid])) { unset($form['taxonomy'][$vid]); } else { /* - if (isset($node->pid)) { - $project->nid = $node->pid; +// MUNGE: $node->pid + if (isset($node->project_release['pid'])) { +// MUNGE: $node->pid + $project->nid = $node->project_release['pid']; } elseif (arg(1) == 'add' && is_numeric(arg(3))) { $project->nid = arg(3); @@ -1679,4 +1718,4 @@ function project_release_file_download($ */ function project_release_devel_caches() { return array('cache_project_release'); -} \ No newline at end of file +} Index: release/project_release_update.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release_update.php,v retrieving revision 1.7 diff -u -F^f -r1.7 project_release_update.php --- release/project_release_update.php 22 Aug 2007 16:30:52 -0000 1.7 +++ release/project_release_update.php 20 Oct 2007 04:15:31 -0000 @@ -14,13 +14,19 @@ */ function generate_core_tag($node) { $tag = 'DRUPAL-'; - $tag .= $node->version_major . '-'; - if (isset($node->version_minor)) { - $tag .= $node->version_minor . '-'; - } - $tag .= $node->version_patch; - if (!empty($node->version_extra)) { - $tag .= '-' . strtoupper(preg_replace('/(.+)(\d+)/', '\1-\2', $node->version_extra)); +// MUNGE: $node->version + $tag .= $node->project_release['version'] . '-'; +// MUNGE: $node->version + if (isset($node->project_release['version'])) { +// MUNGE: $node->version + $tag .= $node->project_release['version'] . '-'; + } +// MUNGE: $node->version + $tag .= $node->project_release['version']; +// MUNGE: $node->version + if (!empty($node->project_release['version'])) { +// MUNGE: $node->version + $tag .= '-' . strtoupper(preg_replace('/(.+)(\d+)/', '\1-\2', $node->project_release['version'])); } return $tag; } @@ -155,39 +161,59 @@ function convert_release($old_release) { $node->comment = 0; // Things that go in {project_release_nodes} (that don't depend on version) - $node->pid = $old_release->nid; - $node->file_path = $old_release->path; - $node->file_date = $old_release->changed; - $node->file_hash = $old_release->hash; +// MUNGE: $node->pid + $node->project_release['pid'] = $old_release->nid; +// MUNGE: $node->file_path + $node->project_release['file_path'] = $old_release->path; +// MUNGE: $node->file_date + $node->project_release['file_date'] = $old_release->changed; +// MUNGE: $node->file_hash + $node->project_release['file_hash'] = $old_release->hash; // Now, depending on the project and version, fill in the rest. if ($old_release->nid == 3060) { if ($old_release->version == 'cvs') { // TODO: maybe we should just leave this "release" alone, - $node->version_major = 5; - $node->version_patch = 'x'; - $node->version_extra = 'dev'; - $node->rebuild = 1; - $node->tag = 'HEAD'; +// MUNGE: $node->version + $node->project_release['version'] = 5; +// MUNGE: $node->version + $node->project_release['version'] = 'x'; +// MUNGE: $node->version + $node->project_release['version'] = 'dev'; +// MUNGE: $node->rebuild + $node->project_release['rebuild'] = 1; +// MUNGE: $node->tag + $node->project_release['tag'] = 'HEAD'; $target_api = '5.x'; } elseif (preg_match('/^(\d+)\.(\d+)(-.+)?$/', $old_release->version, $matches)) { // Handle "5.x" style releases - $node->version_major = $matches[1]; - $node->version_patch = $matches[2]; - $node->version_extra = preg_replace('/^-(.+)$/', '\1', $matches[3]); - $node->tag = generate_core_tag($node); - $node->rebuild = 0; +// MUNGE: $node->version + $node->project_release['version'] = $matches[1]; +// MUNGE: $node->version + $node->project_release['version'] = $matches[2]; +// MUNGE: $node->version + $node->project_release['version'] = preg_replace('/^-(.+)$/', '\1', $matches[3]); +// MUNGE: $node->tag + $node->project_release['tag'] = generate_core_tag($node); +// MUNGE: $node->rebuild + $node->project_release['rebuild'] = 0; $target_api = "$matches[1].x"; } elseif (preg_match('/^(\d+)\.(\d+)\.(\d+)(-.+)?$/', $old_release->version, $matches)) { // Handle "4.7.x" style releases - $node->version_major = $matches[1]; - $node->version_minor = $matches[2]; - $node->version_patch = $matches[3]; - $node->version_extra = preg_replace('/^-(.+)$/', '\1', $matches[4]); - $node->tag = generate_core_tag($node); - $node->rebuild = 0; +// MUNGE: $node->version + $node->project_release['version'] = $matches[1]; +// MUNGE: $node->version + $node->project_release['version'] = $matches[2]; +// MUNGE: $node->version + $node->project_release['version'] = $matches[3]; +// MUNGE: $node->version + $node->project_release['version'] = preg_replace('/^-(.+)$/', '\1', $matches[4]); +// MUNGE: $node->tag + $node->project_release['tag'] = generate_core_tag($node); +// MUNGE: $node->rebuild + $node->project_release['rebuild'] = 0; $target_api = "$matches[1].$matches[2].x"; } else { @@ -197,9 +223,12 @@ function convert_release($old_release) { } elseif ($old_release->version == 'cvs') { // The "cvs" version is a nightly tarball from the trunk - $node->version_extra = 'dev'; - $node->tag = 'HEAD'; - $node->rebuild = 1; +// MUNGE: $node->version + $node->project_release['version'] = 'dev'; +// MUNGE: $node->tag + $node->project_release['tag'] = 'HEAD'; +// MUNGE: $node->rebuild + $node->project_release['rebuild'] = 1; } else { // Nightly tarball from a specific branch. @@ -208,18 +237,24 @@ function convert_release($old_release) { print t('WARNING: release %old_release_rid of %old_release_project_title has unexpected patch-level version (%matches)', array('%old_release_rid' => $old_release->rid, '%old_release_project_title' => $old_release->project_title, '%matches' => $matches[3])) .'
'; } $target_api = "$matches[1].$matches[2].x"; - $node->version_major = 1; - $node->version_patch = 'x'; - $node->version_extra = 'dev'; - $node->tag = 'DRUPAL-' . $matches[1] . '-' . $matches[2]; - $node->rebuild = 1; +// MUNGE: $node->version + $node->project_release['version'] = 1; +// MUNGE: $node->version + $node->project_release['version'] = 'x'; +// MUNGE: $node->version + $node->project_release['version'] = 'dev'; +// MUNGE: $node->tag + $node->project_release['tag'] = 'DRUPAL-' . $matches[1] . '-' . $matches[2]; +// MUNGE: $node->rebuild + $node->project_release['rebuild'] = 1; } if (isset($target_api)) { foreach ($api_taxonomy as $i => $term) { if ($term->name == $target_api) { $node->taxonomy[$term->tid] = $term->tid; - $node->version_api_tid = $term->tid; +// MUNGE: $node->version + $node->project_release['version'] = $term->tid; break; } } @@ -227,7 +262,8 @@ function convert_release($old_release) { // Now, set the right kind of title. $version = ''; - if ($node->tag == 'HEAD') { +// MUNGE: $node->tag + if ($node->project_release['tag'] == 'HEAD') { if ($old_release->nid == 3060) { $verson = '5.x-dev'; } @@ -239,7 +275,8 @@ function convert_release($old_release) { $version = project_release_get_version($node); } $node->title = t('%project %version', array('%project' => $old_release->project_title, '%version' => $version)); - $node->version = $version; +// MUNGE: $node->version + $node->project_release['version'] = $version; list($usec, $sec) = explode(' ', microtime()); $pre_save = (float)$usec + (float)$sec;