Related Issues

The Project* module roadmap
Project*-related issues with need-to-know information:
#1545922: [META] Issue page redesign is the way issue pages will look.
#1545952: [META] UI for updating an issue in D7 is how you will "update" an issue node. (The 'comment' field is the place to add any text that needs to become part of the next comment when the node is saved.)
#1628044: Implement magic for the table of attachments on issues

Motivation

Perform a straight port of PIFT from Drupal 6 to Drupal 7 API for the drupal.org redesign. Later feature changes will be incorporated into the new testing system. This project_issue_file_test, and also project_dependency are the two things which need porting to D7.

Next Steps

  • Perform straight code conversion using automated coder_upgrade and manual touch up
  • Check out old crud to clean project stuff like pift_nodeapi_clean()
  • Manually confirm things work in test site (bonus make sure test passes)
  • Look into upgrade routine and write if necessary

Critical Issues

Here are all the critical release blockers that this meta issue is tracking:

  1. #1972364: pift_node_update adds files when display toggled

Per-file porting status

pift.admin.inc - Complete
Some cleanup needed to remove commented code, once implemented in Conduit.
pift.cron.inc - Mostly Complete
Need to determine if we can remove 'cid' from our auto-followup code once the formatter is implemented.
Need to rewrite the pift_cron_retest() query (Low priority, not currently enabled in D6).
pift.css - No changes required
pift.drush.inc - No changes required
Will enable the pift_cron_retest() call once query is rewritten, and after deployment. Will need to figure out a staged deployment to ensure we don't overwhelm the testbots with retested patches.
pift.info - Complete
pift.install - Complete
May want to consider moving the 'Enable automated testing' setting to a field on project node, which will result in additional changes being required here ... but that can be a post-implementation task. (May also want to leave it as is, for compatibility with Conduit plans.)
pift.module - Partially Complete
Need to determine if we can remove 'cid' from theme_pift_auto_followup() once the formatter is implemented.
Could use a check in pift_init() to determine if adding the css is really necessary.
Will enable the pift_cron_retest() call once query is rewritten, and after deployment.
Need to update the foreach ($api_versions as $api_version) loop in pift_versioncontrol_code_arrival(), since $release->taxonomy no longer exists.
Need to replace pift_node_view() and pift_comment_view() after the field formatter is implemented.
Need to validate the variables in theme_pift_auto_followup() are still valid, and see if we can remove cid and the comment-related code after implementing the field formatter.
Some cleanup needed to remove commented code, once port is complete.
pift.pages.inc - Mostly Complete
Need to revisit variables and need for theme_pift_attachments() once the field formatter implementation is complete.
pift.project.inc - Complete
pift.results.inc - Complete (Removed)
This file contains the 'Automated Testing' table information, which is being moved over to Conduit
pift.test.inc - Partially Complete
Need to sort out how to add the 'cid' component to the test object in pift_test_get()
Some cleanup needed to remove commented code, once port is complete.

Drupal.org D7 Activities

- Enable PIFT specific permissions

Comments

berdir’s picture

This depends on a lot that probably needs to be figured out first for 7.x, like comment_upload and taxonomy related stuff that I don't really get yet but I did a basic port of this including hook updates, theme stuff and dbtng.

Will upload the code soon, probably to github.

berdir’s picture

Status: Active » Postponed

Ok, pushed the code to https://github.com/Berdir/pift.

The remaining things will probably have to wait until the dependencies mentioned above are sorted out ;)

rfay’s picture

Excellent. This is hugely critical, but with Berdir working on it the world is a happier place.

rfay’s picture

Oh, but wait.... I was thinking you'd done a *git* change of whatever needed to be done for the git migration. Are you willing to get your fingers into that?

boombatower’s picture

#1041330: Port from cvs module to versioncontrol api when it comes time we can deal porting it when the time comes, but again there are a lot of design components that need to be decided on first as pointed out. Let me know when those discussions happen.

webchick’s picture

Issue tags: +drupal.org D7, +testbot

Tagging for the sprint.

If I'm not mistaken, according to #1510322: [META] Testbot Evolution - The Proposal this should now be un-postponed. Correct?

boombatower’s picture

