Merge lp:~stevenk/launchpad/death-to-private_bugs into lp:launchpad
- death-to-private_bugs
- Merge into devel
| Status: | Merged | ||||
|---|---|---|---|---|---|
| Approved by: | William Grant on 2012-10-09 | ||||
| Approved revision: | no longer in the source branch. | ||||
| Merged at revision: | 16130 | ||||
| Proposed branch: | lp:~stevenk/launchpad/death-to-private_bugs | ||||
| Merge into: | lp:launchpad | ||||
| Diff against target: |
1465 lines (+115/-657) 24 files modified
database/sampledata/current-dev.sql (+26/-26) database/sampledata/current.sql (+26/-26) lib/lp/bugs/browser/bugtarget.py (+2/-9) lib/lp/bugs/browser/tests/test_bugs.py (+15/-59) lib/lp/bugs/browser/tests/test_bugtarget_configure.py (+2/-63) lib/lp/bugs/browser/tests/test_bugtarget_filebug.py (+8/-45) lib/lp/bugs/doc/bug-private-by-default.txt (+0/-52) lib/lp/bugs/model/bug.py (+0/-14) lib/lp/bugs/model/tests/test_bug.py (+2/-22) lib/lp/bugs/scripts/bugimport.py (+14/-25) lib/lp/bugs/scripts/tests/test_bugimport.py (+1/-14) lib/lp/bugs/tests/test_bug.py (+0/-24) lib/lp/bugs/tests/test_bugs_webservice.py (+0/-29) lib/lp/bugs/tests/test_doc.py (+0/-6) lib/lp/registry/browser/product.py (+3/-38) lib/lp/registry/browser/tests/product-views.txt (+2/-11) lib/lp/registry/interfaces/product.py (+0/-18) lib/lp/registry/model/product.py (+2/-41) lib/lp/registry/model/productjob.py (+0/-1) lib/lp/registry/tests/test_product.py (+2/-100) lib/lp/registry/tests/test_product_webservice.py (+6/-4) lib/lp/registry/tests/test_productjob.py (+1/-4) lib/lp/security.py (+0/-6) lib/lp/testing/factory.py (+3/-20) |
||||
| To merge this branch: | bzr merge lp:~stevenk/launchpad/death-to-private_bugs | ||||
| Related bugs: |
|
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| William Grant | code | 2012-10-07 | Approve on 2012-10-08 |
|
Review via email:
|
|||
Commit Message
Consign IProduct.
Description of the Change
Now that all projects have moved to sharing, we can destroy the legacy code. First on the chopping block is IProduct.
The actual database column Product.
| Curtis Hovey (sinzui) wrote : | # |
| Curtis Hovey (sinzui) wrote : | # |
Do the change to lib/lp/
| William Grant (wgrant) wrote : | # |
44 === modified file 'lib/lp/
It might be worth adding a test for the behaviour when the sharing policy is PUBLIC.
388 === modified file 'lib/lp/
389 --- lib/lp/
390 +++ lib/lp/
391 @@ -2629,7 +2629,7 @@
392 # XXX: ElliotMurphy 2007-06-14: If we ever allow filing private
393 # non-security bugs, this test might be simplified to checking
394 # params.private.
395 - if (IProduct.
396 + if (IProduct.
397 and params.
398 and params.
399 # Subscribe the bug supervisor to all bugs,
private_bugs was a top-level conjunct, so the block could never fire unless it was set. By removing private_bugs we're treating it as if it was false everywhere, so this whole block should be deleted.
408 -class TestBugPrivateA
409 +class TestBugPrivateA
This is no longer a mixin, so please rename the class.
448 === modified file 'lib/lp/
449 --- lib/lp/
450 +++ lib/lp/
451 @@ -295,9 +295,6 @@
452
453 private = get_value(bugnode, 'private') == 'True'
454 security_related = get_value(bugnode, 'security_related') == 'True'
455 - # If the product has private_bugs, we force private to True.
456 - if self.product.
457 - private = True
458 information_type = convert_
459 private, security_related)
Do we want to add an assertion in the importer to reject imports into a product with a policy other than PUBLIC?
461 @@ -323,11 +320,6 @@
462 bug.linkMessage
463 self.createAtta
464
465 - # Security bugs must be created private, so set it correctly.
466 - if not self.product.
467 - information_type = convert_
468 - private, security_related)
469 - bug.transitionT
This block should simply be enabled, not removed. We'd ideally also create it with the correct information_type, now that we have that capability.
516 def test_createBug_
This test will probably fail due to your change on line 395. Once that block is removed, this test no longer has value and can be removed.
650 - field_names = [
651 - "project_reviewed",
652 - "license_approved",
653 - "active",
654 - "private_bugs",
655 - "reviewer_
656 - ]
657 + field_names = ["project_
658 + "reviewer_
I think we prefer the old style, but we certainly don't prefer the new style without an initial newline.
795 """See `IDistribution.`"""
orly
Preview Diff
| 1 | === modified file 'database/sampledata/current-dev.sql' |
| 2 | --- database/sampledata/current-dev.sql 2012-10-08 13:33:43 +0000 |
| 3 | +++ database/sampledata/current-dev.sql 2012-10-11 04:47:20 +0000 |
| 4 | @@ -1,6 +1,6 @@ |
| 5 | -- Copyright 2010-2011 Canonical Ltd. This software is licensed under the |
| 6 | -- GNU Affero General Public License version 3 (see the file LICENSE). |
| 7 | --- Created using pg_dump (PostgreSQL) 9.1.4 |
| 8 | +-- Created using pg_dump (PostgreSQL) 9.1.6 |
| 9 | |
| 10 | SET check_function_bodies = false; |
| 11 | SET client_encoding = 'UTF8'; |
| 12 | @@ -1799,30 +1799,30 @@ |
| 13 | |
| 14 | ALTER TABLE product DISABLE TRIGGER ALL; |
| 15 | |
| 16 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (1, 1, 17, 'tomcat', 'Tomcat', 'Tomcat', 'The servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.', 'Apache Tomcat is developed in an open and participatory environment and released under the Apache Software License. This project has nothing to do with Ubuntu, but this description uses the word "Ubuntu" for the purpose of testing search results.', '2004-09-24 20:58:00.655518', 'http://tomcat.apache.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 17, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 17 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (2, 2, 2, 'unassigned', 'unassigned syncs', 'unassigned syncs', 'syncs still not assigned to a real product', 'unassigned syncs, will not be processed, to be moved to real projects ASAP.', '2004-09-24 20:58:00.674409', 'http://archive.apache.org/dist/tomcat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 18 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (3, 3, 2, 'arch-mirrors', 'Arch mirrors', 'Arch archive mirrors', 'Arch Archive Mirroring project.', 'Arch archive full-archive mirror tasks', '2004-09-24 20:58:00.691047', 'http://arch.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 19 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (4, 4, 12, 'firefox', 'Mozilla Firefox', 'Mozilla Firefox', 'The Mozilla Firefox web browser', 'The Mozilla Firefox web browser', '2004-09-24 20:58:02.185708', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, false, true, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, true, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 20, 10, 10, true, 1, NULL, NULL, NULL); |
| 20 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (1, 1, 17, 'tomcat', 'Tomcat', 'Tomcat', 'The servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.', 'Apache Tomcat is developed in an open and participatory environment and released under the Apache Software License. This project has nothing to do with Ubuntu, but this description uses the word "Ubuntu" for the purpose of testing search results.', '2004-09-24 20:58:00.655518', 'http://tomcat.apache.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 17, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 21 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (2, 2, 2, 'unassigned', 'unassigned syncs', 'unassigned syncs', 'syncs still not assigned to a real product', 'unassigned syncs, will not be processed, to be moved to real projects ASAP.', '2004-09-24 20:58:00.674409', 'http://archive.apache.org/dist/tomcat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 22 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (3, 3, 2, 'arch-mirrors', 'Arch mirrors', 'Arch archive mirrors', 'Arch Archive Mirroring project.', 'Arch archive full-archive mirror tasks', '2004-09-24 20:58:00.691047', 'http://arch.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 23 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (4, 4, 12, 'firefox', 'Mozilla Firefox', 'Mozilla Firefox', 'The Mozilla Firefox web browser', 'The Mozilla Firefox web browser', '2004-09-24 20:58:02.185708', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, false, true, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, true, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 20, 10, 10, true, 1, 1, NULL, NULL); |
| 24 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (5, 5, 12, 'evolution', 'Evolution', 'The Evolution Groupware Application', 'Evolution is an email client, addressbook and calendar application that is very well integrated with the Gnome desktop. Evolution is the standard mail client in the Ubuntu distribution, and supports all current mail system standards.', 'Recently, Evolution has seen significant work to make it interoperable with the proprietary Microsoft Exchange Server protocols and formats, allowing organisations to replace Outlook on Windows with Evolution and Linux. |
| 25 | |
| 26 | -The current stable release series of Evolution is 2.0.', '2004-09-24 20:58:02.240163', 'http://www.gnome.org/evolution/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, true, true, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, NULL, NULL, NULL); |
| 27 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (6, 5, 12, 'gnome-terminal', 'GNOME Terminal', 'The GNOME Terminal Emulator', 'Gnome Terminal is a simple terminal application for your Gnome desktop. It allows quick access to console applications, supports all console types, and has many useful features such as tabbed consoles (many consoles in a single window with quick switching between them).', 'The Gnome Terminal application fully supports Gnome 2 and is a standard part of the Gnome Desktop.', '2004-09-24 20:58:02.256678', 'http://www.gnome.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, 2, 14, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, 'gnome-terminal', NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 28 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (7, 6, 12, 'iso-codes', 'iso-codes', 'The iso-codes', 'foo', 'bar', '2004-09-24 20:58:02.258743', 'http://www.novell.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 29 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (8, 4, 12, 'thunderbird', 'Mozilla Thunderbird', 'Mozilla Thunderbird', 'The Mozilla Thunderbird email client', 'The Mozilla Thunderbird email client', '2004-09-24 20:58:04.478988', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 30 | +The current stable release series of Evolution is 2.0.', '2004-09-24 20:58:02.240163', 'http://www.gnome.org/evolution/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, true, true, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, 1, NULL, NULL); |
| 31 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (6, 5, 12, 'gnome-terminal', 'GNOME Terminal', 'The GNOME Terminal Emulator', 'Gnome Terminal is a simple terminal application for your Gnome desktop. It allows quick access to console applications, supports all console types, and has many useful features such as tabbed consoles (many consoles in a single window with quick switching between them).', 'The Gnome Terminal application fully supports Gnome 2 and is a standard part of the Gnome Desktop.', '2004-09-24 20:58:02.256678', 'http://www.gnome.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, 2, 14, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, 'gnome-terminal', NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 32 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (7, 6, 12, 'iso-codes', 'iso-codes', 'The iso-codes', 'foo', 'bar', '2004-09-24 20:58:02.258743', 'http://www.novell.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 33 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (8, 4, 12, 'thunderbird', 'Mozilla Thunderbird', 'Mozilla Thunderbird', 'The Mozilla Thunderbird email client', 'The Mozilla Thunderbird email client', '2004-09-24 20:58:04.478988', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 34 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (9, 5, 16, 'applets', 'Gnome Applets', 'The Gnome Panel Applets', 'The Gnome Panel Applets are a collection of standard widgets that can be installed on your desktop Panel. These icons act as launchers for applications, or indicators of the status of your machine. For example, panel applets exist to show you your battery status or wifi network signal strength.', 'This is the collection of Panel Applets that is part of the default Gnome release. Additional Panel Applets are available from third parties. A complete set of Panel Applets is included in the Ubuntu OS, for example. |
| 35 | |
| 36 | -The Gnome Panel team includes Abel Kascinsky, Frederick Wurst and Andreas Andropovitch Axelsson.', '2004-10-03 16:46:09.113721', 'http://www.gnome.org/panel/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 37 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (10, NULL, 2, 'python-gnome2-dev', 'python gnome2 dev', 'python gnome2 dev', 'Python bindings for the GNOME desktop environment', 'Python bindings for the GNOME desktop environment', '2004-09-24 20:58:00.674409', 'http://www.daa.com.au/~james/software/pygtk/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 38 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (11, 5, 12, 'netapplet', 'NetApplet', 'Network Applet', 'The Novell Network Applet', 'Displays current network status and allows network switching', '2005-03-10 16:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 39 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (12, NULL, 16, 'a52dec', 'a52dec', 'Liba52 Test Decoder', 'a52dec is a test program for liba52.', 'This tool decodes ATSC A/52 streams, and also includes a demultiplexer for mpeg-1 and mpeg-2 program streams. The liba52 source code is always distributed in the a52dec package, to make sure it easier for people to test it.', '2005-04-14 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 40 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (13, 5, 16, 'gnomebaker', 'gnomebaker', 'Gnome Baker', 'Gnome Baker is a CD burning application', 'Gnome Baker burns CDs like there''s no tomorrow', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 41 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (14, NULL, 12, 'bazaar', 'Bazaar', 'Bazaar', 'Bazaar is a distributed revision control system', 'Bazaar is all about source control and double-dashes.', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 42 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (15, NULL, 1, 'alsa-utils', 'alsa-utils', 'ALSA utilities', 'Utilities for configurating and using the Advanced Linux Sound Architecture', '', '2005-09-15 09:05:11.472752', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, true, false, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, NULL, NULL, NULL); |
| 43 | +The Gnome Panel team includes Abel Kascinsky, Frederick Wurst and Andreas Andropovitch Axelsson.', '2004-10-03 16:46:09.113721', 'http://www.gnome.org/panel/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 44 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (10, NULL, 2, 'python-gnome2-dev', 'python gnome2 dev', 'python gnome2 dev', 'Python bindings for the GNOME desktop environment', 'Python bindings for the GNOME desktop environment', '2004-09-24 20:58:00.674409', 'http://www.daa.com.au/~james/software/pygtk/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 45 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (11, 5, 12, 'netapplet', 'NetApplet', 'Network Applet', 'The Novell Network Applet', 'Displays current network status and allows network switching', '2005-03-10 16:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 46 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (12, NULL, 16, 'a52dec', 'a52dec', 'Liba52 Test Decoder', 'a52dec is a test program for liba52.', 'This tool decodes ATSC A/52 streams, and also includes a demultiplexer for mpeg-1 and mpeg-2 program streams. The liba52 source code is always distributed in the a52dec package, to make sure it easier for people to test it.', '2005-04-14 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 47 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (13, 5, 16, 'gnomebaker', 'gnomebaker', 'Gnome Baker', 'Gnome Baker is a CD burning application', 'Gnome Baker burns CDs like there''s no tomorrow', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 48 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (14, NULL, 12, 'bazaar', 'Bazaar', 'Bazaar', 'Bazaar is a distributed revision control system', 'Bazaar is all about source control and double-dashes.', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 49 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (15, NULL, 1, 'alsa-utils', 'alsa-utils', 'ALSA utilities', 'Utilities for configurating and using the Advanced Linux Sound Architecture', '', '2005-09-15 09:05:11.472752', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, true, false, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, 1, NULL, NULL); |
| 50 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (16, NULL, 12, 'landscape', 'The Landscape Project', 'The Landscape Project', 'Landscape is a system being developed by Canonical to allow remote management of systems using a web interface.', 'Landscape is a system being developed by Canonical to allow remote management of systems using a web interface. The scope of the project isn''t limited, and will grow up as new features are planned. |
| 51 | |
| 52 | -The Landscape system consists of two major parts: a client daemon which delivers information to the server and acts on server-provided requests; and a web server responsible for handling communication with clients and the user interface itself.', '2006-07-11 19:59:17.311451', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 9, NULL, NULL, NULL, NULL, false, true, false, 'Internal Canonical project', false, false, NULL, 'User notified of licence policy on 2012-10-08.', false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 4, NULL, NULL, NULL); |
| 53 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (17, NULL, 12, 'launchpad', 'Launchpad', 'Launchpad', 'Launchpad is a catalogue of libre software projects and products. Projects registered in the Launchpad are linked to their translations in Rosetta, their bugs in Malone, their RCS imports in Bazaar, and their packages in Soyuz.', 'Launchpad''s design is inspired by the Description of a Project (DOAP) framework by Edd Dumbill, with extensions for actual releases of products.', '2006-11-24 12:48:19.178553', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, true, false, false, 'Internal Canonical project', false, false, NULL, 'User notified of licence policy on 2012-10-08.', false, 12, NULL, NULL, NULL, NULL, 20, 10, 10, true, 4, NULL, NULL, NULL); |
| 54 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (18, NULL, 37, 'upstart', 'Upstart', 'The Upstart System Initialization Process', 'Event-based init daemon.', 'upstart is a replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.', '2007-03-14 18:47:04.891546', 'http://upstart.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 37, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 55 | +The Landscape system consists of two major parts: a client daemon which delivers information to the server and acts on server-provided requests; and a web server responsible for handling communication with clients and the user interface itself.', '2006-07-11 19:59:17.311451', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 9, NULL, NULL, NULL, NULL, false, true, false, 'Internal Canonical project', false, false, NULL, 'User notified of licence policy on 2012-10-08.', false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 4, 3, NULL, NULL); |
| 56 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (17, NULL, 12, 'launchpad', 'Launchpad', 'Launchpad', 'Launchpad is a catalogue of libre software projects and products. Projects registered in the Launchpad are linked to their translations in Rosetta, their bugs in Malone, their RCS imports in Bazaar, and their packages in Soyuz.', 'Launchpad''s design is inspired by the Description of a Project (DOAP) framework by Edd Dumbill, with extensions for actual releases of products.', '2006-11-24 12:48:19.178553', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, true, false, false, 'Internal Canonical project', false, false, NULL, 'User notified of licence policy on 2012-10-08.', false, 12, NULL, NULL, NULL, NULL, 20, 10, 10, true, 4, 1, NULL, NULL); |
| 57 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (18, NULL, 37, 'upstart', 'Upstart', 'The Upstart System Initialization Process', 'Event-based init daemon.', 'upstart is a replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.', '2007-03-14 18:47:04.891546', 'http://upstart.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 37, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 58 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (19, NULL, 28, 'aptoncd', 'APTonCD', 'APTonCD, Get APT Anywhere', 'A simple yet powerful tool which allows you to create one (or more) CD/DVD-Repository containing all of the packages downloaded via apt-get or aptitude.', 'A GUI-based tool that allows you to create a CD/DVD with all downloaded packages with APT-GET, creating a removable-repository. |
| 59 | |
| 60 | With aptoncd you can: |
| 61 | @@ -1832,12 +1832,12 @@ |
| 62 | * Upgrade a lot of computers with same DVD |
| 63 | * And more is expected... |
| 64 | |
| 65 | -In the "Create APTonCD" feature we have the possibility to make a CD/DVD with all previously downloaded packages with apt-get or aptitude. It uses apt-cache (/var/cache/apt/archives) and scans for packages and makes a repository in one (or more) CD/DVD, exactly as the previous option.', '2007-03-14 18:53:13.112116', 'http://aptoncd.sourceforge.net/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 28, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 66 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (20, NULL, 14, 'jokosher', 'Jokosher', 'Jokosher Audio Editor', 'Jokosher is a simple yet powerful multi-track studio. With it you can create and record music, podcasts and more, all from an integrated simple environment.', 'Jokosher brings together many sources of audio into a seamless environment where you can record, mix and publish your audio content.', '2007-03-15 20:11:49.501871', 'http://www.jokosher.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, false, false, false, NULL, false, true, NULL, NULL, false, 14, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 67 | +In the "Create APTonCD" feature we have the possibility to make a CD/DVD with all previously downloaded packages with apt-get or aptitude. It uses apt-cache (/var/cache/apt/archives) and scans for packages and makes a repository in one (or more) CD/DVD, exactly as the previous option.', '2007-03-14 18:53:13.112116', 'http://aptoncd.sourceforge.net/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 28, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 68 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (20, NULL, 14, 'jokosher', 'Jokosher', 'Jokosher Audio Editor', 'Jokosher is a simple yet powerful multi-track studio. With it you can create and record music, podcasts and more, all from an integrated simple environment.', 'Jokosher brings together many sources of audio into a seamless environment where you can record, mix and publish your audio content.', '2007-03-15 20:11:49.501871', 'http://www.jokosher.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, false, false, false, NULL, false, true, NULL, NULL, false, 14, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 69 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (21, NULL, 12, 'bzr', 'Bazaar', 'Bazaar Version Control System', 'Bazaar is a distributed revision control system. It allows team members to branch and merge upstream code very easily. Most importantly, it is very robust in handling renames so that merges across radical restructurings of the tree are efficient and correct.', 'Bazaar aims to be a distributed RCS system that the open source community loves to use. |
| 70 | |
| 71 | -Distributed revision control systems allow multiple people to have their own branch of a project, and merge code efficiently between them. This enables new contributors to immediately have access to the full tools that previously have been limited to just the committers to a project.', '2007-03-27 16:28:27.763632', 'http://bazaar-vcs.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 72 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (22, NULL, 12, 'redfish', 'Redfish', 'Redfish', 'The redfish project.', 'The redfish project.', '2007-04-18 20:58:56.846607', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 24, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 73 | +Distributed revision control systems allow multiple people to have their own branch of a project, and merge code efficiently between them. This enables new contributors to immediately have access to the full tools that previously have been limited to just the committers to a project.', '2007-03-27 16:28:27.763632', 'http://bazaar-vcs.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 74 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (22, NULL, 12, 'redfish', 'Redfish', 'Redfish', 'The redfish project.', 'The redfish project.', '2007-04-18 20:58:56.846607', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 24, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 75 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (23, 1, 1, 'derby', 'Derby', 'Derby - Java Database', 'Apache Derby, an Apache DB subproject, is an open source relational database implemented entirely in Java and available under the Apache License, Version 2.0.', 'Some key advantages include: |
| 76 | |
| 77 | * Derby has a small footprint -- about 2 megabytes for the base engine and embedded JDBC driver. |
| 78 | @@ -1845,9 +1845,9 @@ |
| 79 | * Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution. |
| 80 | * Derby also supports the more familiar client/server mode with the Derby Network Client JDBC driver and Derby Network Server. |
| 81 | * Derby is easy to install, deploy, and use. |
| 82 | -', '2007-11-19 12:44:30.603892', 'http://db.apache.org/derby/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 83 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (24, NULL, 243623, 'mega-money-maker', 'Mega Money Maker', 'Sample Commercial Project', 'Proprietary project', NULL, '2008-06-27 14:51:47.366199', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, false, false, false, 'All rights reserved. Not free.', false, false, NULL, NULL, false, 243623, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 84 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (26, NULL, 16, 'obsolete-junk', 'Obsolete Junk', 'The Great Mass of Obsolete Junk', 'If you have junk that you don''t want clogging up your product, dump it here.', NULL, '2009-05-02 21:33:15.310312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, false, false, false, '(We have them all because we are junk. Junk. Junk I tell you.)', false, false, NULL, NULL, true, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 85 | +', '2007-11-19 12:44:30.603892', 'http://db.apache.org/derby/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 86 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (24, NULL, 243623, 'mega-money-maker', 'Mega Money Maker', 'Sample Commercial Project', 'Proprietary project', NULL, '2008-06-27 14:51:47.366199', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, false, false, false, 'All rights reserved. Not free.', false, false, NULL, NULL, false, 243623, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 87 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (26, NULL, 16, 'obsolete-junk', 'Obsolete Junk', 'The Great Mass of Obsolete Junk', 'If you have junk that you don''t want clogging up your product, dump it here.', NULL, '2009-05-02 21:33:15.310312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, false, false, false, '(We have them all because we are junk. Junk. Junk I tell you.)', false, false, NULL, NULL, true, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 88 | |
| 89 | |
| 90 | ALTER TABLE product ENABLE TRIGGER ALL; |
| 91 | |
| 92 | === modified file 'database/sampledata/current.sql' |
| 93 | --- database/sampledata/current.sql 2012-10-08 13:33:43 +0000 |
| 94 | +++ database/sampledata/current.sql 2012-10-11 04:47:20 +0000 |
| 95 | @@ -1,6 +1,6 @@ |
| 96 | -- Copyright 2010-2011 Canonical Ltd. This software is licensed under the |
| 97 | -- GNU Affero General Public License version 3 (see the file LICENSE). |
| 98 | --- Created using pg_dump (PostgreSQL) 9.1.4 |
| 99 | +-- Created using pg_dump (PostgreSQL) 9.1.6 |
| 100 | |
| 101 | SET check_function_bodies = false; |
| 102 | SET client_encoding = 'UTF8'; |
| 103 | @@ -1798,30 +1798,30 @@ |
| 104 | |
| 105 | ALTER TABLE product DISABLE TRIGGER ALL; |
| 106 | |
| 107 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (1, 1, 17, 'tomcat', 'Tomcat', 'Tomcat', 'The servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.', 'Apache Tomcat is developed in an open and participatory environment and released under the Apache Software License. This project has nothing to do with Ubuntu, but this description uses the word "Ubuntu" for the purpose of testing search results.', '2004-09-24 20:58:00.655518', 'http://tomcat.apache.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 17, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 108 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (2, 2, 2, 'unassigned', 'unassigned syncs', 'unassigned syncs', 'syncs still not assigned to a real product', 'unassigned syncs, will not be processed, to be moved to real projects ASAP.', '2004-09-24 20:58:00.674409', 'http://archive.apache.org/dist/tomcat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 109 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (3, 3, 2, 'arch-mirrors', 'Arch mirrors', 'Arch archive mirrors', 'Arch Archive Mirroring project.', 'Arch archive full-archive mirror tasks', '2004-09-24 20:58:00.691047', 'http://arch.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 110 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (4, 4, 12, 'firefox', 'Mozilla Firefox', 'Mozilla Firefox', 'The Mozilla Firefox web browser', 'The Mozilla Firefox web browser', '2004-09-24 20:58:02.185708', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, false, true, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, true, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 111 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (1, 1, 17, 'tomcat', 'Tomcat', 'Tomcat', 'The servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.', 'Apache Tomcat is developed in an open and participatory environment and released under the Apache Software License. This project has nothing to do with Ubuntu, but this description uses the word "Ubuntu" for the purpose of testing search results.', '2004-09-24 20:58:00.655518', 'http://tomcat.apache.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 17, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 112 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (2, 2, 2, 'unassigned', 'unassigned syncs', 'unassigned syncs', 'syncs still not assigned to a real product', 'unassigned syncs, will not be processed, to be moved to real projects ASAP.', '2004-09-24 20:58:00.674409', 'http://archive.apache.org/dist/tomcat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 113 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (3, 3, 2, 'arch-mirrors', 'Arch mirrors', 'Arch archive mirrors', 'Arch Archive Mirroring project.', 'Arch archive full-archive mirror tasks', '2004-09-24 20:58:00.691047', 'http://arch.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 114 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (4, 4, 12, 'firefox', 'Mozilla Firefox', 'Mozilla Firefox', 'The Mozilla Firefox web browser', 'The Mozilla Firefox web browser', '2004-09-24 20:58:02.185708', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, false, true, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, true, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 115 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (5, 5, 12, 'evolution', 'Evolution', 'The Evolution Groupware Application', 'Evolution is an email client, addressbook and calendar application that is very well integrated with the Gnome desktop. Evolution is the standard mail client in the Ubuntu distribution, and supports all current mail system standards.', 'Recently, Evolution has seen significant work to make it interoperable with the proprietary Microsoft Exchange Server protocols and formats, allowing organisations to replace Outlook on Windows with Evolution and Linux. |
| 116 | |
| 117 | -The current stable release series of Evolution is 2.0.', '2004-09-24 20:58:02.240163', 'http://www.gnome.org/evolution/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, true, true, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, NULL, NULL, NULL); |
| 118 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (6, 5, 12, 'gnome-terminal', 'GNOME Terminal', 'The GNOME Terminal Emulator', 'Gnome Terminal is a simple terminal application for your Gnome desktop. It allows quick access to console applications, supports all console types, and has many useful features such as tabbed consoles (many consoles in a single window with quick switching between them).', 'The Gnome Terminal application fully supports Gnome 2 and is a standard part of the Gnome Desktop.', '2004-09-24 20:58:02.256678', 'http://www.gnome.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, 2, 14, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, 'gnome-terminal', NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 119 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (7, 6, 12, 'iso-codes', 'iso-codes', 'The iso-codes', 'foo', 'bar', '2004-09-24 20:58:02.258743', 'http://www.novell.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 120 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (8, 4, 12, 'thunderbird', 'Mozilla Thunderbird', 'Mozilla Thunderbird', 'The Mozilla Thunderbird email client', 'The Mozilla Thunderbird email client', '2004-09-24 20:58:04.478988', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 121 | +The current stable release series of Evolution is 2.0.', '2004-09-24 20:58:02.240163', 'http://www.gnome.org/evolution/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, 1, 100, true, true, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, 1, NULL, NULL); |
| 122 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (6, 5, 12, 'gnome-terminal', 'GNOME Terminal', 'The GNOME Terminal Emulator', 'Gnome Terminal is a simple terminal application for your Gnome desktop. It allows quick access to console applications, supports all console types, and has many useful features such as tabbed consoles (many consoles in a single window with quick switching between them).', 'The Gnome Terminal application fully supports Gnome 2 and is a standard part of the Gnome Desktop.', '2004-09-24 20:58:02.256678', 'http://www.gnome.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, 2, 14, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, 'gnome-terminal', NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 123 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (7, 6, 12, 'iso-codes', 'iso-codes', 'The iso-codes', 'foo', 'bar', '2004-09-24 20:58:02.258743', 'http://www.novell.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 124 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (8, 4, 12, 'thunderbird', 'Mozilla Thunderbird', 'Mozilla Thunderbird', 'The Mozilla Thunderbird email client', 'The Mozilla Thunderbird email client', '2004-09-24 20:58:04.478988', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 125 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (9, 5, 16, 'applets', 'Gnome Applets', 'The Gnome Panel Applets', 'The Gnome Panel Applets are a collection of standard widgets that can be installed on your desktop Panel. These icons act as launchers for applications, or indicators of the status of your machine. For example, panel applets exist to show you your battery status or wifi network signal strength.', 'This is the collection of Panel Applets that is part of the default Gnome release. Additional Panel Applets are available from third parties. A complete set of Panel Applets is included in the Ubuntu OS, for example. |
| 126 | |
| 127 | -The Gnome Panel team includes Abel Kascinsky, Frederick Wurst and Andreas Andropovitch Axelsson.', '2004-10-03 16:46:09.113721', 'http://www.gnome.org/panel/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 128 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (10, NULL, 2, 'python-gnome2-dev', 'python gnome2 dev', 'python gnome2 dev', 'Python bindings for the GNOME desktop environment', 'Python bindings for the GNOME desktop environment', '2004-09-24 20:58:00.674409', 'http://www.daa.com.au/~james/software/pygtk/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 129 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (11, 5, 12, 'netapplet', 'NetApplet', 'Network Applet', 'The Novell Network Applet', 'Displays current network status and allows network switching', '2005-03-10 16:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 130 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (12, NULL, 16, 'a52dec', 'a52dec', 'Liba52 Test Decoder', 'a52dec is a test program for liba52.', 'This tool decodes ATSC A/52 streams, and also includes a demultiplexer for mpeg-1 and mpeg-2 program streams. The liba52 source code is always distributed in the a52dec package, to make sure it easier for people to test it.', '2005-04-14 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 131 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (13, 5, 16, 'gnomebaker', 'gnomebaker', 'Gnome Baker', 'Gnome Baker is a CD burning application', 'Gnome Baker burns CDs like there''s no tomorrow', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 132 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (14, NULL, 12, 'bazaar', 'Bazaar', 'Bazaar', 'Bazaar is a distributed revision control system', 'Bazaar is all about source control and double-dashes.', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 133 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (15, NULL, 1, 'alsa-utils', 'alsa-utils', 'ALSA utilities', 'Utilities for configurating and using the Advanced Linux Sound Architecture', '', '2005-09-15 09:05:11.472752', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, true, false, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, NULL, NULL, NULL); |
| 134 | +The Gnome Panel team includes Abel Kascinsky, Frederick Wurst and Andreas Andropovitch Axelsson.', '2004-10-03 16:46:09.113721', 'http://www.gnome.org/panel/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 135 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (10, NULL, 2, 'python-gnome2-dev', 'python gnome2 dev', 'python gnome2 dev', 'Python bindings for the GNOME desktop environment', 'Python bindings for the GNOME desktop environment', '2004-09-24 20:58:00.674409', 'http://www.daa.com.au/~james/software/pygtk/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, false, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 2, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 136 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (11, 5, 12, 'netapplet', 'NetApplet', 'Network Applet', 'The Novell Network Applet', 'Displays current network status and allows network switching', '2005-03-10 16:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 137 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (12, NULL, 16, 'a52dec', 'a52dec', 'Liba52 Test Decoder', 'a52dec is a test program for liba52.', 'This tool decodes ATSC A/52 streams, and also includes a demultiplexer for mpeg-1 and mpeg-2 program streams. The liba52 source code is always distributed in the a52dec package, to make sure it easier for people to test it.', '2005-04-14 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 138 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (13, 5, 16, 'gnomebaker', 'gnomebaker', 'Gnome Baker', 'Gnome Baker is a CD burning application', 'Gnome Baker burns CDs like there''s no tomorrow', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 139 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (14, NULL, 12, 'bazaar', 'Bazaar', 'Bazaar', 'Bazaar is a distributed revision control system', 'Bazaar is all about source control and double-dashes.', '2005-08-26 00:00:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 140 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (15, NULL, 1, 'alsa-utils', 'alsa-utils', 'ALSA utilities', 'Utilities for configurating and using the Advanced Linux Sound Architecture', '', '2005-09-15 09:05:11.472752', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, true, false, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 20, true, 1, 1, NULL, NULL); |
| 141 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (16, NULL, 12, 'landscape', 'The Landscape Project', 'The Landscape Project', 'Landscape is a system being developed by Canonical to allow remote management of systems using a web interface.', 'Landscape is a system being developed by Canonical to allow remote management of systems using a web interface. The scope of the project isn''t limited, and will grow up as new features are planned. |
| 142 | |
| 143 | -The Landscape system consists of two major parts: a client daemon which delivers information to the server and acts on server-provided requests; and a web server responsible for handling communication with clients and the user interface itself.', '2006-07-11 19:59:17.311451', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 9, NULL, NULL, NULL, NULL, false, true, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 4, NULL, NULL, NULL); |
| 144 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (17, NULL, 12, 'launchpad', 'Launchpad', 'Launchpad', 'Launchpad is a catalogue of libre software projects and products. Projects registered in the Launchpad are linked to their translations in Rosetta, their bugs in Malone, their RCS imports in Bazaar, and their packages in Soyuz.', 'Launchpad''s design is inspired by the Description of a Project (DOAP) framework by Edd Dumbill, with extensions for actual releases of products.', '2006-11-24 12:48:19.178553', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, true, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 4, NULL, NULL, NULL); |
| 145 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (18, NULL, 37, 'upstart', 'Upstart', 'The Upstart System Initialization Process', 'Event-based init daemon.', 'upstart is a replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.', '2007-03-14 18:47:04.891546', 'http://upstart.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 37, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 146 | +The Landscape system consists of two major parts: a client daemon which delivers information to the server and acts on server-provided requests; and a web server responsible for handling communication with clients and the user interface itself.', '2006-07-11 19:59:17.311451', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 9, NULL, NULL, NULL, NULL, false, true, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 4, 3, NULL, NULL); |
| 147 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (17, NULL, 12, 'launchpad', 'Launchpad', 'Launchpad', 'Launchpad is a catalogue of libre software projects and products. Projects registered in the Launchpad are linked to their translations in Rosetta, their bugs in Malone, their RCS imports in Bazaar, and their packages in Soyuz.', 'Launchpad''s design is inspired by the Description of a Project (DOAP) framework by Edd Dumbill, with extensions for actual releases of products.', '2006-11-24 12:48:19.178553', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, true, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 4, 1, NULL, NULL); |
| 148 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (18, NULL, 37, 'upstart', 'Upstart', 'The Upstart System Initialization Process', 'Event-based init daemon.', 'upstart is a replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.', '2007-03-14 18:47:04.891546', 'http://upstart.ubuntu.com/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 37, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 149 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (19, NULL, 28, 'aptoncd', 'APTonCD', 'APTonCD, Get APT Anywhere', 'A simple yet powerful tool which allows you to create one (or more) CD/DVD-Repository containing all of the packages downloaded via apt-get or aptitude.', 'A GUI-based tool that allows you to create a CD/DVD with all downloaded packages with APT-GET, creating a removable-repository. |
| 150 | |
| 151 | With aptoncd you can: |
| 152 | @@ -1831,12 +1831,12 @@ |
| 153 | * Upgrade a lot of computers with same DVD |
| 154 | * And more is expected... |
| 155 | |
| 156 | -In the "Create APTonCD" feature we have the possibility to make a CD/DVD with all previously downloaded packages with apt-get or aptitude. It uses apt-cache (/var/cache/apt/archives) and scans for packages and makes a repository in one (or more) CD/DVD, exactly as the previous option.', '2007-03-14 18:53:13.112116', 'http://aptoncd.sourceforge.net/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 28, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 157 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (20, NULL, 14, 'jokosher', 'Jokosher', 'Jokosher Audio Editor', 'Jokosher is a simple yet powerful multi-track studio. With it you can create and record music, podcasts and more, all from an integrated simple environment.', 'Jokosher brings together many sources of audio into a seamless environment where you can record, mix and publish your audio content.', '2007-03-15 20:11:49.501871', 'http://www.jokosher.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, false, false, false, NULL, false, true, NULL, NULL, false, 14, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 158 | +In the "Create APTonCD" feature we have the possibility to make a CD/DVD with all previously downloaded packages with apt-get or aptitude. It uses apt-cache (/var/cache/apt/archives) and scans for packages and makes a repository in one (or more) CD/DVD, exactly as the previous option.', '2007-03-14 18:53:13.112116', 'http://aptoncd.sourceforge.net/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 28, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 159 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (20, NULL, 14, 'jokosher', 'Jokosher', 'Jokosher Audio Editor', 'Jokosher is a simple yet powerful multi-track studio. With it you can create and record music, podcasts and more, all from an integrated simple environment.', 'Jokosher brings together many sources of audio into a seamless environment where you can record, mix and publish your audio content.', '2007-03-15 20:11:49.501871', 'http://www.jokosher.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, false, false, false, NULL, false, true, NULL, NULL, false, 14, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 160 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (21, NULL, 12, 'bzr', 'Bazaar', 'Bazaar Version Control System', 'Bazaar is a distributed revision control system. It allows team members to branch and merge upstream code very easily. Most importantly, it is very robust in handling renames so that merges across radical restructurings of the tree are efficient and correct.', 'Bazaar aims to be a distributed RCS system that the open source community loves to use. |
| 161 | |
| 162 | -Distributed revision control systems allow multiple people to have their own branch of a project, and merge code efficiently between them. This enables new contributors to immediately have access to the full tools that previously have been limited to just the committers to a project.', '2007-03-27 16:28:27.763632', 'http://bazaar-vcs.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 163 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (22, NULL, 12, 'redfish', 'Redfish', 'Redfish', 'The redfish project.', 'The redfish project.', '2007-04-18 20:58:56.846607', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 24, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 164 | +Distributed revision control systems allow multiple people to have their own branch of a project, and merge code efficiently between them. This enables new contributors to immediately have access to the full tools that previously have been limited to just the committers to a project.', '2007-03-27 16:28:27.763632', 'http://bazaar-vcs.org/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 165 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (22, NULL, 12, 'redfish', 'Redfish', 'Redfish', 'The redfish project.', 'The redfish project.', '2007-04-18 20:58:56.846607', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, true, 64, NULL, NULL, 24, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 12, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 166 | INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (23, 1, 1, 'derby', 'Derby', 'Derby - Java Database', 'Apache Derby, an Apache DB subproject, is an open source relational database implemented entirely in Java and available under the Apache License, Version 2.0.', 'Some key advantages include: |
| 167 | |
| 168 | * Derby has a small footprint -- about 2 megabytes for the base engine and embedded JDBC driver. |
| 169 | @@ -1844,9 +1844,9 @@ |
| 170 | * Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution. |
| 171 | * Derby also supports the more familiar client/server mode with the Derby Network Client JDBC driver and Derby Network Server. |
| 172 | * Derby is easy to install, deploy, and use. |
| 173 | -', '2007-11-19 12:44:30.603892', 'http://db.apache.org/derby/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 174 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (24, NULL, 243623, 'mega-money-maker', 'Mega Money Maker', 'Sample Commercial Project', 'Proprietary project', NULL, '2008-06-27 14:51:47.366199', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, false, false, false, 'All rights reserved. Not free.', false, false, NULL, NULL, false, 243623, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 175 | -INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (26, NULL, 16, 'obsolete-junk', 'Obsolete Junk', 'The Great Mass of Obsolete Junk', 'If you have junk that you don''t want clogging up your product, dump it here.', NULL, '2009-05-02 21:33:15.310312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, false, false, false, '(We have them all because we are junk. Junk. Junk I tell you.)', false, false, NULL, NULL, true, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, NULL, NULL, NULL); |
| 176 | +', '2007-11-19 12:44:30.603892', 'http://db.apache.org/derby/', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, false, false, false, NULL, false, false, NULL, NULL, false, 1, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 177 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (24, NULL, 243623, 'mega-money-maker', 'Mega Money Maker', 'Sample Commercial Project', 'Proprietary project', NULL, '2008-06-27 14:51:47.366199', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, false, false, false, 'All rights reserved. Not free.', false, false, NULL, NULL, false, 243623, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 178 | +INSERT INTO product (id, project, owner, name, displayname, title, summary, description, datecreated, homepageurl, screenshotsurl, wikiurl, listurl, programminglang, downloadurl, lastdoap, sourceforgeproject, freshmeatproject, reviewed, active, fti, autoupdate, translationgroup, translationpermission, official_rosetta, official_malone, bug_supervisor, driver, bugtracker, development_focus, homepage_content, icon, mugshot, logo, official_answers, private_bugs, private_specs, license_info, official_blueprints, enable_bug_expiration, bug_reporting_guidelines, reviewer_whiteboard, license_approved, registrant, remote_product, translation_focus, max_bug_heat, bug_reported_acknowledgement, answers_usage, blueprints_usage, translations_usage, enable_bugfiling_duplicate_search, branch_sharing_policy, bug_sharing_policy, specification_sharing_policy, information_type) VALUES (26, NULL, 16, 'obsolete-junk', 'Obsolete Junk', 'The Great Mass of Obsolete Junk', 'If you have junk that you don''t want clogging up your product, dump it here.', NULL, '2009-05-02 21:33:15.310312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, true, NULL, false, NULL, 1, false, false, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, false, false, false, '(We have them all because we are junk. Junk. Junk I tell you.)', false, false, NULL, NULL, true, 16, NULL, NULL, NULL, NULL, 10, 10, 10, true, 1, 1, NULL, NULL); |
| 179 | |
| 180 | |
| 181 | ALTER TABLE product ENABLE TRIGGER ALL; |
| 182 | |
| 183 | === modified file 'lib/lp/bugs/browser/bugtarget.py' |
| 184 | --- lib/lp/bugs/browser/bugtarget.py 2012-10-03 18:06:22 +0000 |
| 185 | +++ lib/lp/bugs/browser/bugtarget.py 2012-10-11 04:47:20 +0000 |
| 186 | @@ -119,10 +119,7 @@ |
| 187 | from lp.bugs.publisher import BugsLayer |
| 188 | from lp.bugs.utilities.filebugdataparser import FileBugData |
| 189 | from lp.hardwaredb.interfaces.hwdb import IHWSubmissionSet |
| 190 | -from lp.registry.browser.product import ( |
| 191 | - ProductConfigureBase, |
| 192 | - ProductPrivateBugsMixin, |
| 193 | - ) |
| 194 | +from lp.registry.browser.product import ProductConfigureBase |
| 195 | from lp.registry.interfaces.distribution import IDistribution |
| 196 | from lp.registry.interfaces.distributionsourcepackage import ( |
| 197 | IDistributionSourcePackage, |
| 198 | @@ -158,8 +155,6 @@ |
| 199 | |
| 200 | bug_supervisor = copy_field( |
| 201 | IHasBugSupervisor['bug_supervisor'], readonly=False) |
| 202 | - private_bugs = copy_field( |
| 203 | - IProduct['private_bugs'], readonly=False) |
| 204 | official_malone = copy_field(ILaunchpadUsage['official_malone']) |
| 205 | enable_bug_expiration = copy_field( |
| 206 | ILaunchpadUsage['enable_bug_expiration']) |
| 207 | @@ -180,8 +175,7 @@ |
| 208 | return product |
| 209 | |
| 210 | |
| 211 | -class ProductConfigureBugTrackerView(ProductPrivateBugsMixin, |
| 212 | - ProductConfigureBase): |
| 213 | +class ProductConfigureBugTrackerView(ProductConfigureBase): |
| 214 | """View class to configure the bug tracker for a project.""" |
| 215 | |
| 216 | label = "Configure bug tracker" |
| 217 | @@ -202,7 +196,6 @@ |
| 218 | "bug_reporting_guidelines", |
| 219 | "bug_reported_acknowledgement", |
| 220 | "enable_bugfiling_duplicate_search", |
| 221 | - "private_bugs" |
| 222 | ] |
| 223 | if check_permission("launchpad.Edit", self.context): |
| 224 | field_names.append("bug_supervisor") |
| 225 | |
| 226 | === modified file 'lib/lp/bugs/browser/tests/test_bugs.py' |
| 227 | --- lib/lp/bugs/browser/tests/test_bugs.py 2012-10-04 23:06:58 +0000 |
| 228 | +++ lib/lp/bugs/browser/tests/test_bugs.py 2012-10-11 04:47:20 +0000 |
| 229 | @@ -141,75 +141,31 @@ |
| 230 | related_bug = self.factory.makeBug() |
| 231 | self._assert_getBugData(related_bug) |
| 232 | |
| 233 | - def test_createBug_default_private_bugs_true(self): |
| 234 | + def test_createBug_public_bug_sharing_policy_public(self): |
| 235 | # createBug() does not adapt the default kwargs when they are none. |
| 236 | - project = self.factory.makeLegacyProduct( |
| 237 | - licenses=[License.OTHER_PROPRIETARY]) |
| 238 | - with person_logged_in(project.owner): |
| 239 | - project.setPrivateBugs(True, project.owner) |
| 240 | - bug = self.application.createBug( |
| 241 | - project.owner, 'title', 'description', project) |
| 242 | - self.assertEqual(InformationType.USERDATA, bug.information_type) |
| 243 | - |
| 244 | - def test_createBug_public_bug_private_bugs_true(self): |
| 245 | - # createBug() adapts a kwarg to InformationType if one is is not None. |
| 246 | - project = self.factory.makeLegacyProduct( |
| 247 | - licenses=[License.OTHER_PROPRIETARY]) |
| 248 | - with person_logged_in(project.owner): |
| 249 | - project.setPrivateBugs(True, project.owner) |
| 250 | - bug = self.application.createBug( |
| 251 | - project.owner, 'title', 'description', project, private=False) |
| 252 | - self.assertEqual(InformationType.PUBLIC, bug.information_type) |
| 253 | + product = self.factory.makeProduct() |
| 254 | + with person_logged_in(product.owner): |
| 255 | + product.setBugSharingPolicy(BugSharingPolicy.PUBLIC) |
| 256 | + bug = self.application.createBug( |
| 257 | + product.owner, 'title', 'description', product) |
| 258 | + self.assertEqual(InformationType.PUBLIC, bug.information_type) |
| 259 | |
| 260 | def test_createBug_default_sharing_policy_proprietary(self): |
| 261 | # createBug() does not adapt the default kwargs when they are none. |
| 262 | - project = self.factory.makeProduct( |
| 263 | + product = self.factory.makeProduct( |
| 264 | licenses=[License.OTHER_PROPRIETARY]) |
| 265 | - with person_logged_in(project.owner): |
| 266 | - project.setBugSharingPolicy( |
| 267 | - BugSharingPolicy.PROPRIETARY_OR_PUBLIC) |
| 268 | + with person_logged_in(product.owner): |
| 269 | + product.setBugSharingPolicy(BugSharingPolicy.PROPRIETARY_OR_PUBLIC) |
| 270 | bug = self.application.createBug( |
| 271 | - project.owner, 'title', 'description', project) |
| 272 | + product.owner, 'title', 'description', product) |
| 273 | self.assertEqual(InformationType.PROPRIETARY, bug.information_type) |
| 274 | |
| 275 | def test_createBug_public_bug_sharing_policy_proprietary(self): |
| 276 | # createBug() adapts a kwarg to InformationType if one is is not None. |
| 277 | - project = self.factory.makeProduct( |
| 278 | + product = self.factory.makeProduct( |
| 279 | licenses=[License.OTHER_PROPRIETARY]) |
| 280 | - with person_logged_in(project.owner): |
| 281 | - project.setBugSharingPolicy( |
| 282 | - BugSharingPolicy.PROPRIETARY_OR_PUBLIC) |
| 283 | + with person_logged_in(product.owner): |
| 284 | + product.setBugSharingPolicy(BugSharingPolicy.PROPRIETARY_OR_PUBLIC) |
| 285 | bug = self.application.createBug( |
| 286 | - project.owner, 'title', 'description', project, private=False) |
| 287 | + product.owner, 'title', 'description', product, private=False) |
| 288 | self.assertEqual(InformationType.PUBLIC, bug.information_type) |
| 289 | - |
| 290 | - def test_createBug_default_private_bugs_false(self): |
| 291 | - # createBug() does not adapt the default kwargs when they are none. |
| 292 | - project = self.factory.makeLegacyProduct( |
| 293 | - licenses=[License.OTHER_PROPRIETARY]) |
| 294 | - with person_logged_in(project.owner): |
| 295 | - project.setPrivateBugs(False, project.owner) |
| 296 | - bug = self.application.createBug( |
| 297 | - project.owner, 'title', 'description', project) |
| 298 | - self.assertEqual(InformationType.PUBLIC, bug.information_type) |
| 299 | - |
| 300 | - def test_createBug_proprietary_project(self): |
| 301 | - # crateBug() make proprietary bugs for proprietary projects. |
| 302 | - project = self.factory.makeProduct( |
| 303 | - licenses=[License.OTHER_PROPRIETARY], |
| 304 | - information_type=InformationType.PROPRIETARY) |
| 305 | - with person_logged_in(removeSecurityProxy(project).owner): |
| 306 | - project.setPrivateBugs(False, project.owner) |
| 307 | - bug = self.application.createBug( |
| 308 | - project.owner, 'title', 'description', project) |
| 309 | - self.assertEqual(InformationType.PROPRIETARY, bug.information_type) |
| 310 | - |
| 311 | - def test_createBug_private_bug_private_bugs_false(self): |
| 312 | - # createBug() adapts a kwarg to InformationType if one is is not None. |
| 313 | - project = self.factory.makeLegacyProduct( |
| 314 | - licenses=[License.OTHER_PROPRIETARY]) |
| 315 | - with person_logged_in(project.owner): |
| 316 | - project.setPrivateBugs(False, project.owner) |
| 317 | - bug = self.application.createBug( |
| 318 | - project.owner, 'title', 'description', project, private=True) |
| 319 | - self.assertEqual(InformationType.USERDATA, bug.information_type) |
| 320 | |
| 321 | === modified file 'lib/lp/bugs/browser/tests/test_bugtarget_configure.py' |
| 322 | --- lib/lp/bugs/browser/tests/test_bugtarget_configure.py 2012-08-21 04:04:47 +0000 |
| 323 | +++ lib/lp/bugs/browser/tests/test_bugtarget_configure.py 2012-10-11 04:47:20 +0000 |
| 324 | @@ -38,7 +38,6 @@ |
| 325 | 'field.bug_reporting_guidelines': 'guidelines', |
| 326 | 'field.bug_reported_acknowledgement': 'acknowledgement message', |
| 327 | 'field.enable_bugfiling_duplicate_search': False, |
| 328 | - 'field.private_bugs': 'off', |
| 329 | 'field.actions.change': 'Change', |
| 330 | } |
| 331 | |
| 332 | @@ -50,8 +49,7 @@ |
| 333 | fields = [ |
| 334 | 'bugtracker', 'enable_bug_expiration', 'remote_product', |
| 335 | 'bug_reporting_guidelines', 'bug_reported_acknowledgement', |
| 336 | - 'enable_bugfiling_duplicate_search', 'private_bugs', |
| 337 | - 'bug_supervisor'] |
| 338 | + 'enable_bugfiling_duplicate_search', 'bug_supervisor'] |
| 339 | self.assertEqual(fields, view.field_names) |
| 340 | self.assertEqual('http://launchpad.dev/boing', view.next_url) |
| 341 | self.assertEqual('http://launchpad.dev/boing', view.cancel_url) |
| 342 | @@ -65,7 +63,7 @@ |
| 343 | fields = [ |
| 344 | 'bugtracker', 'enable_bug_expiration', 'remote_product', |
| 345 | 'bug_reporting_guidelines', 'bug_reported_acknowledgement', |
| 346 | - 'enable_bugfiling_duplicate_search', 'private_bugs'] |
| 347 | + 'enable_bugfiling_duplicate_search'] |
| 348 | self.assertEqual(fields, view.field_names) |
| 349 | self.assertEqual('http://launchpad.dev/boing', view.next_url) |
| 350 | self.assertEqual('http://launchpad.dev/boing', view.cancel_url) |
| 351 | @@ -160,62 +158,3 @@ |
| 352 | self.assertEqual([], view.errors) |
| 353 | self.assertEqual( |
| 354 | 'new guidelines', self.product.bug_reporting_guidelines) |
| 355 | - |
| 356 | - def test_commercial_subscriber_can_turn_on_private_bugs(self): |
| 357 | - # Verify commercial subscribers can set private_bugs to on. |
| 358 | - form = self._makeForm() |
| 359 | - self.factory.makeCommercialSubscription(self.product) |
| 360 | - form['field.private_bugs'] = 'on' |
| 361 | - login_person(self.bug_supervisor) |
| 362 | - view = create_initialized_view( |
| 363 | - self.product, name='+configure-bugtracker', form=form) |
| 364 | - self.assertEqual([], view.errors) |
| 365 | - self.assertTrue(self.product.private_bugs) |
| 366 | - |
| 367 | - def test_expired_commercial_subscriber_cannot_turn_on_private_bugs(self): |
| 368 | - # Verify expired commercial subscribers cannot set private_bugs to on. |
| 369 | - form = self._makeForm() |
| 370 | - self.factory.makeCommercialSubscription(self.product, expired=True) |
| 371 | - form['field.private_bugs'] = 'on' |
| 372 | - login_person(self.bug_supervisor) |
| 373 | - view = create_initialized_view( |
| 374 | - self.product, name='+configure-bugtracker', form=form) |
| 375 | - self.assertEqual( |
| 376 | - [u'A valid commercial subscription is required to turn on ' |
| 377 | - u'default private bugs.'], |
| 378 | - view.errors) |
| 379 | - |
| 380 | - def test_unauthorised_cannot_turn_on_private_bugs(self): |
| 381 | - # Verify unauthorised users cannot set private_bugs to on. |
| 382 | - form = self._makeForm() |
| 383 | - form['field.private_bugs'] = 'on' |
| 384 | - view = create_initialized_view( |
| 385 | - self.product, name='+configure-bugtracker', form=form) |
| 386 | - self.assertEqual( |
| 387 | - [u'A valid commercial subscription is required to turn on ' |
| 388 | - u'default private bugs.'], |
| 389 | - view.errors) |
| 390 | - |
| 391 | - def test_unauthorised_cannot_turn_off_private_bugs(self): |
| 392 | - # Verify unauthorised user cannot set private_bugs off. |
| 393 | - registry_expert = self.factory.makeRegistryExpert() |
| 394 | - self.product.setPrivateBugs(True, registry_expert) |
| 395 | - anyperson = self.factory.makePerson() |
| 396 | - login_person(anyperson) |
| 397 | - form = self._makeForm() |
| 398 | - view = create_initialized_view( |
| 399 | - self.product, name='+configure-bugtracker', form=form) |
| 400 | - self.assertEqual( |
| 401 | - [u'Only bug supervisors can turn off default private bugs.'], |
| 402 | - view.errors) |
| 403 | - |
| 404 | - def test_bug_supervisor_can_turn_off_private_bugs(self): |
| 405 | - # Verify the bug supervisor can always set private_bugs off. |
| 406 | - registry_expert = self.factory.makeRegistryExpert() |
| 407 | - self.product.setPrivateBugs(True, registry_expert) |
| 408 | - form = self._makeForm() |
| 409 | - login_person(self.bug_supervisor) |
| 410 | - view = create_initialized_view( |
| 411 | - self.product, name='+configure-bugtracker', form=form) |
| 412 | - self.assertEqual([], view.errors) |
| 413 | - self.assertFalse(self.product.private_bugs) |
| 414 | |
| 415 | === modified file 'lib/lp/bugs/browser/tests/test_bugtarget_filebug.py' |
| 416 | --- lib/lp/bugs/browser/tests/test_bugtarget_filebug.py 2012-10-04 15:12:52 +0000 |
| 417 | +++ lib/lp/bugs/browser/tests/test_bugtarget_filebug.py 2012-10-11 04:47:20 +0000 |
| 418 | @@ -366,7 +366,7 @@ |
| 419 | }] |
| 420 | self.assertEqual(expected_guidelines, view.bug_reporting_guidelines) |
| 421 | |
| 422 | - def filebug_via_view(self, private_bugs=False, information_type=None, |
| 423 | + def filebug_via_view(self, information_type=None, |
| 424 | bug_sharing_policy=None, extra_data_token=None): |
| 425 | form = { |
| 426 | 'field.title': 'A bug', |
| 427 | @@ -375,9 +375,7 @@ |
| 428 | } |
| 429 | if information_type: |
| 430 | form['field.information_type'] = information_type |
| 431 | - product = self.factory.makeLegacyProduct(official_malone=True) |
| 432 | - if private_bugs: |
| 433 | - removeSecurityProxy(product).private_bugs = True |
| 434 | + product = self.factory.makeProduct(official_malone=True) |
| 435 | if bug_sharing_policy: |
| 436 | self.factory.makeCommercialSubscription(product=product) |
| 437 | with person_logged_in(product.owner): |
| 438 | @@ -394,8 +392,7 @@ |
| 439 | return (getUtility(IBugSet).getByNameOrID(bug_number), view) |
| 440 | |
| 441 | def test_filebug_default_information_type(self): |
| 442 | - # If we don't specify the bug's information_type, it is PUBLIC for |
| 443 | - # products with private_bugs=False. |
| 444 | + # If we don't specify the bug's information_type, it is PUBLIC. |
| 445 | bug, view = self.filebug_via_view() |
| 446 | self.assertEqual( |
| 447 | InformationType.PUBLIC, view.default_information_type) |
| 448 | @@ -407,14 +404,6 @@ |
| 449 | self.assertEqual( |
| 450 | InformationType.PRIVATESECURITY, bug.information_type) |
| 451 | |
| 452 | - def test_filebug_information_type_with_private_bugs(self): |
| 453 | - # If we don't specify the bug's information_type, it is USERDATA for |
| 454 | - # products with private_bugs=True. |
| 455 | - bug, view = self.filebug_via_view(private_bugs=True) |
| 456 | - self.assertEqual( |
| 457 | - InformationType.USERDATA, view.default_information_type) |
| 458 | - self.assertEqual(InformationType.USERDATA, bug.information_type) |
| 459 | - |
| 460 | def test_filebug_information_type_with_bug_sharing_policy(self): |
| 461 | # If we don't specify the bug's information_type, it follows the |
| 462 | # target's getDefaultBugInformationType(). |
| 463 | @@ -711,7 +700,7 @@ |
| 464 | |
| 465 | layer = DatabaseFunctionalLayer |
| 466 | |
| 467 | - def filebug_via_view(self, private_bugs=False, bug_sharing_policy=None, |
| 468 | + def filebug_via_view(self, bug_sharing_policy=None, |
| 469 | security_related=False): |
| 470 | form = { |
| 471 | 'field.title': 'A bug', |
| 472 | @@ -719,9 +708,7 @@ |
| 473 | 'field.security_related': 'on' if security_related else '', |
| 474 | 'field.actions.submit_bug': 'Submit Bug Request', |
| 475 | } |
| 476 | - product = self.factory.makeLegacyProduct(official_malone=True) |
| 477 | - if private_bugs: |
| 478 | - removeSecurityProxy(product).private_bugs = True |
| 479 | + product = self.factory.makeProduct(official_malone=True) |
| 480 | if bug_sharing_policy: |
| 481 | self.factory.makeCommercialSubscription(product=product) |
| 482 | with person_logged_in(product.owner): |
| 483 | @@ -735,31 +722,16 @@ |
| 484 | return getUtility(IBugSet).getByNameOrID(bug_number) |
| 485 | |
| 486 | def test_filebug_non_security_related(self): |
| 487 | - # Non security related bugs are PUBLIC for products with |
| 488 | - # private_bugs=False. |
| 489 | + # Non security related bugs are PUBLIC. |
| 490 | bug = self.filebug_via_view() |
| 491 | self.assertEqual(InformationType.PUBLIC, bug.information_type) |
| 492 | |
| 493 | def test_filebug_security_related(self): |
| 494 | - # Security related bugs are PRIVATESECURITY for products with |
| 495 | - # private_bugs=False. |
| 496 | + # Security related bugs are PRIVATESECURITY. |
| 497 | bug = self.filebug_via_view(security_related=True) |
| 498 | self.assertEqual( |
| 499 | InformationType.PRIVATESECURITY, bug.information_type) |
| 500 | |
| 501 | - def test_filebug_security_related_with_private_bugs(self): |
| 502 | - # Security related bugs are PRIVATESECURITY for products with |
| 503 | - # private_bugs=True. |
| 504 | - bug = self.filebug_via_view(private_bugs=True, security_related=True) |
| 505 | - self.assertEqual( |
| 506 | - InformationType.PRIVATESECURITY, bug.information_type) |
| 507 | - |
| 508 | - def test_filebug_with_private_bugs(self): |
| 509 | - # Non security related bugs are USERDATA for products with |
| 510 | - # private_bugs=True. |
| 511 | - bug = self.filebug_via_view(private_bugs=True) |
| 512 | - self.assertEqual(InformationType.USERDATA, bug.information_type) |
| 513 | - |
| 514 | def test_filebug_with_proprietary_sharing(self): |
| 515 | # Non security related bugs are PROPRIETARY for products with a |
| 516 | # proprietary sharing policy. |
| 517 | @@ -818,7 +790,7 @@ |
| 518 | |
| 519 | layer = DatabaseFunctionalLayer |
| 520 | |
| 521 | - def _assert_cache_values(self, view, duplicate_search, private_bugs=False): |
| 522 | + def _assert_cache_values(self, view, duplicate_search): |
| 523 | cache = IJSONRequestCache(view.request).objects |
| 524 | self.assertEqual( |
| 525 | duplicate_search, cache['enable_bugfiling_duplicate_search']) |
| 526 | @@ -865,7 +837,6 @@ |
| 527 | bugtask_importance_data.append(new_item) |
| 528 | self.assertEqual( |
| 529 | bugtask_importance_data, cache['bugtask_importance_data']) |
| 530 | - self.assertEqual(cache['bug_private_by_default'], private_bugs) |
| 531 | bugtask_info_type_data = {} |
| 532 | if not IProjectGroup.providedBy(view.context): |
| 533 | for item in view.context.getAllowedBugInformationTypes(): |
| 534 | @@ -884,14 +855,6 @@ |
| 535 | view = create_initialized_view(project, '+filebug', principal=user) |
| 536 | self._assert_cache_values(view, True) |
| 537 | |
| 538 | - def test_product_private_bugs(self): |
| 539 | - project = self.factory.makeLegacyProduct( |
| 540 | - official_malone=True, private_bugs=True) |
| 541 | - user = self.factory.makePerson() |
| 542 | - login_person(user) |
| 543 | - view = create_initialized_view(project, '+filebug', principal=user) |
| 544 | - self._assert_cache_values(view, True, True) |
| 545 | - |
| 546 | def test_product_no_duplicate_search(self): |
| 547 | product = self.factory.makeProduct(official_malone=True) |
| 548 | removeSecurityProxy(product).enable_bugfiling_duplicate_search = False |
| 549 | |
| 550 | === removed file 'lib/lp/bugs/doc/bug-private-by-default.txt' |
| 551 | --- lib/lp/bugs/doc/bug-private-by-default.txt 2012-09-17 16:13:40 +0000 |
| 552 | +++ lib/lp/bugs/doc/bug-private-by-default.txt 1970-01-01 00:00:00 +0000 |
| 553 | @@ -1,52 +0,0 @@ |
| 554 | -Private by default bugs |
| 555 | -======================= |
| 556 | - |
| 557 | -A product with private bugs by default must always have a bug supervisor |
| 558 | -(this is enforced by a DB constraint). |
| 559 | - |
| 560 | - >>> from lp.bugs.interfaces.bug import CreateBugParams |
| 561 | - >>> from lp.app.enums import InformationType |
| 562 | - >>> from lp.registry.interfaces.person import IPersonSet |
| 563 | - >>> from lp.registry.interfaces.product import IProductSet |
| 564 | - >>> from lp.testing.dbuser import switch_dbuser |
| 565 | - |
| 566 | - >>> switch_dbuser('launchpad') |
| 567 | - >>> no_priv = getUtility(IPersonSet).getByName('no-priv') |
| 568 | - >>> name16 = getUtility(IPersonSet).get(16) |
| 569 | - >>> landscape = getUtility(IProductSet).getByName('landscape') |
| 570 | - >>> landscape.private_bugs |
| 571 | - True |
| 572 | - |
| 573 | - >>> login('no-priv@canonical.com') |
| 574 | - |
| 575 | - >>> bug_params = CreateBugParams( |
| 576 | - ... owner=no_priv, title='Some bug', comment='I like monkeys.') |
| 577 | - |
| 578 | - >>> bug = landscape.createBug(bug_params) |
| 579 | - >>> [landscape_task] = bug.bugtasks |
| 580 | - >>> landscape_task.bug.private |
| 581 | - True |
| 582 | - |
| 583 | - >>> landscape_task.bug.security_related |
| 584 | - False |
| 585 | - |
| 586 | - >>> landscape.bug_supervisor.name |
| 587 | - u'landscape-developers' |
| 588 | - |
| 589 | - >>> landscape.owner.name |
| 590 | - u'name12' |
| 591 | - |
| 592 | - >>> sorted(sub.name for sub in landscape_task.bug.getDirectSubscribers()) |
| 593 | - [u'landscape-developers', u'no-priv'] |
| 594 | - |
| 595 | -The bug supervisor is always subscribed, except in the case of a security |
| 596 | -related bug. |
| 597 | - |
| 598 | - >>> security_bug_params = CreateBugParams( |
| 599 | - ... owner=no_priv, title='Security bug', |
| 600 | - ... comment='A monkey took my GPG keys.', |
| 601 | - ... information_type=InformationType.PRIVATESECURITY) |
| 602 | - >>> security_bug = landscape.createBug(security_bug_params) |
| 603 | - >>> [security_bug_task] = security_bug.bugtasks |
| 604 | - >>> security_bug_task.bug.private |
| 605 | - True |
| 606 | |
| 607 | === modified file 'lib/lp/bugs/model/bug.py' |
| 608 | --- lib/lp/bugs/model/bug.py 2012-10-10 02:45:36 +0000 |
| 609 | +++ lib/lp/bugs/model/bug.py 2012-10-11 04:47:20 +0000 |
| 610 | @@ -2621,20 +2621,6 @@ |
| 611 | getUtility(IBugTaskSet).createTask( |
| 612 | bug, params.owner, params.target, status=params.status) |
| 613 | |
| 614 | - # XXX: ElliotMurphy 2007-06-14: If we ever allow filing private |
| 615 | - # non-security bugs, this test might be simplified to checking |
| 616 | - # params.private. |
| 617 | - if (IProduct.providedBy(params.target) and params.target.private_bugs |
| 618 | - and params.target.bug_sharing_policy is None |
| 619 | - and params.information_type not in SECURITY_INFORMATION_TYPES): |
| 620 | - # Subscribe the bug supervisor to all bugs, |
| 621 | - # because all their bugs are private by default |
| 622 | - # otherwise only subscribe the bug reporter by default. |
| 623 | - if params.target.bug_supervisor: |
| 624 | - bug.subscribe(params.target.bug_supervisor, params.owner) |
| 625 | - else: |
| 626 | - bug.subscribe(params.target.owner, params.owner) |
| 627 | - |
| 628 | if params.subscribe_owner: |
| 629 | bug.subscribe(params.owner, params.owner) |
| 630 | # Subscribe other users. |
| 631 | |
| 632 | === modified file 'lib/lp/bugs/model/tests/test_bug.py' |
| 633 | --- lib/lp/bugs/model/tests/test_bug.py 2012-10-03 16:11:18 +0000 |
| 634 | +++ lib/lp/bugs/model/tests/test_bug.py 2012-10-11 04:47:20 +0000 |
| 635 | @@ -8,12 +8,12 @@ |
| 636 | timedelta, |
| 637 | ) |
| 638 | |
| 639 | +from lazr.lifecycle.event import ObjectCreatedEvent |
| 640 | from pytz import UTC |
| 641 | from storm.store import Store |
| 642 | from testtools.testcase import ExpectedException |
| 643 | from zope.component import getUtility |
| 644 | from zope.security.proxy import removeSecurityProxy |
| 645 | -from lazr.lifecycle.event import ObjectCreatedEvent |
| 646 | |
| 647 | from lp.app.enums import InformationType |
| 648 | from lp.app.interfaces.launchpad import ILaunchpadCelebrities |
| 649 | @@ -586,7 +586,7 @@ |
| 650 | self.assertEqual(0, len(recorder.events)) |
| 651 | |
| 652 | |
| 653 | -class TestBugPrivateAndSecurityRelatedUpdatesMixin: |
| 654 | +class TestBugPrivateAndSecurityRelatedUpdatesProject(TestCaseWithFactory): |
| 655 | |
| 656 | layer = DatabaseFunctionalLayer |
| 657 | |
| 658 | @@ -625,8 +625,6 @@ |
| 659 | bug_product = self.factory.makeProduct( |
| 660 | owner=product_owner, bug_supervisor=bug_supervisor, |
| 661 | driver=product_driver) |
| 662 | - if self.private_project: |
| 663 | - removeSecurityProxy(bug_product).private_bugs = True |
| 664 | bug = self.factory.makeBug(owner=bug_owner, target=bug_product) |
| 665 | with person_logged_in(bug_owner): |
| 666 | if private_security_related: |
| 667 | @@ -939,24 +937,6 @@ |
| 668 | InformationType.PUBLIC, bug.owner) |
| 669 | |
| 670 | |
| 671 | -class TestBugPrivateAndSecurityRelatedUpdatesPrivateProject( |
| 672 | - TestBugPrivateAndSecurityRelatedUpdatesMixin, TestCaseWithFactory): |
| 673 | - |
| 674 | - def setUp(self): |
| 675 | - s = super(TestBugPrivateAndSecurityRelatedUpdatesPrivateProject, self) |
| 676 | - s.setUp() |
| 677 | - self.private_project = True |
| 678 | - |
| 679 | - |
| 680 | -class TestBugPrivateAndSecurityRelatedUpdatesPublicProject( |
| 681 | - TestBugPrivateAndSecurityRelatedUpdatesMixin, TestCaseWithFactory): |
| 682 | - |
| 683 | - def setUp(self): |
| 684 | - s = super(TestBugPrivateAndSecurityRelatedUpdatesPublicProject, self) |
| 685 | - s.setUp() |
| 686 | - self.private_project = False |
| 687 | - |
| 688 | - |
| 689 | class TestBugPrivateAndSecurityRelatedUpdatesSpecialCase(TestCaseWithFactory): |
| 690 | |
| 691 | layer = DatabaseFunctionalLayer |
| 692 | |
| 693 | === modified file 'lib/lp/bugs/scripts/bugimport.py' |
| 694 | --- lib/lp/bugs/scripts/bugimport.py 2012-06-29 08:40:05 +0000 |
| 695 | +++ lib/lp/bugs/scripts/bugimport.py 2012-10-11 04:47:20 +0000 |
| 696 | @@ -7,7 +7,6 @@ |
| 697 | is described in the RELAX-NG schema 'doc/bug-export.rnc'. |
| 698 | """ |
| 699 | |
| 700 | - |
| 701 | __metaclass__ = type |
| 702 | |
| 703 | __all__ = [ |
| 704 | @@ -21,25 +20,14 @@ |
| 705 | import logging |
| 706 | import os |
| 707 | import time |
| 708 | - |
| 709 | - |
| 710 | -try: |
| 711 | - import xml.etree.cElementTree as ET |
| 712 | -except ImportError: |
| 713 | - import cElementTree as ET |
| 714 | +from xml.etree import cElementTree |
| 715 | |
| 716 | import pytz |
| 717 | - |
| 718 | from storm.store import Store |
| 719 | - |
| 720 | from zope.component import getUtility |
| 721 | from zope.contenttype import guess_content_type |
| 722 | |
| 723 | -from lp.services.database.constants import UTC_NOW |
| 724 | -from lp.services.identity.interfaces.emailaddress import IEmailAddressSet |
| 725 | from lp.app.interfaces.launchpad import ILaunchpadCelebrities |
| 726 | -from lp.services.librarian.interfaces import ILibraryFileAliasSet |
| 727 | -from lp.services.messages.interfaces.message import IMessageSet |
| 728 | from lp.bugs.adapters.bug import convert_to_information_type |
| 729 | from lp.bugs.interfaces.bug import ( |
| 730 | CreateBugParams, |
| 731 | @@ -60,11 +48,16 @@ |
| 732 | NoBugTrackerFound, |
| 733 | ) |
| 734 | from lp.bugs.interfaces.cve import ICveSet |
| 735 | +from lp.bugs.scripts.bugexport import BUGS_XMLNS |
| 736 | +from lp.registry.enums import BugSharingPolicy |
| 737 | from lp.registry.interfaces.person import ( |
| 738 | IPersonSet, |
| 739 | PersonCreationRationale, |
| 740 | ) |
| 741 | -from lp.bugs.scripts.bugexport import BUGS_XMLNS |
| 742 | +from lp.services.database.constants import UTC_NOW |
| 743 | +from lp.services.identity.interfaces.emailaddress import IEmailAddressSet |
| 744 | +from lp.services.librarian.interfaces import ILibraryFileAliasSet |
| 745 | +from lp.services.messages.interfaces.message import IMessageSet |
| 746 | |
| 747 | |
| 748 | DEFAULT_LOGGER = logging.getLogger('lp.bugs.scripts.bugimport') |
| 749 | @@ -151,6 +144,10 @@ |
| 750 | # duplicates of this bug. |
| 751 | self.pending_duplicates = {} |
| 752 | |
| 753 | + # We can't currently sensibly import into non-PUBLIC products. |
| 754 | + if self.product: |
| 755 | + assert self.product.bug_sharing_policy == BugSharingPolicy.PUBLIC |
| 756 | + |
| 757 | def getPerson(self, node): |
| 758 | """Get the Launchpad user corresponding to the given XML node""" |
| 759 | if node is None: |
| 760 | @@ -256,7 +253,7 @@ |
| 761 | |
| 762 | def importBugs(self, ztm): |
| 763 | """Import bugs from a file.""" |
| 764 | - tree = ET.parse(self.bugs_filename) |
| 765 | + tree = cElementTree.parse(self.bugs_filename) |
| 766 | root = tree.getroot() |
| 767 | assert root.tag == '{%s}launchpad-bugs' % BUGS_XMLNS, ( |
| 768 | "Root element is wrong: %s" % root.tag) |
| 769 | @@ -295,9 +292,6 @@ |
| 770 | |
| 771 | private = get_value(bugnode, 'private') == 'True' |
| 772 | security_related = get_value(bugnode, 'security_related') == 'True' |
| 773 | - # If the product has private_bugs, we force private to True. |
| 774 | - if self.product.private_bugs: |
| 775 | - private = True |
| 776 | information_type = convert_to_information_type( |
| 777 | private, security_related) |
| 778 | |
| 779 | @@ -318,16 +312,11 @@ |
| 780 | |
| 781 | # Process remaining comments |
| 782 | for commentnode in comments: |
| 783 | - msg = self.createMessage(commentnode, |
| 784 | - defaulttitle=bug.followup_subject()) |
| 785 | + msg = self.createMessage( |
| 786 | + commentnode, defaulttitle=bug.followup_subject()) |
| 787 | bug.linkMessage(msg) |
| 788 | self.createAttachments(bug, msg, commentnode) |
| 789 | |
| 790 | - # Security bugs must be created private, so set it correctly. |
| 791 | - if not self.product.private_bugs: |
| 792 | - information_type = convert_to_information_type( |
| 793 | - private, security_related) |
| 794 | - bug.transitionToInformationType(information_type, owner) |
| 795 | bug.name = get_value(bugnode, 'nickname') |
| 796 | description = get_value(bugnode, 'description') |
| 797 | if description: |
| 798 | |
| 799 | === modified file 'lib/lp/bugs/scripts/tests/test_bugimport.py' |
| 800 | --- lib/lp/bugs/scripts/tests/test_bugimport.py 2012-08-08 05:22:14 +0000 |
| 801 | +++ lib/lp/bugs/scripts/tests/test_bugimport.py 2012-10-11 04:47:20 +0000 |
| 802 | @@ -5,6 +5,7 @@ |
| 803 | |
| 804 | import os |
| 805 | import re |
| 806 | +import xml.etree.cElementTree as ET |
| 807 | |
| 808 | import pytz |
| 809 | from testtools.content import text_content |
| 810 | @@ -28,7 +29,6 @@ |
| 811 | from lp.bugs.interfaces.externalbugtracker import UNKNOWN_REMOTE_IMPORTANCE |
| 812 | from lp.bugs.model.bugnotification import BugNotification |
| 813 | from lp.bugs.scripts import bugimport |
| 814 | -from lp.bugs.scripts.bugimport import ET |
| 815 | from lp.bugs.scripts.checkwatches import ( |
| 816 | CheckwatchesMaster, |
| 817 | core, |
| 818 | @@ -656,19 +656,6 @@ |
| 819 | self.assertEqual(bug101.private, False) |
| 820 | self.assertEqual(bug101.security_related, True) |
| 821 | |
| 822 | - def test_public_bug_product_private_bugs(self): |
| 823 | - # Test that if we import a public bug into a product with |
| 824 | - # private_bugs, the bug is private. |
| 825 | - product = getUtility(IProductSet).getByName('netapplet') |
| 826 | - removeSecurityProxy(product).private_bugs = True |
| 827 | - importer = bugimport.BugImporter( |
| 828 | - product, 'bugs.xml', 'bug-map.pickle', verify_users=True) |
| 829 | - bugnode = ET.fromstring(public_security_bug) |
| 830 | - bug101 = importer.importBug(bugnode) |
| 831 | - self.assertIsNot(None, bug101) |
| 832 | - self.assertTrue(bug101.private) |
| 833 | - self.assertTrue(bug101.security_related) |
| 834 | - |
| 835 | |
| 836 | class BugImportCacheTestCase(TestCase): |
| 837 | """Test of bug mapping cache load/save routines.""" |
| 838 | |
| 839 | === modified file 'lib/lp/bugs/tests/test_bug.py' |
| 840 | --- lib/lp/bugs/tests/test_bug.py 2012-09-06 09:32:21 +0000 |
| 841 | +++ lib/lp/bugs/tests/test_bug.py 2012-10-11 04:47:20 +0000 |
| 842 | @@ -23,7 +23,6 @@ |
| 843 | UserCannotEditBugTaskImportance, |
| 844 | UserCannotEditBugTaskMilestone, |
| 845 | ) |
| 846 | -from lp.registry.enums import BugSharingPolicy |
| 847 | from lp.testing import ( |
| 848 | person_logged_in, |
| 849 | StormStatementRecorder, |
| 850 | @@ -301,26 +300,3 @@ |
| 851 | target = self.factory.makeProduct() |
| 852 | bug = self.createBug(owner=person, target=target) |
| 853 | self.assertContentEqual([person], bug.getDirectSubscribers()) |
| 854 | - |
| 855 | - def test_createBug_legacy_private_bugs_subscribers(self): |
| 856 | - # If a project is using the legacy private_bugs setting, the bug |
| 857 | - # supervisor is subscribed to new non-security bugs. |
| 858 | - person = self.factory.makePerson() |
| 859 | - target = self.factory.makeLegacyProduct( |
| 860 | - private_bugs=True, bug_supervisor=self.factory.makePerson()) |
| 861 | - bug = self.createBug(owner=person, target=target) |
| 862 | - with person_logged_in(person): |
| 863 | - self.assertContentEqual( |
| 864 | - [person, target.bug_supervisor], bug.getDirectSubscribers()) |
| 865 | - |
| 866 | - def test_createBug_proprietary_subscribers(self): |
| 867 | - # If a project's sharing policy requests proprietary bugs, only |
| 868 | - # the reporter is subscribed. Even if private_bugs is set. |
| 869 | - person = self.factory.makePerson() |
| 870 | - target = self.factory.makeProduct( |
| 871 | - bug_sharing_policy=BugSharingPolicy.PROPRIETARY, |
| 872 | - private_bugs=True) |
| 873 | - bug = self.createBug(owner=person, target=target) |
| 874 | - with person_logged_in(person): |
| 875 | - self.assertContentEqual( |
| 876 | - [person], bug.getDirectSubscribers()) |
| 877 | |
| 878 | === modified file 'lib/lp/bugs/tests/test_bugs_webservice.py' |
| 879 | --- lib/lp/bugs/tests/test_bugs_webservice.py 2012-10-08 10:07:11 +0000 |
| 880 | +++ lib/lp/bugs/tests/test_bugs_webservice.py 2012-10-11 04:47:20 +0000 |
| 881 | @@ -398,35 +398,6 @@ |
| 882 | |
| 883 | layer = DatabaseFunctionalLayer |
| 884 | |
| 885 | - def test_default_private_bugs_true(self): |
| 886 | - # Verify the path through user submission, to MaloneApplication to |
| 887 | - # BugSet, and back to the user creates a private bug according |
| 888 | - # to the project's bugs are private by default rule. |
| 889 | - project = self.factory.makeLegacyProduct( |
| 890 | - licenses=[License.OTHER_PROPRIETARY]) |
| 891 | - with person_logged_in(project.owner): |
| 892 | - project.setPrivateBugs(True, project.owner) |
| 893 | - webservice = launchpadlib_for('test', 'salgado') |
| 894 | - bugs_collection = webservice.load('/bugs') |
| 895 | - bug = bugs_collection.createBug( |
| 896 | - target=api_url(project), title='title', description='desc') |
| 897 | - self.assertEqual('Private', bug.information_type) |
| 898 | - |
| 899 | - def test_explicit_private_private_bugs_true(self): |
| 900 | - # Verify the path through user submission, to MaloneApplication to |
| 901 | - # BugSet, and back to the user creates a private bug because the |
| 902 | - # user commands it. |
| 903 | - project = self.factory.makeLegacyProduct( |
| 904 | - licenses=[License.OTHER_PROPRIETARY]) |
| 905 | - with person_logged_in(project.owner): |
| 906 | - project.setPrivateBugs(True, project.owner) |
| 907 | - webservice = launchpadlib_for('test', 'salgado') |
| 908 | - bugs_collection = webservice.load('/bugs') |
| 909 | - bug = bugs_collection.createBug( |
| 910 | - target=api_url(project), title='title', description='desc', |
| 911 | - private=True) |
| 912 | - self.assertEqual('Private', bug.information_type) |
| 913 | - |
| 914 | def test_default_sharing_policy_proprietary(self): |
| 915 | # Verify the path through user submission, to MaloneApplication to |
| 916 | # BugSet, and back to the user creates a private bug according |
| 917 | |
| 918 | === modified file 'lib/lp/bugs/tests/test_doc.py' |
| 919 | --- lib/lp/bugs/tests/test_doc.py 2012-06-06 16:04:34 +0000 |
| 920 | +++ lib/lp/bugs/tests/test_doc.py 2012-10-11 04:47:20 +0000 |
| 921 | @@ -233,12 +233,6 @@ |
| 922 | tearDown=tearDown, |
| 923 | layer=LaunchpadZopelessLayer |
| 924 | ), |
| 925 | - 'bug-private-by-default.txt': LayeredDocFileSuite( |
| 926 | - '../doc/bug-private-by-default.txt', |
| 927 | - setUp=setUp, |
| 928 | - tearDown=tearDown, |
| 929 | - layer=LaunchpadZopelessLayer |
| 930 | - ), |
| 931 | 'bugtracker-person.txt': LayeredDocFileSuite( |
| 932 | '../doc/bugtracker-person.txt', |
| 933 | setUp=checkwatchesSetUp, |
| 934 | |
| 935 | === modified file 'lib/lp/registry/browser/product.py' |
| 936 | --- lib/lp/registry/browser/product.py 2012-10-11 04:14:37 +0000 |
| 937 | +++ lib/lp/registry/browser/product.py 2012-10-11 04:47:20 +0000 |
| 938 | @@ -26,7 +26,6 @@ |
| 939 | 'ProductOverviewMenu', |
| 940 | 'ProductPackagesView', |
| 941 | 'ProductPackagesPortletView', |
| 942 | - 'ProductPrivateBugsMixin', |
| 943 | 'ProductPurchaseSubscriptionView', |
| 944 | 'ProductRdfView', |
| 945 | 'ProductReviewLicenseView', |
| 946 | @@ -1365,37 +1364,6 @@ |
| 947 | usage_fieldname = 'answers_usage' |
| 948 | |
| 949 | |
| 950 | -class ProductPrivateBugsMixin(): |
| 951 | - """A mixin for setting the product private_bugs field.""" |
| 952 | - def setUpFields(self): |
| 953 | - # private_bugs is readonly since we are using a mutator but we need |
| 954 | - # to edit it on the form. |
| 955 | - super(ProductPrivateBugsMixin, self).setUpFields() |
| 956 | - self.form_fields = self.form_fields.omit('private_bugs') |
| 957 | - private_bugs = copy_field(IProduct['private_bugs'], readonly=False) |
| 958 | - self.form_fields += form.Fields(private_bugs, render_context=True) |
| 959 | - |
| 960 | - def validate(self, data): |
| 961 | - super(ProductPrivateBugsMixin, self).validate(data) |
| 962 | - private_bugs = data.get('private_bugs') |
| 963 | - if private_bugs is None: |
| 964 | - return |
| 965 | - try: |
| 966 | - self.context.checkPrivateBugsTransitionAllowed( |
| 967 | - private_bugs, self.user) |
| 968 | - except Exception as e: |
| 969 | - self.setFieldError('private_bugs', e.message) |
| 970 | - |
| 971 | - def updateContextFromData(self, data, context=None, notify_modified=True): |
| 972 | - # private_bugs uses a mutator to check permissions, so it needs to |
| 973 | - # be handled separately. |
| 974 | - if 'private_bugs' in data: |
| 975 | - self.context.setPrivateBugs(data['private_bugs'], self.user) |
| 976 | - del data['private_bugs'] |
| 977 | - parent = super(ProductPrivateBugsMixin, self) |
| 978 | - return parent.updateContextFromData(data, context, notify_modified) |
| 979 | - |
| 980 | - |
| 981 | class ProductEditView(ProductLicenseMixin, LaunchpadEditFormView): |
| 982 | """View class that lets you edit a Product object.""" |
| 983 | |
| 984 | @@ -1487,8 +1455,7 @@ |
| 985 | canonical_url(self.context, view_name='+packages'))) |
| 986 | |
| 987 | |
| 988 | -class ProductAdminView(ProductPrivateBugsMixin, ProductEditView, |
| 989 | - ProductValidationMixin): |
| 990 | +class ProductAdminView(ProductEditView, ProductValidationMixin): |
| 991 | """View for $project/+admin""" |
| 992 | label = "Administer project details" |
| 993 | default_field_names = [ |
| 994 | @@ -1496,7 +1463,6 @@ |
| 995 | "owner", |
| 996 | "active", |
| 997 | "autoupdate", |
| 998 | - "private_bugs", |
| 999 | ] |
| 1000 | |
| 1001 | @property |
| 1002 | @@ -1565,15 +1531,14 @@ |
| 1003 | return canonical_url(self.context) |
| 1004 | |
| 1005 | |
| 1006 | -class ProductReviewLicenseView(ReturnToReferrerMixin, ProductPrivateBugsMixin, |
| 1007 | - ProductEditView, ProductValidationMixin): |
| 1008 | +class ProductReviewLicenseView(ReturnToReferrerMixin, ProductEditView, |
| 1009 | + ProductValidationMixin): |
| 1010 | """A view to review a project and change project privileges.""" |
| 1011 | label = "Review project" |
| 1012 | field_names = [ |
| 1013 | "project_reviewed", |
| 1014 | "license_approved", |
| 1015 | "active", |
| 1016 | - "private_bugs", |
| 1017 | "reviewer_whiteboard", |
| 1018 | ] |
| 1019 | |
| 1020 | |
| 1021 | === modified file 'lib/lp/registry/browser/tests/product-views.txt' |
| 1022 | --- lib/lp/registry/browser/tests/product-views.txt 2012-08-08 07:22:51 +0000 |
| 1023 | +++ lib/lp/registry/browser/tests/product-views.txt 2012-10-11 04:47:20 +0000 |
| 1024 | @@ -153,8 +153,7 @@ |
| 1025 | judge the licences. |
| 1026 | |
| 1027 | >>> view.field_names |
| 1028 | - ['project_reviewed', 'license_approved', 'active', 'private_bugs', |
| 1029 | - 'reviewer_whiteboard'] |
| 1030 | + ['project_reviewed', 'license_approved', 'active', 'reviewer_whiteboard'] |
| 1031 | |
| 1032 | The reviewer cannot deactivate a project if it is linked |
| 1033 | to a source package. |
| 1034 | @@ -193,15 +192,10 @@ |
| 1035 | >>> print product.reviewer_whiteboard |
| 1036 | Looks bogus |
| 1037 | |
| 1038 | -The reviewer can enable privileged features like private bugs. He can |
| 1039 | -also reactivate the project at the same time. |
| 1040 | - |
| 1041 | - >>> firefox.private_bugs |
| 1042 | - False |
| 1043 | +The reviewer can reactivate the project. |
| 1044 | |
| 1045 | >>> form = { |
| 1046 | ... 'field.active': 'on', |
| 1047 | - ... 'field.private_bugs': 'on', |
| 1048 | ... 'field.reviewer_whiteboard': 'Reinstated old project', |
| 1049 | ... 'field.actions.change': 'Change', |
| 1050 | ... } |
| 1051 | @@ -212,8 +206,6 @@ |
| 1052 | [] |
| 1053 | >>> firefox.active |
| 1054 | True |
| 1055 | - >>> firefox.private_bugs |
| 1056 | - True |
| 1057 | >>> print firefox.reviewer_whiteboard |
| 1058 | Reinstated old project |
| 1059 | |
| 1060 | @@ -222,7 +214,6 @@ |
| 1061 | |
| 1062 | >>> from lp.registry.interfaces.product import License |
| 1063 | |
| 1064 | - >>> firefox.setPrivateBugs(False, commercial_member) |
| 1065 | >>> login('test@canonical.com') |
| 1066 | >>> firefox.licenses = [License.OTHER_PROPRIETARY] |
| 1067 | |
| 1068 | |
| 1069 | === modified file 'lib/lp/registry/interfaces/product.py' |
| 1070 | --- lib/lp/registry/interfaces/product.py 2012-10-08 14:27:31 +0000 |
| 1071 | +++ lib/lp/registry/interfaces/product.py 2012-10-11 04:47:20 +0000 |
| 1072 | @@ -776,24 +776,6 @@ |
| 1073 | description=_('Security contact (obsolete; always None)')), |
| 1074 | ('devel', dict(exported=False)), as_of='1.0') |
| 1075 | |
| 1076 | - def checkPrivateBugsTransitionAllowed(private_bugs, user): |
| 1077 | - """Can the private_bugs attribute be changed to the value by the user? |
| 1078 | - |
| 1079 | - Generally, the permission is restricted to ~registry or ~admin or |
| 1080 | - bug supervisors. |
| 1081 | - In addition, a valid commercial subscription is required to turn on |
| 1082 | - private bugs when being done by a bug supervisor. However, no |
| 1083 | - commercial subscription is required to turn off private bugs. |
| 1084 | - """ |
| 1085 | - |
| 1086 | - @mutator_for(private_bugs) |
| 1087 | - @call_with(user=REQUEST_USER) |
| 1088 | - @operation_parameters(private_bugs=copy_field(private_bugs)) |
| 1089 | - @export_write_operation() |
| 1090 | - @operation_for_version("devel") |
| 1091 | - def setPrivateBugs(private_bugs, user): |
| 1092 | - """Mutator for private_bugs that checks entitlement.""" |
| 1093 | - |
| 1094 | def getAllowedBugInformationTypes(): |
| 1095 | """Get the information types that a bug in this project can have. |
| 1096 | |
| 1097 | |
| 1098 | === modified file 'lib/lp/registry/model/product.py' |
| 1099 | --- lib/lp/registry/model/product.py 2012-10-11 04:14:37 +0000 |
| 1100 | +++ lib/lp/registry/model/product.py 2012-10-11 04:47:20 +0000 |
| 1101 | @@ -52,7 +52,6 @@ |
| 1102 | implements, |
| 1103 | providedBy, |
| 1104 | ) |
| 1105 | -from zope.security.interfaces import Unauthorized |
| 1106 | from zope.security.proxy import removeSecurityProxy |
| 1107 | |
| 1108 | from lp.answers.enums import QUESTION_STATUS_DEFAULT_SEARCH |
| 1109 | @@ -156,7 +155,6 @@ |
| 1110 | LicenseStatus, |
| 1111 | ) |
| 1112 | from lp.registry.interfaces.productrelease import IProductReleaseSet |
| 1113 | -from lp.registry.interfaces.role import IPersonRoles |
| 1114 | from lp.registry.model.announcement import MakesAnnouncements |
| 1115 | from lp.registry.model.commercialsubscription import CommercialSubscription |
| 1116 | from lp.registry.model.distribution import Distribution |
| 1117 | @@ -546,8 +544,7 @@ |
| 1118 | notNull=True, default=False) |
| 1119 | project_reviewed = BoolCol(dbName='reviewed', notNull=True, default=False) |
| 1120 | reviewer_whiteboard = StringCol(notNull=False, default=None) |
| 1121 | - private_bugs = BoolCol( |
| 1122 | - dbName='private_bugs', notNull=True, default=False) |
| 1123 | + private_bugs = False |
| 1124 | bug_sharing_policy = EnumCol( |
| 1125 | enum=BugSharingPolicy, notNull=False, default=None) |
| 1126 | branch_sharing_policy = EnumCol( |
| 1127 | @@ -608,40 +605,6 @@ |
| 1128 | notNull=True, default=False, |
| 1129 | storm_validator=_validate_license_approved) |
| 1130 | |
| 1131 | - def checkPrivateBugsTransitionAllowed(self, private_bugs, user): |
| 1132 | - """See `IProductPublic`.""" |
| 1133 | - from lp.security import ( |
| 1134 | - BugTargetOwnerOrBugSupervisorOrAdmins, |
| 1135 | - ModerateByRegistryExpertsOrAdmins, |
| 1136 | - ) |
| 1137 | - if user is not None: |
| 1138 | - person_roles = IPersonRoles(user) |
| 1139 | - moderator_check = ModerateByRegistryExpertsOrAdmins(self) |
| 1140 | - moderator = moderator_check.checkAuthenticated(person_roles) |
| 1141 | - if moderator: |
| 1142 | - return True |
| 1143 | - |
| 1144 | - bug_supervisor_check = BugTargetOwnerOrBugSupervisorOrAdmins(self) |
| 1145 | - bug_supervisor = ( |
| 1146 | - bug_supervisor_check.checkAuthenticated(person_roles)) |
| 1147 | - if (bug_supervisor and |
| 1148 | - (not private_bugs |
| 1149 | - or self.has_current_commercial_subscription)): |
| 1150 | - return |
| 1151 | - if private_bugs: |
| 1152 | - raise CommercialSubscribersOnly( |
| 1153 | - 'A valid commercial subscription is required to turn on ' |
| 1154 | - 'default private bugs.') |
| 1155 | - raise Unauthorized( |
| 1156 | - 'Only bug supervisors can turn off default private bugs.') |
| 1157 | - |
| 1158 | - def setPrivateBugs(self, private_bugs, user): |
| 1159 | - """ See `IProductEditRestricted`.""" |
| 1160 | - if self.private_bugs == private_bugs: |
| 1161 | - return |
| 1162 | - self.checkPrivateBugsTransitionAllowed(private_bugs, user) |
| 1163 | - self.private_bugs = private_bugs |
| 1164 | - |
| 1165 | def _prepare_to_set_sharing_policy(self, var, enum, kind, allowed_types): |
| 1166 | if (var not in [enum.PUBLIC, enum.FORBIDDEN] and |
| 1167 | not self.has_current_commercial_subscription): |
| 1168 | @@ -683,11 +646,9 @@ |
| 1169 | return FREE_INFORMATION_TYPES |
| 1170 | |
| 1171 | def getDefaultBugInformationType(self): |
| 1172 | - """See `IDistribution.`""" |
| 1173 | + """See `IProduct.`""" |
| 1174 | if self.bug_sharing_policy is not None: |
| 1175 | return BUG_POLICY_DEFAULT_TYPES[self.bug_sharing_policy] |
| 1176 | - elif self.private_bugs: |
| 1177 | - return InformationType.USERDATA |
| 1178 | else: |
| 1179 | return InformationType.PUBLIC |
| 1180 | |
| 1181 | |
| 1182 | === modified file 'lib/lp/registry/model/productjob.py' |
| 1183 | --- lib/lp/registry/model/productjob.py 2012-09-19 06:39:47 +0000 |
| 1184 | +++ lib/lp/registry/model/productjob.py 2012-10-11 04:47:20 +0000 |
| 1185 | @@ -473,7 +473,6 @@ |
| 1186 | self.product.active = False |
| 1187 | else: |
| 1188 | naked_product = removeSecurityProxy(self.product) |
| 1189 | - naked_product.private_bugs = False |
| 1190 | naked_product.setBranchSharingPolicy(BranchSharingPolicy.FORBIDDEN) |
| 1191 | naked_product.setBugSharingPolicy(BugSharingPolicy.FORBIDDEN) |
| 1192 | for series in self.product.series: |
| 1193 | |
| 1194 | === modified file 'lib/lp/registry/tests/test_product.py' |
| 1195 | --- lib/lp/registry/tests/test_product.py 2012-10-11 04:14:37 +0000 |
| 1196 | +++ lib/lp/registry/tests/test_product.py 2012-10-11 04:47:20 +0000 |
| 1197 | @@ -275,86 +275,6 @@ |
| 1198 | closed_team = self.factory.makeTeam(membership_policy=policy) |
| 1199 | self.factory.makeProduct(owner=closed_team) |
| 1200 | |
| 1201 | - def test_private_bugs_on_not_allowed_for_anonymous(self): |
| 1202 | - # Anonymous cannot turn on private bugs. |
| 1203 | - product = self.factory.makeProduct() |
| 1204 | - self.assertRaises( |
| 1205 | - CommercialSubscribersOnly, |
| 1206 | - product.checkPrivateBugsTransitionAllowed, True, None) |
| 1207 | - |
| 1208 | - def test_private_bugs_off_not_allowed_for_anonymous(self): |
| 1209 | - # Anonymous cannot turn private bugs off. |
| 1210 | - product = self.factory.makeProduct() |
| 1211 | - self.assertRaises( |
| 1212 | - Unauthorized, |
| 1213 | - product.checkPrivateBugsTransitionAllowed, False, None) |
| 1214 | - |
| 1215 | - def test_private_bugs_on_not_allowed_for_unauthorised(self): |
| 1216 | - # Unauthorised users cannot turn on private bugs. |
| 1217 | - product = self.factory.makeProduct() |
| 1218 | - someone = self.factory.makePerson() |
| 1219 | - self.assertRaises( |
| 1220 | - CommercialSubscribersOnly, |
| 1221 | - product.checkPrivateBugsTransitionAllowed, True, someone) |
| 1222 | - |
| 1223 | - def test_private_bugs_off_not_allowed_for_unauthorised(self): |
| 1224 | - # Unauthorised users cannot turn private bugs off. |
| 1225 | - product = self.factory.makeProduct() |
| 1226 | - someone = self.factory.makePerson() |
| 1227 | - self.assertRaises( |
| 1228 | - Unauthorized, |
| 1229 | - product.checkPrivateBugsTransitionAllowed, False, someone) |
| 1230 | - |
| 1231 | - def test_private_bugs_on_allowed_for_moderators(self): |
| 1232 | - # Moderators can turn on private bugs. |
| 1233 | - product = self.factory.makeProduct() |
| 1234 | - registry_expert = self.factory.makeRegistryExpert() |
| 1235 | - product.checkPrivateBugsTransitionAllowed(True, registry_expert) |
| 1236 | - |
| 1237 | - def test_private_bugs_off_allowed_for_moderators(self): |
| 1238 | - # Moderators can turn private bugs off. |
| 1239 | - product = self.factory.makeProduct() |
| 1240 | - registry_expert = self.factory.makeRegistryExpert() |
| 1241 | - product.checkPrivateBugsTransitionAllowed(False, registry_expert) |
| 1242 | - |
| 1243 | - def test_private_bugs_on_allowed_for_commercial_subscribers(self): |
| 1244 | - # Commercial subscribers can turn on private bugs. |
| 1245 | - bug_supervisor = self.factory.makePerson() |
| 1246 | - product = self.factory.makeProduct(bug_supervisor=bug_supervisor) |
| 1247 | - self.factory.makeCommercialSubscription(product) |
| 1248 | - product.checkPrivateBugsTransitionAllowed(True, bug_supervisor) |
| 1249 | - |
| 1250 | - def test_private_bugs_on_not_allowed_for_expired_subscribers(self): |
| 1251 | - # Expired Commercial subscribers cannot turn on private bugs. |
| 1252 | - bug_supervisor = self.factory.makePerson() |
| 1253 | - product = self.factory.makeProduct(bug_supervisor=bug_supervisor) |
| 1254 | - self.factory.makeCommercialSubscription(product, expired=True) |
| 1255 | - self.assertRaises( |
| 1256 | - CommercialSubscribersOnly, |
| 1257 | - product.setPrivateBugs, True, bug_supervisor) |
| 1258 | - |
| 1259 | - def test_private_bugs_off_allowed_for_bug_supervisors(self): |
| 1260 | - # Bug supervisors can turn private bugs off. |
| 1261 | - bug_supervisor = self.factory.makePerson() |
| 1262 | - product = self.factory.makeProduct(bug_supervisor=bug_supervisor) |
| 1263 | - product.checkPrivateBugsTransitionAllowed(False, bug_supervisor) |
| 1264 | - |
| 1265 | - def test_unauthorised_set_private_bugs_raises(self): |
| 1266 | - # Test Product.setPrivateBugs raises an error if user unauthorised. |
| 1267 | - product = self.factory.makeProduct() |
| 1268 | - someone = self.factory.makePerson() |
| 1269 | - self.assertRaises( |
| 1270 | - CommercialSubscribersOnly, |
| 1271 | - product.setPrivateBugs, True, someone) |
| 1272 | - |
| 1273 | - def test_set_private_bugs(self): |
| 1274 | - # Test Product.setPrivateBugs() |
| 1275 | - bug_supervisor = self.factory.makePerson() |
| 1276 | - product = self.factory.makeProduct(bug_supervisor=bug_supervisor) |
| 1277 | - self.factory.makeCommercialSubscription(product) |
| 1278 | - product.setPrivateBugs(True, bug_supervisor) |
| 1279 | - self.assertTrue(product.private_bugs) |
| 1280 | - |
| 1281 | def test_product_creation_grants_maintainer_access(self): |
| 1282 | # Creating a new product creates an access grant for the maintainer |
| 1283 | # for all default policies. |
| 1284 | @@ -598,8 +518,8 @@ |
| 1285 | |
| 1286 | layer = DatabaseFunctionalLayer |
| 1287 | |
| 1288 | - def makeProductWithPolicy(self, bug_sharing_policy, private_bugs=False): |
| 1289 | - product = self.factory.makeProduct(private_bugs=private_bugs) |
| 1290 | + def makeProductWithPolicy(self, bug_sharing_policy): |
| 1291 | + product = self.factory.makeProduct() |
| 1292 | self.factory.makeCommercialSubscription(product=product) |
| 1293 | with person_logged_in(product.owner): |
| 1294 | product.setBugSharingPolicy(bug_sharing_policy) |
| 1295 | @@ -614,24 +534,6 @@ |
| 1296 | self.assertEqual( |
| 1297 | InformationType.PUBLIC, product.getDefaultBugInformationType()) |
| 1298 | |
| 1299 | - def test_legacy_private_bugs(self): |
| 1300 | - # The deprecated private_bugs attribute overrides the default |
| 1301 | - # information type to USERDATA. |
| 1302 | - product = self.factory.makeLegacyProduct(private_bugs=True) |
| 1303 | - self.assertContentEqual( |
| 1304 | - FREE_INFORMATION_TYPES, product.getAllowedBugInformationTypes()) |
| 1305 | - self.assertEqual( |
| 1306 | - InformationType.USERDATA, product.getDefaultBugInformationType()) |
| 1307 | - |
| 1308 | - def test_sharing_policy_overrides_private_bugs(self): |
| 1309 | - # bug_sharing_policy overrides private_bugs. |
| 1310 | - product = self.makeProductWithPolicy( |
| 1311 | - BugSharingPolicy.PUBLIC, private_bugs=True) |
| 1312 | - self.assertContentEqual( |
| 1313 | - FREE_INFORMATION_TYPES, product.getAllowedBugInformationTypes()) |
| 1314 | - self.assertEqual( |
| 1315 | - InformationType.PUBLIC, product.getDefaultBugInformationType()) |
| 1316 | - |
| 1317 | def test_sharing_policy_public_or_proprietary(self): |
| 1318 | # bug_sharing_policy can enable Proprietary. |
| 1319 | product = self.makeProductWithPolicy( |
| 1320 | |
| 1321 | === modified file 'lib/lp/registry/tests/test_product_webservice.py' |
| 1322 | --- lib/lp/registry/tests/test_product_webservice.py 2012-10-08 10:07:11 +0000 |
| 1323 | +++ lib/lp/registry/tests/test_product_webservice.py 2012-10-11 04:47:20 +0000 |
| 1324 | @@ -67,7 +67,7 @@ |
| 1325 | def test_branch_sharing_policy_non_commercial(self): |
| 1326 | # An API attempt to set a commercial-only branch_sharing_policy |
| 1327 | # on a non-commercial project returns Forbidden. |
| 1328 | - product = self.factory.makeLegacyProduct() |
| 1329 | + product = self.factory.makeProduct() |
| 1330 | webservice = webservice_for_person( |
| 1331 | product.owner, permission=OAuthPermission.WRITE_PRIVATE) |
| 1332 | response = self.patch( |
| 1333 | @@ -76,7 +76,8 @@ |
| 1334 | status=403, |
| 1335 | body=('A current commercial subscription is required to use ' |
| 1336 | 'proprietary branches.'))) |
| 1337 | - self.assertIs(None, product.branch_sharing_policy) |
| 1338 | + self.assertEqual( |
| 1339 | + BranchSharingPolicy.PUBLIC, product.branch_sharing_policy) |
| 1340 | |
| 1341 | def test_bug_sharing_policy_can_be_set(self): |
| 1342 | # bug_sharing_policy can be set via the API. |
| 1343 | @@ -93,7 +94,7 @@ |
| 1344 | def test_bug_sharing_policy_non_commercial(self): |
| 1345 | # An API attempt to set a commercial-only bug_sharing_policy |
| 1346 | # on a non-commercial project returns Forbidden. |
| 1347 | - product = self.factory.makeLegacyProduct() |
| 1348 | + product = self.factory.makeProduct() |
| 1349 | webservice = webservice_for_person( |
| 1350 | product.owner, permission=OAuthPermission.WRITE_PRIVATE) |
| 1351 | response = self.patch( |
| 1352 | @@ -102,7 +103,8 @@ |
| 1353 | status=403, |
| 1354 | body=('A current commercial subscription is required to use ' |
| 1355 | 'proprietary bugs.'))) |
| 1356 | - self.assertIs(None, product.bug_sharing_policy) |
| 1357 | + self.assertEqual( |
| 1358 | + BugSharingPolicy.PUBLIC, product.bug_sharing_policy) |
| 1359 | |
| 1360 | def fetch_product(self, webservice, product, api_version): |
| 1361 | return webservice.get( |
| 1362 | |
| 1363 | === modified file 'lib/lp/registry/tests/test_productjob.py' |
| 1364 | --- lib/lp/registry/tests/test_productjob.py 2012-09-28 06:15:58 +0000 |
| 1365 | +++ lib/lp/registry/tests/test_productjob.py 2012-10-11 04:47:20 +0000 |
| 1366 | @@ -572,7 +572,6 @@ |
| 1367 | owner=product.owner, product=product, |
| 1368 | information_type=InformationType.USERDATA) |
| 1369 | with person_logged_in(product.owner): |
| 1370 | - product.setPrivateBugs(True, product.owner) |
| 1371 | product.development_focus.branch = private_branch |
| 1372 | self.expire_commercial_subscription(product) |
| 1373 | job = self.JOB_CLASS.create(product, reviewer) |
| 1374 | @@ -712,7 +711,6 @@ |
| 1375 | owner=product.owner, product=product, |
| 1376 | information_type=InformationType.USERDATA) |
| 1377 | with person_logged_in(product.owner): |
| 1378 | - product.setPrivateBugs(True, product.owner) |
| 1379 | public_series = product.development_focus |
| 1380 | public_series.branch = public_branch |
| 1381 | private_series = product.newSeries( |
| 1382 | @@ -723,8 +721,7 @@ |
| 1383 | job = CommercialExpiredJob.create(product, reviewer) |
| 1384 | job._deactivateCommercialFeatures() |
| 1385 | clear_property_cache(product) |
| 1386 | - self.assertIs(True, product.active) |
| 1387 | - self.assertIs(False, product.private_bugs) |
| 1388 | + self.assertTrue(product.active) |
| 1389 | self.assertEqual( |
| 1390 | BranchSharingPolicy.FORBIDDEN, product.branch_sharing_policy) |
| 1391 | self.assertEqual( |
| 1392 | |
| 1393 | === modified file 'lib/lp/security.py' |
| 1394 | --- lib/lp/security.py 2012-10-08 10:07:11 +0000 |
| 1395 | +++ lib/lp/security.py 2012-10-11 04:47:20 +0000 |
| 1396 | @@ -14,13 +14,8 @@ |
| 1397 | from operator import methodcaller |
| 1398 | |
| 1399 | from storm.expr import ( |
| 1400 | - And, |
| 1401 | - Exists, |
| 1402 | - Or, |
| 1403 | Select, |
| 1404 | - SQL, |
| 1405 | Union, |
| 1406 | - With, |
| 1407 | ) |
| 1408 | from zope.component import ( |
| 1409 | getUtility, |
| 1410 | @@ -176,7 +171,6 @@ |
| 1411 | ) |
| 1412 | from lp.registry.interfaces.wikiname import IWikiName |
| 1413 | from lp.registry.model.person import Person |
| 1414 | -from lp.registry.model.teammembership import TeamParticipation |
| 1415 | from lp.services.config import config |
| 1416 | from lp.services.database.lpstorm import IStore |
| 1417 | from lp.services.identity.interfaces.account import IAccount |
| 1418 | |
| 1419 | === modified file 'lib/lp/testing/factory.py' |
| 1420 | --- lib/lp/testing/factory.py 2012-10-10 23:38:44 +0000 |
| 1421 | +++ lib/lp/testing/factory.py 2012-10-11 04:47:20 +0000 |
| 1422 | @@ -963,10 +963,9 @@ |
| 1423 | self, name=None, project=None, displayname=None, |
| 1424 | licenses=None, owner=None, registrant=None, |
| 1425 | title=None, summary=None, official_malone=None, |
| 1426 | - translations_usage=None, bug_supervisor=None, private_bugs=False, |
| 1427 | - driver=None, icon=None, bug_sharing_policy=None, |
| 1428 | - branch_sharing_policy=None, specification_sharing_policy=None, |
| 1429 | - information_type=None): |
| 1430 | + translations_usage=None, bug_supervisor=None, driver=None, icon=None, |
| 1431 | + bug_sharing_policy=None, branch_sharing_policy=None, |
| 1432 | + specification_sharing_policy=None, information_type=None): |
| 1433 | """Create and return a new, arbitrary Product.""" |
| 1434 | if owner is None: |
| 1435 | owner = self.makePerson() |
| 1436 | @@ -1009,8 +1008,6 @@ |
| 1437 | naked_product.bug_supervisor = bug_supervisor |
| 1438 | if driver is not None: |
| 1439 | naked_product.driver = driver |
| 1440 | - if private_bugs: |
| 1441 | - naked_product.private_bugs = private_bugs |
| 1442 | if ((branch_sharing_policy and |
| 1443 | branch_sharing_policy != BranchSharingPolicy.PUBLIC) or |
| 1444 | (bug_sharing_policy and |
| 1445 | @@ -1031,20 +1028,6 @@ |
| 1446 | |
| 1447 | return product |
| 1448 | |
| 1449 | - def makeLegacyProduct(self, **kwargs): |
| 1450 | - # Create a product which does not have any of the new bug and branch |
| 1451 | - # sharing policies set. New products have these set to default values |
| 1452 | - # but we need to test for existing products which have not yet been |
| 1453 | - # migrated. |
| 1454 | - # XXX This method can be removed when branch visibility policy dies. |
| 1455 | - product = self.makeProduct(**kwargs) |
| 1456 | - # Since createProduct() doesn't create PRIVATESECURITY/USERDATA. |
| 1457 | - removeSecurityProxy(product)._ensurePolicies([ |
| 1458 | - InformationType.PRIVATESECURITY, InformationType.USERDATA]) |
| 1459 | - removeSecurityProxy(product).bug_sharing_policy = None |
| 1460 | - removeSecurityProxy(product).branch_sharing_policy = None |
| 1461 | - return product |
| 1462 | - |
| 1463 | def makeProductSeries(self, product=None, name=None, owner=None, |
| 1464 | summary=None, date_created=None, branch=None): |
| 1465 | """Create a new, arbitrary ProductSeries. |

The clause first created by Elliot makes no sense once you remove the check for .private_bugs. It wants to subscribe someone because sharing is not on, the next line asks target. bug_sharing_ policy is None'
and params.
We know this line must evaluate to false for this branch to land, so the entire block can go. There may be other tests that can also go.