[01:23] <maozhou> How to delete a package on launchpad?
[01:24] <wgrant> maozhou: From a PPA or from a primary archive?
[01:25] <maozhou> from a primary archive
[01:25] <wgrant> maozhou: Use the remove-package tool from lp:ubuntu-archive-tools
[01:26] <blr> wgrant: thanks, had some vague recollection that secure_codebrowse_root was wrong
[01:26] <maozhou> wgrant: ok ,thank you.
[01:33] <wgrant> blr: Shall we deploy?
[01:34] <blr> wgrant: sounds good.
[01:34] <blr> wgrant: oh, sourcedeps.cache presumably is generated?
[01:34] <wgrant> blr: Yep, update sourcedeps.conf, run update-sourceode, and sourcedeps.cache will be automatically updated.
[01:48] <maozhou> wgrant: What's the parameter of "-A ARCHIVE" in remove-package ?
[02:14] <wgrant> maozhou: For a primary archive it is the name of the distro. See ARCHIVE_REFERENCE_TEMPLATES in lib/lp/soyuz/model/archive.py.
[02:21] <maozhou> wgrant: I ran "LP_DISABLE_SSL_CERTIFICATE_VALIDATION=1 ./remove-package  -m "dput by name ubuntu,so the kord package can't dput" -d ubuntu -A ubuntu -s utopic webkitgtk" , but It's error . Error message:"lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
[02:21] <maozhou> "
[02:22] <wgrant> maozhou: The user that you're authenticated as may not have permission to remove packages from the primary archive.
[02:23] <wgrant> maozhou: Try `edit-acl -l dev -A ubuntu -t admin -p admins --pocket Release add` first
[02:23] <wgrant> To give the ~admins team admin rights on the release pocket of the Ubuntu primary archive.
[02:31] <maozhou> wgrant: After running  `edit-acl -l dev -A ubuntu -t admin -p admins --pocket Release add` ,  then delete the package, the same error message.
[02:32] <wgrant> maozhou: Is the user as whom your launchpadlib is authenticated a member of ~admins?
[03:00] <maozhou> wgrant: how to see my launchpadlib is authenticated a member of ~admins?
[04:40] <wgrant> maozhou: Which user is your launchpadlib authenticated as?
[06:11] <maozhou> wgrant: admin@canonical.dev
[06:12] <wgrant> maozhou: That user doesn't exist in the sampledata.
[06:19] <maozhou> wgrant: I find username is "username: System-wide: Ubuntu (LaunchpadServer)@https://api.launchpad.net/"  by running seahorse.
[06:20] <wgrant> maozhou: That doesn't tell you which user it is.
[06:21] <wgrant> What does "lp.me" say?
[06:21] <wgrant> Where lp is a relevant launchpadlib Launchpad object.
[06:22] <maozhou> where is lp.me?
[06:23] <wgrant> In your favourite Launchpad API client.
[06:23] <wgrant> eg. lp-shell
[06:26] <maozhou> I can't find any file which named lp-shell or  lp.me
[06:27] <wgrant> lp.me is a Python expression that you can evaluate inside lp-shell. lp-shell is a wrapper around launchpadlib.
[06:30] <maozhou> But ,how to find the lp-shell?
[06:30] <wgrant> wgrant@lamuella:~$ apt-cache search lp-shell
[06:30] <wgrant> lptools - Tools for working with Launchpad
[06:32] <maozhou> In folder ubuntu-archive-tools?
[06:32] <wgrant> No, it's an Ubuntu package.
[06:53] <maozhou> wgrant: print lp.me in lp-shell , It's output "https://api.launchpad.net/1.0/~maozhou"
[06:54] <wgrant> maozhou: That's production
[06:54] <wgrant> lp-shell dev devel
[06:57] <maozhou> How to get that package? I installed it by running "apt-get install lptools", is it incorrect?
[06:57] <wgrant> That's correct.
[06:57] <wgrant> But it connects to production by default.
[06:57] <wgrant> Your instance is not running at launchpad.net, as far as I am aware.
[07:00] <maozhou> But how to make it to connect to dev devel ?
[07:04] <wgrant> "lp-shell dev devel"
[07:31] <maozhou> wgrant: running  lp-shell dev devel  can't print  lp.me,http://imgur.com/eEDwMSl
[07:33] <wgrant> maozhou: If you don't have a valid certificate set up for your Launchpad instance, you'll need to use LP_DISABLE_SSL_CERTIFICATE_VALIDATION.
[07:35] <maozhou> wgrant: Yes I ran it as "LP_DISABLE_SSL_CERTIFICATE_VALIDATION=1  lp-shell dev devel"
[07:35] <wgrant> maozhou: Are you sure?
[07:39] <maozhou> wgrant: Yes , I'm sure
[07:39] <maozhou> http://imgur.com/7Q2MdMU
[07:40] <wgrant> maozhou: Which version of python-lazr.restfulclient is installed where you're running lp-shell?
[07:41] <maozhou> wgrant: The version of lptools is "0.0.1~bzr34-1"
[07:50] <wgrant> maozhou: Oh, it's a precise host?
[07:50] <maozhou> wgrant: The version of python-lazr.restfulclient is 0.12.0
[07:51] <maozhou> wgrant: Yes , it's 12.04.5  64bit OS.
[07:53] <wgrant> maozhou: That environment variable was only added in 0.13.0. How were you running the scripts from lp:ubuntu-archive-tools?
[07:53] <wgrant> That can't have been from that host.
[07:58] <maozhou> wgrant: which scripts of ubuntu-archive-tools ?  I ran most of them succeed
[07:58] <wgrant> maozhou: But they also wouldn't support LP_DISABLE_SSL_CERTIFICATE_VALIDATION.
[07:58] <wgrant> So I don't see how they could have connected.
[08:01] <maozhou> wgrant: But I can run "LP_DISABLE_SSL_CERTIFICATE_VALIDATION=1   ./manage-chroot -l dev -s utopic -a i386 -f chroot-ubuntu-utopic-i386.tar.bz2 set" and "LP_DISABLE_SSL_CERTIFICATE_VALIDATION=1 ./queue  -l dev -s utopic  accept"  succeed.
[08:03] <wgrant> maozhou: And your copy of ubuntu-archive-tools is also running on that precise machine, and is not patched in any way?
[08:06] <maozhou> wgrant: Yes , I copyed the folder ubuntu-archive-tools   from another machine, and is not patched in any way.
[08:10] <wgrant> maozhou: Does it succeed without the environment variable set?
[08:10] <wgrant> On precise it should not be checking the environment variable at all.
[08:11] <maozhou> wgrant: Yes, it succeed without the environment variable set.
[08:14] <wgrant> maozhou: You'll need to debug this yourself.
[08:14] <wgrant> maozhou: lp-shell won't accept LP_DISABLE_SSL_CERTIFICATE_VALIDATION on precise, though.
[08:14] <wgrant> You need trusty for that.
[08:16] <maozhou> wgrant: ok
[08:18] <maozhou> wgrant:  If update python-lazr.restfulclient to 0.13.0 ,is it efficient?
[08:18] <wgrant> maozhou: You may also need a new launchpadlib.
[08:21] <maozhou> wgrant: ok, thank you.
[09:10] <maozhou> wgrant: After running "LP_DISABLE_SSL_CERTIFICATE_VALIDATION=1 ./remove-package  -m "dput by name ubuntu,so the kord package can't dput" -d ubuntu -A ubuntu -s utopic webkitgtk", it's link to "https://launchpad.net/+authorize-token?oauth_token=KTL2Pdv4T3FsZn4l5zBT&allow_permission=DESKTOP_INTEGRATION",not link to launchpad.dev,is it the reason of "HTTP Error 401:unauthorized"?
[09:22] <cjwatson> maozhou: remove-package -l dev
[09:22] <cjwatson> Otherwise it defaults to launchpad.net production.
[09:33] <maozhou> cjwatson:  Oh, yes , that's the reason.  the script run succedd, but the package  is still exits.
[09:35] <cjwatson> Check the publishing history to see if the removal happened (https://launchpad.dev/ubuntu/+source/webkitgtk/+publishinghistory)
[09:35] <cjwatson> If so, you just need to run the publisher.
[09:37] <cjwatson> blr,wgrant: quick tweak to the new UI on Product:+configure-code - https://code.launchpad.net/~cjwatson/launchpad/project-default-git-location/+merge/263486
[09:38] <wgrant> cjwatson: Good catch.
[09:42] <cjwatson> wgrant: thanks
[09:44] <cjwatson> wgrant: did you want to check that the backfilling on staging is sensible before FDT, or are you already confident in that?
[09:44] <cjwatson> seems to complete in time at least
[09:45] <wgrant> cjwatson: a) it's fine
[09:45] <wgrant> b) i'm doing it hot :)
[09:45] <wgrant> KEY SHARE ftw.
[09:45] <cjwatson> oh yes I see the other channel now
[09:46] <maozhou> cjwatson:  The removal happened (https://launchpad.dev/ubuntu/+source/webkitgtk/+publishinghistory) , but after running publisher , the package is still exits.
[09:49] <cjwatson> Still exists in what sense?
[09:49] <cjwatson> Remember that it may still be in the published archive if the same package is also published in other suites.
[09:50] <wgrant> And it will continue exist in pool/ until process-death-row has been run.
[09:50] <cjwatson> Also, if utopic is "Current Stable Release" or "Supported", you can't actually remove packages from it.
[09:51] <cjwatson> Your removal message makes no sense to me, so I'm not actually sure why you're trying to do thi
[09:51] <cjwatson> s
[09:56] <maozhou> cjwatson:  It  still in published archive, but there is no same package published in other suites, and the status of utopic is "Active Development"
[09:58] <cjwatson> maozhou: When you say that it's still in the archive, do you mean that it's still in the Packages and Sources index files under dists/utopic/, or that the files are still in pool/, or both?
[09:58] <cjwatson> blr: Do we maybe want to restrict Product.inferred_vcs to only consider IBranchCollection(self).withLifecycleStatus(DEFAULT_BRANCH_STATUS_IN_LISTING), i.e. branches that would show up in default branch listings?
[09:59] <wgrant> That's potentially perilous in terms of query performance.
[10:00] <wgrant> It's likely that code.launchpad.net/launchpad's load time would double in that case.
[10:00] <cjwatson> There isn't a decent index on that?
[10:00] <wgrant> Most statuses are shown.
[10:00] <wgrant> And active statuses dominate the table.
[10:00] <wgrant> Postgres would probably judge index use unwise.
[10:01]  * cjwatson tests
[10:03] <wgrant> I'm also not sure it's worth it now that the default can be explicitly selected.
[10:04] <wgrant> But if it's cheap, then sure.
[10:04] <maozhou> cjwatson: In pool and "https://launchpad.dev/ubuntu/utopic/+builds"
[10:09] <cjwatson> +builds will never go away.  If it was built, that's historical fact.
[10:09] <cjwatson> As for pool, what wgrant said; that only goes away after process-death-row has run.
[10:10] <cjwatson> wgrant: http://paste.ubuntu.com/11803804/
[10:11] <cjwatson> (inferred_vcs is using is_empty())
[10:11] <wgrant> cjwatson: Right, so it's as I suspected. In the case that there are no active branches, it will scan the entire set.
[10:12] <wgrant> Most projects don't have terribly many, I will concede.
[10:12] <cjwatson> Well, I'm not sure we know that from this example; the planner might have noticed that it's quickest this way for launchpad.
[10:13]  * cjwatson tries to think of a project with no branches
[10:13] <cjwatson> Or rather only inactive ones
[10:14] <maozhou> Where is process-death-row?
[10:15] <cjwatson> maozhou: scripts/
[10:15] <cjwatson> Oh, there's no index on Branch.lifecycle_status
[10:15] <cjwatson> Weird
[10:15] <wgrant> postgres will relatively rarely use indices on large sets.
[10:16] <wgrant> That is, where it would have to perform many scans.
[10:18] <maozhou> cjwatson: +builds will never go away? If I delete a package, can I dput the same version of package to this test launchpad server?
[10:23] <cjwatson> maozhou: No.
[10:23] <cjwatson> maozhou: Change the version.  Versions are cheap.
[10:23] <cjwatson> Add "build1" to the end or something.
[10:23] <cjwatson> maozhou: This is why I was asking what you were trying to do, since I suspected it might be something impossible :-)
[10:24] <cjwatson> It doesn't matter if you've deleted the package; Launchpad will never let you reuse the same package/version with different contents within the same archive.
[10:33] <cjwatson> wgrant: Do you know why so many more projects use EMBARGOED on dogfood than on wherever you tested?  The DF count is 113
[10:34] <wgrant> cjwatson: AND active
[10:34] <wgrant> Nobody actually deliberately chooses it.
[10:34] <cjwatson> Aha
[10:35] <maozhou> cjwatson: Ok , I understand  ,thank you .
[20:51] <blr> cjwatson: hmm, not something I considered but that does sound sensible - assuming we add an index to lifecycle, would it be worth it?
[21:21] <cjwatson> blr: I think wgrant has persuaded me that it may not be worth the trouble
[23:02] <wgrant> :)