Merge lp:~flacoste/launchpad/cleanup into lp:launchpad

Proposed by Francis J. Lacoste on 2010-04-28
Status: Merged
Approved by: Edwin Grubbs on 2010-04-28
Approved revision: no longer in the source branch.
Merged at revision: 10865
Proposed branch: lp:~flacoste/launchpad/cleanup
Merge into: lp:launchpad
Diff against target: 536 lines (+0/-472)
9 files modified
doc/calendars.txt (+0/-90)
doc/localdomain-setup.txt (+0/-68)
doc/mochikit-packed.txt (+0/-36)
doc/poexport.txt (+0/-140)
doc/rosetta-cmdline.txt (+0/-41)
doc/user-manual/Makefile (+0/-7)
doc/user-manual/rosetta-upstream-setup.xml (+0/-58)
doc/zope3sins.txt (+0/-7)
lib/canonical/launchpad/scripts/__init__.py (+0/-25)
To merge this branch: bzr merge lp:~flacoste/launchpad/cleanup
Reviewer Review Type Date Requested Status
Edwin Grubbs (community) 2010-04-28 Approve on 2010-04-28
Review via email: mp+24367@code.launchpad.net

Commit Message

Remove obsolete files in doc/ and some other classes that should have gone with CustomConfigurationMachine.

Description of the Change

That's a cleanup branch that removes obsolete document files in doc/ and some
classes that are now unused and should have been removed at the same time than
the CustomConfigurationMachine.

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting changed files:
  lib/canonical/launchpad/scripts/__init__.py