Well, we can do some things to start, but the majority will come after project's future is laid out. Personally, I'd rather do it all together so I don't have to reload things into the old brain multiple times since there is no benefit that I can see to starting before project is ready.

webchick’s picture

That sounds reasonable to me! Thanks.

boombatower’s picture

Status: Postponed » Active
boombatower’s picture

Version: 6.x-2.x-dev » 7.x-2.x-dev
Assigned: Unassigned » boombatower

Automated port complete. Following up any left over todos or bugs.

boombatower’s picture

Status: Active » Needs review
StatusFileSize
new30.39 KB

First run through manual changes. Way more changes overall both manual and automatic changes than I expected.

The only stuff that is left is to fix remaining blocks of hook_nodeapi() and hook_comment() left over from automatic port: http://drupalcode.org/project/project_issue_file_test.git/commitdiff/094... (look for hook_nodeapi() which starts it).

The issue was basically there was code outside the switch($op) which the automated code can't reliable figure out what to do with...basically we probably need to turn it into a function and call in front of all the split out hooks....don't need to do anything cleaner since this is all just to get it working.

Committed the attached patch.

boombatower’s picture

StatusFileSize
new94.66 KB

To give you an idea...here is the combined diff of the automated and manual so far.

boombatower’s picture

One thing that will need to be check is if pift_nodeapi_clean() is still needed. I am assuming it will not be, but haven't got there yet. Adding to summary.

boombatower’s picture

Replace occurrences of db_affected_rows() and look for any other old db api.

boombatower’s picture

Status: Needs review » Postponed

Postponing again due to the way the d7 upgrade is being conducted. The method seems a bit unorganized and cumbersome, for instance the database is in an invalid state after getting fresh dev site since there a sets of modules enabled who do no have all the required dependencies (and whenever you try to submit modules page everything gets hosed), the comments form disappears, and I get out of memory errors all over...like node/edit. Seems like focusing on the core (which is what I thought was happening) and turning everything else off would be a good idea.

Anyway, I'll get back to this when things are ready. I believe my port is _very_ close, just need to double check if I can remove my clean() function assuming things were fixed in d7 and double check that hooks fire correctly.

boombatower’s picture

Status: Postponed » Active

Code freeze is in next couple of weeks so thing should hopefully be stable enough to finish this.

jthorson’s picture

I pulled down a copy of the code from the dev site last night, so that we could destroy and rebuild the development site with the latest and greatest D7 code ... only to find out that I didn't have sufficient jenkins permissions to actually perform the re-deployment.

I'll follow up with the infrastructure folks today ... but wanted to ask if you had any code on that d.o dev site that need to be saved - if so, grab it quick ... and if you're unable to pull it down before the re-deploy, I have a local archive.

jthorson’s picture

Also, based on the deployment calendar that Senpai provided yesterday, next Tuesday is the freeze date for any code being deployed to staging on Thursday ... and the following Thursday is the cutover date - so we're looking at code freeze in about 4 days.

jthorson’s picture

Current code is deployed on qa-drupal_7.redesign.devdrupal.org ... need to work through some project_dependency port issues before we can test.

jthorson’s picture

Issue tags: +porting

Adding tag

jthorson’s picture

StatusFileSize
new7.14 KB

Here are some required changes for pift.cron.inc ... didn't commit them yet; just in case I'm duplicating any of your efforts here.

EDIT: Patch also contains a number of remaining TODOs.

jthorson’s picture

StatusFileSize
new5.83 KB

TODO List for pift.module:

jthorson’s picture

StatusFileSize
new964 bytes

TODO list for pift.pages.inc

jthorson’s picture

StatusFileSize
new2.66 KB

TODO for pift.test.inc:

jthorson’s picture

StatusFileSize
new1.5 KB

pift.admin.inc ported.

jthorson’s picture

Issue summary: View changes

Create summary.

boombatower’s picture

Followup comments are editing the node and filling in the comment field (or changelog). So test passes will remain silent as they are now. Once #1831302: Move pift_test and pift_project tables storage into fields / field_collection is implemented the history will properly display passes as well.

So for re-rests or fail results the issue status may be modified, but the comment field will be filled in.

boombatower’s picture

