i think this whole buisness of the project module trying to publish/unpublish project nodes based on release tarballs is a) buggy and b) backwards. here's how i think it should work:
1) contrib authors add their code to an available directory in CVS
2) author submits a project node pointing to their directory
3) site admin reviews the node, decides if it's a fork/duplicate, or worthy. assuming it's good:
4) site admin publishes the node (* this should be the _only_ way a node gets published)
5) now author has ability to branch/tag their code
6) based on branches/tags, project module creates appropriate tarballs (also see http://drupal.org/node/58066)
7) based on existance of tarballs, project module adds download links
i think it's wrong that the existance of the tarballs determines if the node gets published or not. a) it's entirely reasonable (at least not on drupal.org) for project nodes to be published that don't have a physical release associated with them. furthermore, if project is going to automatically make a "cvs" tarball for each project (which i'm also not sure is a good idea, seems like module authors should have to specify somewhere that they think their module works against CVS head and it's worth generating a tarball), then this whole access control workflow is broken. as soon as the author commits their code and so much as applies for a project node, the "cvs" tarball will get made, and that will publish their node, without any admin intervention. (at least, that's how i understand what's going on based on comments from killes and nedjo, not based on testing or reviewing the actual code).
honestly, if we rip out all the auto-publishing code, i think the project workflow will be cleaner, the CVS access integration will make more sense, and we might just solve all these evil bugs where projects mysteriously disappear (e.g. vote_up_down, etc).
| Comment | File | Size | Author |
|---|---|---|---|
| #7 | 64100_project_release_dead_code.patch.txt | 2.05 KB | dww |
| #5 | project_only_for_cvs_users.patch.2 | 2.13 KB | dww |
| #4 | project_only_for_cvs_users.patch.1 | 2.13 KB | dww |
| #3 | project_only_for_cvs_users.patch | 1.98 KB | dww |
Comments
Comment #1
killes@www.drop.org commentedI agree in principle, but 4) is likely to be a problem. In the past people created projects and had to bug other people to approve them in the absense of a real queue system, this is a bit of a problem.
Comment #2
dwwin discussing this with killes in IRC, we came up with an even better solution. if we just restricted project creation to users with CVS accounts, we could allow projects to be published immediately, instead of involving admin intervention. this would also remove the potentially confusing "project" option on the create content page for random drupal.org users, the vast majority of whom have no buisness creating project nodes. ;)
this will be a pretty trivial change. i'll have this behavior depend on if the cvs module is installed (module_exist()), and a new admin setting (so that sites which happen to want to run project module and cvs module, but don't want this behavior, can turn it off).
however, once this is done, i believe we could rip out all the (apparently buggy) autopublishing code, simplify the "roadmap" for people to contribute new projects, and improve the drupal.org UI for everyone who's *not* a potential project maintainer.
Comment #3
dwwhere's a patch. adds a new setting for the cvs module to enable this behavior, and a new code block in the 'create' case for project_project_access() that does what it needs.
Comment #4
dwwkilles didn't like how i was doing the cvs_accounts query before checking the permission. new patch.
Comment #5
dwwwhoops, syntax error in the last patch. this one is heavily tested again.
Comment #6
dwwkilles said #5 is good to go, so i just committed it. setting this back to active so we can work on ripping out the auto-publish/unpublish stuff.
Comment #7
dwwWe should also just completely remove project_release_scan.inc, it's all dead code and no one has asked about it at all in the last year...
Comment #8
hunmonk commentedlooks good. tested update on pg...
Comment #9
dwwCommitted to HEAD and DRUPAL-4-7--2, along with removing project_release_scan.inc (which was never included, just a trashcan for unused code as I was writing project_release.module).
Comment #10
(not verified) commented