To post a comment you must log in.
Edwin Grubbs (edwin-grubbs) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file 'doc/calendars.txt'
2--- doc/calendars.txt 2005-10-31 18:29:12 +0000
3+++ doc/calendars.txt 1970-01-01 00:00:00 +0000
4@@ -1,90 +0,0 @@
5-Calendars
6-=========
7-
8-Some objects in Launchpad have calendars. Actually, currently only persons
9-(and teams) have calendars, but it is planned to add them to products and
10-projects as well.
11-
12-Calendaring code makes use of the SchoolBell library (Python package
13-`schoolbell`), which comes from the SchoolTool project (www.schooltool.org).
14-
15-Launchpad calendars have some additional attributes such as title and owner,
16-defined in the ILaunchpadCalendar interface (that extends schoolbell's
17-IEditCalendar). Calendars are stored in the PostgreSQL database.
18-
19-
20-Hooking up calendars to objects
21--------------------------------
22-
23-Objects that have calendars can be adapted to ILaunchpadCalendar.
24-There is an adapter registered for ICalendarOwner that returns the
25-'calendar' attribute of an object, so the simplest thing for adding a
26-calendar to an object is to make sure this attribute exists, and
27-declare that the object provides ICalendarOwner.
28-
29-There is a view named '+calendar' registered for ICalendarOwner, so if
30-an object (e.g. a person) that has a calendar can be reached at a
31-certain URL, accessing the calendar of that object is just a matter of
32-going to URL + '/+calendar'.
33-
34-There is also a view named 'calendar' registered for the root object.
35-This view provides a merged view of the calendars the user has
36-subscribed to.
37-
38-There is a set of views available for ICalendar, and a traverser that
39-interprets URL segments as dates.
40-
41-
42-Interoperability with calendaring clients
43------------------------------------------
44-
45-Every calendar can be exported as an iCalendar file via HTTP. You can
46-subscribe to these calendars from Mozilla Calendar (or Sunbird), Evolution,
47-KOrganizer, Apple's iCal, etc. The get the URL for getting an iCalendar file
48-just append '/calendar.ics' to the calendar URL, e.g.
49-
50- http://localhost:8085/foaf/persons/test/calendar/calendar.ics
51-
52-The ability to upload iCalendar files (and thus modify calendars stored in
53-Launchpad from these calendaring clients) is not hooked up yet. There is
54-an iCalendar parser in the schoolbell module, but the tricky part is to get
55-Zope 3 traversal (which is heavily customized in Launchpad) to actually
56-work for HTTP PUT requests.
57-
58-
59-Security
60---------
61-
62-All calendars are readable by everyone. Write access is restricted to
63-the calendar owner. The calendar owner is taken from the calendar's
64-parent:
65- * if the calendar belongs to a team, then it is owned by the team's
66- owner.
67- * if the calendar belongs to a person, then it is owned by the
68- person.
69- * project and product calendars are owned by their respective
70- owners.
71-
72-
73-TODO
74-----
75-
76-- Re-add recurring event support (it was disabled to make prototyping
77- easier). SchoolBell interfaces currently define the recurrence rule
78- as a single attribute providing one of four recurrence rule
79- interfaces; perhaps it can be simulated with a property. Or perhaps
80- SchoolBell's interfaces aren't general enough and could be changed
81- to be more convenient. Talk to me (Marius Gedminas,
82- <marius@pov.lt>) if you have ideas.
83-
84-- Write and hook up the iCalendar upload view (HTTP PUT requests).
85- Writing it should be easy -- use
86- schoolbell.icalendar.read_icalendar(). Hooking it up is difficult
87- (see the description above).
88- * After discussion, it has been decided not to provide webcal://
89- write access.
90-
91-
92-If you have any questions about the schoolbell library or calendaring in
93-Launchpad, feel free to email Marius Gedminas <marius@pov.lt>.
94-
95
96=== removed file 'doc/localdomain-setup.txt'
97--- doc/localdomain-setup.txt 2007-03-10 18:14:09 +0000
98+++ doc/localdomain-setup.txt 1970-01-01 00:00:00 +0000
99@@ -1,68 +0,0 @@
100-= Setting up launchpad local domains =
101-
102-We run Launchpad on development machines using Apache and virtual hosts,
103-to simulate the production environment as far as possible, and allow
104-us to use virtual hosts on our local machine.
105-
106-Here's how to set up your machine to do this. You need to do these operations
107-as the root user.
108-
109-== Modify your /etc/hosts ==
110-
111-Add this line to /etc/hosts:
112-{{{
113-127.0.0.88 launchpad.dev code.launchpad.dev answers.launchpad.dev blueprints.launchpad.dev bugs.launchpad.dev translation.launchpad.dev xmlrpc.launchpad.dev shipit.ubuntu.dev shipit.kubuntu.dev shipit.edubuntu.dev
114-}}}
115-
116-As we add more domains, you'll need to alter this line.
117-
118-== Set up apache ==
119-
120-If you have apache version 1 installed, remove it:
121-
122- sudo apt-get remove apache
123-
124-Install apache2:
125-
126- sudo apt-get install apache2
127-
128-Turn on proxying:
129-
130- sudo a2enmod proxy
131-
132-Set up virtual hosting:
133-
134-Create a file at /etc/apache2/sites-enabled/locallaunchpad
135-
136-{{{
137-sudo vim /etc/apache2/sites-enabled/locallaunchpad
138-}}}
139-
140-Put the following text in there.
141-
142-{{{
143-<VirtualHost 127.0.0.88:80>
144- ServerName launchpad.dev
145- ServerAlias *.launchpad.dev
146- LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
147- <Proxy *>
148- Order deny,allow
149- Allow from 127.0.0.0/255.0.0.0
150- </Proxy>
151- ProxyPreserveHost on
152- ProxyPass / http://localhost:8085/ retry=1
153-</VirtualHost>
154-}}}
155-
156-Reload apache:
157-
158- sudo /etc/init.d/apache2 reload
159-
160-== Use Launchpad ==
161-
162-As your normal user, run launchpad. You should be able to access it
163-at the following URLs:
164-
165- http://launchpad.dev/
166- http://blueprints.launchpad.dev/
167-
168
169=== removed file 'doc/mochikit-packed.txt'
170--- doc/mochikit-packed.txt 2007-03-12 19:04:23 +0000
171+++ doc/mochikit-packed.txt 1970-01-01 00:00:00 +0000
172@@ -1,36 +0,0 @@
173-To produce a packed MochiKit.js file:
174-
175- 1. Get a svn checkout of MochiKit.
176- 2. Run: python scripts/pack.py
177- 3. The packed MochiKit.js will be in
178- packed/MochiKit/MochiKit.js
179-
180-To remove top-level modules:
181-
182- 1. Edit the list MochiKit.MochiKit.SUBMODULES
183- that is in MochiKit/MochiKit.js
184- 2. Run pack again.
185-
186-We're currently using a packed MochiKit.js that includes:
187-
188- "Base",
189- "Iter",
190- "Logging",
191- "DateTime",
192- "Async",
193- "DOM",
194- "Style",
195- "Signal",
196-
197-And excludes:
198-
199- "Format"
200- "Selector"
201- "LoggingPane"
202- "Color"
203- "Position"
204- "Visual"
205-
206-This takes the size of MochiKit.js that we serve down from 172598 bytes to
207-97200 bytes.
208-
209
210=== removed file 'doc/poexport.txt'
211--- doc/poexport.txt 2005-10-31 18:29:12 +0000
212+++ doc/poexport.txt 1970-01-01 00:00:00 +0000
213@@ -1,140 +0,0 @@
214-Exporting PO Files From Rosetta
215-===============================
216-
217-Last Review: 26 Aug 2004 13:50 CEST
218-
219-This document describes the process we should follow to export a .po file from
220-Rosetta.
221-
222-The process here is not optimized. Perhaps there is a faster way to do it with
223-less queries and less steps, but that's outside the scope of this document.
224-
225-We need a temporary store for a list of POMsgSet.id that are already exported.
226-
227-Comments
228---------
229-
230- - What happens if we have a msgset in a POFile that is not available in the
231- POFile anymore and we see it again? Should we reuse it? For example, it
232- happens if we import a pofile with an obsolete msgset and when we import it
233- again, someone has deleted it. Also it could be interesting add as fuzzy
234- other translations from other modules (perhaps for Phase 2).
235-
236-The Procedure
237--------------
238-
239-To be able to export a POFile we need to know the POFile object we want to get.
240-
241- 1. We get the POTemplate associated to this POFile "po" (POFile.potemplate).
242- This is the easy bit.
243-
244- 2. We get all POMsgSets for this POTemplate "pot" that have POMsgIDSighting
245- that were in the pot file last time we imported it::
246-
247- SELECT POMsgSet.* FROM POMsgSet
248- WHERE
249- POMsgSet.potemplate = pot.id AND
250- POMsgSet.pofile IS NULL AND
251- POMsgSet.sequence > 0
252- EXISTS (SELECT * FROM POMsgIDSighting
253- WHERE
254- POMsgSet.id = POMsgIDSighting.pomsgset AND
255- POMsgIDSighting.inlastrevision = TRUE)
256- ORDER BY POMsgSet.sequence
257-
258- 3. For every POMsgSet "potSet" we got in #2 we look for its equivalent
259- POMsgSet "poSet" inside the POFile::
260-
261- SELECT POMsgSet.* FROM POMsgSet
262- WHERE
263- POMsgSet.potemplate = pot.id AND
264- POMsgSet.pofile = po.id AND
265- POMsgSet.primemsgid = potSet.primemsgid
266-
267- If we don't find a POMsgSet, we dump potSet and continue to the next messasge
268- set.
269-
270- If we get a POMsgSet, we add its id (POMsgSet.id) into a temporary list,
271- and look for an active translation sighting ("translationSighting") for
272- the message set::
273-
274- SELECT * FROM POTranslationSighting
275- WHERE
276- POTranslationSighting.pomsgset = poSet.id AND
277- POTranslationSighting.active = TRUE)
278-
279- If we don't get any POTranslationSighting, we dump potSet along with
280- poSet.commenttext and go on to the next message.
281-
282- XXX: Should we look on older translations? (Read comment #1)
283-
284- If we have an active translation we need to check if it's a plural form
285- and if it's the same as the POTemplate one::
286-
287- SELECT POMsgIDSighting.id FROM POMsgIDSighting
288- WHERE
289- POMsgIDSighting.pomsgset = potSet.id AND
290- POMSgIDSighting.pluralform > 0 AND
291- POMsgIDSighting.inlastrevision = TRUE
292-
293- If this query returns a result (and it should only ever return one), we
294- call it "templatePluralSighting".
295-
296- If this query returns no results, it's not a plural form in the template.
297- We now check whether it's a plural form in the PO file::
298-
299- SELECT POMsgIDSighting.id FROM POMsgIDSighting
300- WHERE
301- POMsgIDSighting.pomsgset = poSet.id AND
302- POMSgIDSighting.pluralform > 0 AND
303- POMsgIDSighting.inlastrevision = TRUE
304-
305- If this query also returns no results, (it's non-plural in the PO file
306- too) we dump potSet, with poSet.commenttext, poSet.fuzzy,
307- translationSighting.potranslation.translation, and go on to the next
308- message set.
309-
310- If this query does return results (it's non-plural in the template but
311- plural in the PO file), we dump potSet with poSet.commenttext,
312- translationSighting.potranslation.translation and a fuzzy flag, then go on
313- to the next message set.
314-
315- Now, the case when the message set is plural in the template.
316-
317- We look to see if the same plural form exists in the PO file::
318-
319- SELECT POMsgIDSighting.id FROM POMsgIDSighting
320- WHERE
321- POMsgIDSighting.pomsgid = templatePluralSighting.pomsgid AND
322- POMsgIDSighting.inlastrevision = TRUE
323-
324- If the plural forms are equal, we dump potSet with poSet.commenttext,
325- poSet.fuzzy (although if poSet.iscomplete is false, the fuzzy flag is
326- set), translationSighting.potranslation.translation and go on to the next
327- message set.
328-
329- If the plural forms are not equal, we dump potSet with poSet.commenttext,
330- translationSighting.potranslation.translation and set the fuzzy flag. And
331- then go to the next message set.
332-
333- 4. At this point we have dumped all current messag sets from the template,
334- now it's time to export the remaining message sets from the PO file.
335-
336- We get the list of POMsgSets that are active::
337-
338- SELECT POMsgSet.* FROM POMsgSet
339- WHERE
340- POMsgSet.potemplate = pot.id AND
341- POMsgSet.pofile = po.id AND
342- POMsgSet.sequence > 0
343- EXISTS (SELECT * FROM POMsgIDSighting
344- WHERE
345- POMsgSet.id = POMsgIDSighting.pomsgset AND
346- POMsgIDSighting.inlastrevision = TRUE)
347- ORDER BY POMsgSet.sequence
348-
349- And, for every POMsgSet we get, we check whether it's in our list of
350- message sets that we've looked at already. If it is, we ignore it. If it
351- isn't, we dump the message set with all its translations but without the
352- file references and source comment, and set the obsolete flag.
353-
354
355=== removed file 'doc/rosetta-cmdline.txt'
356--- doc/rosetta-cmdline.txt 2005-10-31 18:29:12 +0000
357+++ doc/rosetta-cmdline.txt 1970-01-01 00:00:00 +0000
358@@ -1,41 +0,0 @@
359-===========================
360- Rosetta command line tool
361-===========================
362-
363-We want a Rosetta command line tool, to interact with testing, importd
364-and other tools we will be using in the server.
365-
366-Local tool
367-===========
368-
369-The tool will run on the same machine where Rosetta (Launchpad) is
370-installed, so no XML-RPC or httplib funky stuff; just import
371-lib.canonical.rosetta and rock on.
372-
373-We will probably have to have a way of pointing it to where the source
374-tree is so that it can mess with the python path and parse the zcml
375-necessary to connect to the database.
376-
377-Command line
378-=============
379-
380-The sanest way to tell it what to do is probably a command line scheme
381-that uses subcommands, kind of similar to tla, but with two levels;
382-the first argument would be a class, the second one a "command".
383-
384-Use cases
385-==========
386-
387-Import PO template
388--------------------
389-
390-command line::
391-
392- % rosetta pofile parse xxx.po --potemplate ptid
393-
394-Import PO file
395----------------
396-
397-command line::
398-
399- % rosetta potemplate parse xxx.pot --new --name="name" --title=""
400
401=== removed directory 'doc/user-manual'
402=== removed file 'doc/user-manual/Makefile'
403--- doc/user-manual/Makefile 2005-10-31 18:29:12 +0000
404+++ doc/user-manual/Makefile 1970-01-01 00:00:00 +0000
405@@ -1,7 +0,0 @@
406-all: xhtml
407-
408-xhtml: rosetta-upstream-setup.xml
409- xmlto xhtml rosetta-upstream-setup.xml
410-
411-clean:
412- rm -f rosetta-upstream-setup.html
413
414=== removed directory 'doc/user-manual/images'
415=== removed file 'doc/user-manual/images/products-search-form.png'
416Binary files doc/user-manual/images/products-search-form.png 2005-10-31 18:29:12 +0000 and doc/user-manual/images/products-search-form.png 1970-01-01 00:00:00 +0000 differ
417=== removed file 'doc/user-manual/rosetta-upstream-setup.xml'
418--- doc/user-manual/rosetta-upstream-setup.xml 2005-10-31 18:29:12 +0000
419+++ doc/user-manual/rosetta-upstream-setup.xml 1970-01-01 00:00:00 +0000
420@@ -1,58 +0,0 @@
421-<?xml version="1.0"?>
422-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
423- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
424-]>
425-<article>
426- <articleinfo>
427- <title>How can I use Rosetta to translate my project</title>
428- <author>
429- <firstname>Carlos</firstname>
430- <surname>Perell&oacute; Mar&iacute;n</surname>
431- </author>
432- </articleinfo>
433-
434- <sect1>
435- <title>Introduction</title>
436- <para>
437-This document covers all steps needed to follow so you get a new resource to
438-translate imported into Rosetta. It does not cover the steps to translate
439-Ubuntu resources, if you have any special request or question about Ubuntu
440-translations, please, send it directly to
441-<ulink url="http://lists.ubuntu.com/mailman/listinfo/ubuntu-translators">
442-Ubuntu translators mailing list</ulink>.
443- </para>
444- </sect1>
445-
446- <sect1>
447- <title>Creating a new Product in Launchpad</title>
448- <para>
449-To be able to translate anything with Rosetta you need first a product in
450-Launchpad. There are already many products created already in Launchpad, so
451-the first step is check if it already exists. To do it go to the
452-<ulink url="https://launchpad.ubuntu.com/products">Product Search form</ulink>
453-and try to find the product you are interested on.
454-
455- <mediaobject>
456- <imageobject>
457- <imagedata fileref="images/products-search-form.png" format="PNG" />
458- </imageobject>
459-
460- <textobject>
461- <phrase>Launchpad product search form.</phrase>
462- </textobject>
463-
464- <caption>
465- <para>
466- Launchpad product search form.
467- </para>
468- </caption>
469- </mediaobject>
470-
471- </para>
472-
473- <para>
474-If you are not able to find the product you are interested on
475- </para>
476- </sect1>
477-
478-</article>
479
480=== removed file 'doc/zope3sins.txt'
481--- doc/zope3sins.txt 2005-10-31 18:29:12 +0000
482+++ doc/zope3sins.txt 1970-01-01 00:00:00 +0000
483@@ -1,7 +0,0 @@
484-===========
485-Zope 3 Sins
486-===========
487-
488-This document is for collecting those areas of Zope 3 that depend on the
489-ZODB, object graph<->URLs or make other assumptions that make it difficult to
490-use in ways that diverge from those assumptions.
491
492=== removed directory 'lib/canonical/launchpad/apidoc'
493=== modified file 'lib/canonical/launchpad/scripts/__init__.py'
494--- lib/canonical/launchpad/scripts/__init__.py 2010-04-27 22:33:21 +0000
495+++ lib/canonical/launchpad/scripts/__init__.py 2010-05-14 14:41:10 +0000
496@@ -24,11 +24,9 @@
497 from textwrap import dedent
498 import threading
499
500-import zope.app.appsetup
501 import zope.sendmail.delivery
502 import zope.site.hooks
503 from zope.configuration.config import ConfigurationMachine
504-from zope.configuration.config import GroupingContextDecorator
505 from zope.security.management import setSecurityPolicy
506 from zope.security.simplepolicies import PermissiveSecurityPolicy
507
508@@ -45,29 +43,6 @@
509 # Intentional re-export, following along the lines of the logger module.
510 from canonical.launchpad.scripts.loghandlers import WatchedFileHandler
511
512-# XXX StuartBishop 2005-06-02:
513-# We should probably split out all the stuff in this directory that
514-# doesn't rely on Zope and migrate it to canonical/scripts.
515-
516-class NullItem:
517- def __init__(self, context, handler, info, *argdata):
518- newcontext = GroupingContextDecorator(context)
519- newcontext.info = info
520- self.context = newcontext
521- self.handler = handler
522- self.argdata = argdata
523-
524- def contained(self, name, data, info):
525- return NullItem(self.context, None, None)
526-
527- def finish(self):
528- pass
529-
530-
531-def NullFactory(context, data, info):
532- return NullItem(context, data, info)
533-
534-
535 def execute_zcml_for_scripts(use_web_security=False):
536 """Execute the zcml rooted at launchpad/script.zcml
537