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:
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
| Comment | File | Size | Author |
|---|---|---|---|
| #39 | pift_branch_test_results.patch | 16.96 KB | jthorson |
| #38 | pift_branch_test_results.patch | 0 bytes | jthorson |
| #37 | pift_branch_test_results.patch | 16.97 KB | jthorson |
| #34 | 1007090-34.patch | 16.21 KB | jthorson |
| #33 | PIFT_Port_21-through-33.patch | 59.96 KB | jthorson |
Comments
Comment #1
berdirThis 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.
Comment #2
berdirOk, 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 ;)
Comment #3
rfayExcellent. This is hugely critical, but with Berdir working on it the world is a happier place.
Comment #4
rfayOh, 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?
Comment #5
boombatower commented#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.
Comment #6
webchickTagging for the sprint.
If I'm not mistaken, according to #1510322: [META] Testbot Evolution - The Proposal this should now be un-postponed. Correct?
Comment #7
boombatower commentedWell, 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.
Comment #8
webchickThat sounds reasonable to me! Thanks.
Comment #9
boombatower commentedStarted work on this at http://qa-drupal_7.redesign.devdrupal.org/. Will run through coder_upgrade and post #1703246: Completely automated initial D7 port by coder_upgrade.
Comment #10
boombatower commentedAutomated port complete. Following up any left over todos or bugs.
Comment #11
boombatower commentedFirst 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.
Comment #12
boombatower commentedTo give you an idea...here is the combined diff of the automated and manual so far.
Comment #13
boombatower commentedOne 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.
Comment #14
boombatower commentedReplace occurrences of db_affected_rows() and look for any other old db api.
Comment #15
boombatower commentedPostponing 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.
Comment #16
boombatower commentedCode freeze is in next couple of weeks so thing should hopefully be stable enough to finish this.
Comment #17
jthorson commentedI 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.
Comment #18
jthorson commentedAlso, 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.
Comment #19
jthorson commentedCurrent code is deployed on qa-drupal_7.redesign.devdrupal.org ... need to work through some project_dependency port issues before we can test.
Comment #20
jthorson commentedAdding tag
Comment #21
jthorson commentedHere 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.
Comment #22
jthorson commentedTODO List for pift.module:
Comment #23
jthorson commentedTODO list for pift.pages.inc
Comment #24
jthorson commentedTODO for pift.test.inc:
Comment #25
jthorson commentedpift.admin.inc ported.
Comment #25.0
jthorson commentedCreate summary.
Comment #26
boombatower commentedFollowup 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.
Comment #27
boombatower commentedNeed to build our formatter on top of whatever is determined in #1628044: Implement magic for the table of attachments on issues.
Comment #28
boombatower commentedWhere I got so far.
Comment #28.0
boombatower commentedAdded link to magic table
Comment #28.1
senpai commented#1545922: [META] Issue page redesign is the way issue pages will look.
Comment #28.2
senpai commentedProject module roadmap
Comment #29
senpai commentedElevating to critical and turning this one into a meta issue to track other project_issue_file_test and project_dependency criticals.
Comment #30
jthorson commentedA 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.
Comment #31
jthorson commentedOne tweak to pift.cron.inc ... think this file is now complete.
Comment #32
jthorson commentedUpdated 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.
Comment #32.0
jthorson commentedThis project_issue_file_test and project_dependency are the two things which need porting to D7.
Comment #32.1
jthorson commentedAdded per-file porting status to issue summary.
Comment #33
jthorson commentedOkay ... 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?
Comment #33.0
jthorson commentedUpdated pift.admin.inc TODO list.
Comment #34
jthorson commentedDid 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.
Comment #35
jthorson commentedUpdating assignment
Comment #36
jthorson commentedGoing 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.
Comment #36.0
jthorson commentedUpdated per-file porting status.
Comment #36.1
jthorson commentedUpdating issue summary
Comment #37
jthorson commentedJust parking this here so I can pull it down to my dev site. :)
Comment #38
jthorson commentedThis one without fatal errors ... I hope!
Comment #39
jthorson commentedUgh. "--staged, stupid!"
Comment #40
jthorson commentedThis is basically done, pending any issues found during testing. Closing, and will open individual issues as they are uncovered during the tests.
Comment #41.0
(not verified) commentedUpdated issue summary