Need to build our formatter on top of whatever is determined in #1628044: Implement magic for the table of attachments on issues.

boombatower’s picture

StatusFileSize
new9.8 KB

Where I got so far.

boombatower’s picture

Issue summary: View changes

Added link to magic table

senpai’s picture

Issue summary: View changes

#1545922: [META] Issue page redesign is the way issue pages will look.

senpai’s picture

Issue summary: View changes

Project module roadmap

senpai’s picture

Title: Port PIFT to Drupal 7 » [META] Port PIFT to Drupal 7
Priority: Major » Critical

Elevating to critical and turning this one into a meta issue to track other project_issue_file_test and project_dependency criticals.

jthorson’s picture

StatusFileSize
new10.33 KB

A rough port of pift.cron.inc, including the pift_cron_auto_followup() changes from #28.

Still contains a @todo on pift_cron_retest(); but leaving that for now as it wasn't currently active in the D6 PIFT version either.

jthorson’s picture

StatusFileSize
new10.34 KB

One tweak to pift.cron.inc ... think this file is now complete.

jthorson’s picture

StatusFileSize
new4.57 KB

Updated pift.pages.inc. Also converted the form_alter() used to inject the 'Enable testing' setting to a standalone form, since the name of the form this is injected into changes with every project release node type ... for now, I'm simply dumping the form at /project/%node/qa-settings. The automated testing tab pieces will be totally removed from pift.module, and moved over to the conduit project ... at which time this form can be injected into the conduit settings form instead of here.

jthorson’s picture

Issue summary: View changes

This project_issue_file_test and project_dependency are the two things which need porting to D7.

jthorson’s picture

Issue summary: View changes

Added per-file porting status to issue summary.

jthorson’s picture

StatusFileSize
new93.2 KB
new59.96 KB

Okay ... this is getting close to where we can start testing. Just a few more items to go, as stated in the 'per file status' secton of the issue summary.

I've just pushed a bunch of commits which include all of the changes from comment #21 onwards; as well as numerous updates I've added today. I committed each file individually to try and limit the size of the diff, as well as to allow us to cherry-pick certain files out of the tree if (for example) someone else has a better ported version of that file.

The first patch below is a diff of everything included in these commits, while the second patch is a representation of the 'full' porting efforts to date.

EDIT: Can't update the code on qa-drupal7.redesign.devdrupal.org ... Jimmy, could you delete the directory and pull a fresh clone?

jthorson’s picture

Issue summary: View changes

Updated pift.admin.inc TODO list.

jthorson’s picture

StatusFileSize
new16.21 KB

Did a ton of testing on this today ... Have successfully passed test from qa-drupal_7.devdrupal.org to qa.staging.devdrupal.org, received the results, and triggered auto-followup comments.

Testing on qa-drupal_7 has been hampered by the fact that none of the issues have a valid 'version' string set, along with outdated project, project_issue, and nodechanges code. I've updated all three dependent projects, but I cannot set versions on the issues due to the empty (and required) 'category' select box on issues. We're probably overdue for a rebuild on the site.

In any case, the patch is a summary of the additional changes from today ... all have been committed.

jthorson’s picture

Assigned: boombatower » jthorson

Updating assignment

jthorson’s picture

Going to also attempt to try and incorporate #1348958: Add 'nid' column to pift_test into the port, since the D7 port seems to be the best time to implement the DB structure change ... and waiting until after launch will mean increased effort required with the data migration.

jthorson’s picture

Issue summary: View changes

Updated per-file porting status.

jthorson’s picture

Issue summary: View changes

Updating issue summary

jthorson’s picture

StatusFileSize
new16.97 KB

Just parking this here so I can pull it down to my dev site. :)

jthorson’s picture

StatusFileSize
new0 bytes

This one without fatal errors ... I hope!

jthorson’s picture

StatusFileSize
new16.96 KB

Ugh. "--staged, stupid!"

jthorson’s picture

Status: Active » Fixed

This is basically done, pending any issues found during testing. Closing, and will open individual issues as they are uncovered during the tests.

Status: Fixed » Closed (fixed)
Issue tags: -drupal.org D7, -testbot, -porting

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

Updated issue summary