• Plone Conference 2007 - Naples

  last modified October 16, 2007 by alv

Participants


In Naples (woo hoo!)

  • Paul Bugni; Univeristy of Washington (u.washington.edu); Seattle, WA, USA; pbugni (irc nick and email, using domain to the left)
  • Matthew Wilkes; Circular Triangle; Bristol, UK; MatthewWilkes; matthew@matthewwilkes.co.uk
  • Richard Wilson; Mobile Pie; UK
  • Álvaro Tejero Cantero; Fundación Española para la Ciencia y la Tecnología / European Southern Observatory, Munich, Germany. minin.es@alvaro (reverse)
  • Vincenzo Barone

Remote (boo!)

  • Derek Richardson; Georgia Institute of Technology; Atlanta, GA, USA; derek_richardson; [firstname] [dot] [lastname] [at] oit [dot] gatech [dot] edu

Daily Report (notes for Sunday)

  • Continued to work on the configuration UI for individual feeds. Hannosch graciously volunteered some time this morning to help us with design. We tried z3c.form, but it was too difficult to install for us to pursue it further. Now we are trying to implement custom zope.formlib widgets. This is difficult. If this doesn't work, we'll fall back to hand-rolling our own browser view page. This is all hard work, the hardest task we have at the sprint, but it's important that we fix the current UI, which is pretty much unusable for more than two feeds configured on a single container.
  • Introduced named adapters for both feeds and feed items to enhance customizabililty. Customizers can now extend adapters while using the same views without having to modify the views or adapters that ship with Vice. For instance, if you want to change how the keywords render for events in Atom feeds, you can simply subclass the event adapter, override the method that returns keywords to the view, and register it as a feed format in a single py file. You no longer have to either directly modify the vice event adapter or create a new feed adapter with a new view in addition to your subclassed event adapter, which you would have had to do before the sprint.
  • Changed the functional tests to use the Plone configlet rather than directly manipulating the ZODB. This increases test coverage. Our goal is 100% test coverage. We are currently running coverage tests to see where we stand.
  • Fixed timezone support in the DT2dt function, which converts Zope DateTimes to python datetimes. The bugs were breaking our tests. Matthew fixed the bugs and made us local copies of the fixed functions in a util module, so now all our tests pass again. A patch will be submitted back to ATCT
  • Worked on replacing the old syndication tool with a new tool which makes most settings read-only and reads their values from our syndication utility. This new tool will be installed as deprecated, so that soon we can remove it altogether. This is important to prevent users from becoming confused about where the sitewide syndication settings live.
  • Polished the UI of feed links displayed in the document actions viewlet manager. Before they worked but were ugly; now they are not ugly.
  • Made all ATCT adapters to feed items defer to page templates for their bodies. From watching the plone-users list, we know that customizing item bodies is the number one customization request. So we made it easy.

Daily Report (notes for Monday)

  • Continued working on replacing portal_syndication with new version that defers to vice.  Now correctly reports syndication status of the site and individual objects while raising deprectation warnings.  Some problems with the syntool alias in page templates not working correctly, think it's to do with a memoize.
  • Created a viewlet for feed autodetection. This is important because it allows browsers to auto-detect the presence of a feed, doing some browser magic, which makes the user experience better. We can't currently plug it into Plone 3.0.x because the autodetect link in main template is the last thing left to be viewletized in the base product. We think this is a bug but evidently it will not be fixed in any 3.0.x release. We really hope that it will be fixed in 3.1. The trunk has already been patched to fix it by schulze, it's just a matter of including it in a release. In the mean time, we're going to pursue overriding viewlets.xml form app.plone.layout and automatically patching main template from the GenericSetup migration. This is non-optimal because it may fail on some sites due to other products installed or local customizations, but it is the best we can do in the absence of having the code in plone core trunk released. We haven't done the override and patching work yet, so, we're not ready for beta. If someone wants to schedule the code from trunk for inclusion in 3.0.3, then it will save us some work. :)
  • Committed to SVN the new UI for adding feeds to a syndicable object.
  • Vice alpha tagged and ready. collective.baseid and collective.uuid are on cheeseshop now. plone.syndication.outbound and plone.app.syndication.outbound are waiting on a verdict as to use of the plone.app namespace.

Goals

A beta release of Vice.

At a minimum (in priority order)

  • (√) For Alpha: Get links to feeds working in document actions.
  • (√) make feed formats easily extensible - registering new feed types with view classes and page templates - vocabulary for feed types? We want it to be easy to implement feed variants by extensions without requiring modification.
  • (√) De-ui-uglify the document action links to feeds.
  • (√) Make the RSS legacy feed type invislble. Add a 'visible' attribute to the FeedFormats tuples and dictionaries and don't display formats that have visible == False. Prevents users from selecting the legacy format and prevents tem from being confused by an 'RSS' option that doesn't have a version number.
  • (√) Extend named adapters to the feed items, not just feeds themselves, making customization even easier.
  • (√) change functional tests to use ui for global feed config - no longer do it directly in ZODB. this will increase test coverage.
  • (√) page templates for rendering all feed bodies of all Plone 3.0 AT content types. currently, most of these are implicit in the adapters and difficult to customize. So, pt's will make customization easier.
  • (√) [Assigned - Paul & Alvaro] Rework UI for configuration of outbound feeds. Current UI sucks. I mean, it *really* sucks. Derek has a mockup that has been approved by limi (though not for Plone 3.5).
  • [Assigned - Matthew] replace the portal_syndication tool with a shell that defers to the new FeedSettings utility, except for the update base and periods, which will remain implemented on the shell syntool, since it won't be implemented in vice. This will preserve backwards compatibility for code while preventing people from being confused by a non-operative ui in the zmi.
  • PyLint / Re-Formatting. We like *pretty* source code.
  • Achieve 100% test coverage of all packages. Without 100% coverage, we won't know that nothing is broken.
  • Write a doctest (README.txt) to explain how to use and extend. Current functional tests are comprehensive but unsuitable for someone who just wants to know how to get simple things done. A good README will create some new content types and go through the process of syndicating them. It will show all the ways of customizing, including those done earlier in the sprint (see above).
  • [Assigned - Derek] write instructions on how to customize the autodetected feed url in the plone main_template.pt header so that it can be customized. A viewlet for the header is unlikely to be introduced any time soon. The intructions should be how to create a viewlet manager and a viewlet that will display an appropriate feed link. We may want to put most of the customization code in the product and just let users take out the hardcoded autodetect and put in the code to render the viewlet manager we write. This code will eventually work without manual customization after the patch that fschulze put into the plone core is released. We should make sure what we write is compatible with the future state of plone so that we don't have to revisit this later. Relevant changesets in svn.plone.org/svn/plone are 17554, 17559, and 17561.
  • eliminate WARNING messages at Zope startup. WARNINGs are unacceptable.

Nice but not required (no priority order)

  • get the '@@' out of the outbound feed URLs. I mean, how much uglier can a url be?  - Wilkes: Removing @@ using aliases
  • dynamic feed config settings via url params - example: http://site/folder/feed?format=atom - don't recurse because of DoS potential. This should be enabled/disabled from the global configlet. It's a nice usability addition.
  • [Assigned - wooda] Feeds for individual content items and feed entries for versions. This will allow people to track the versions of a document, for instance, if they are collaboratively editing it.
  • secured feeds. what does this mean? we need some serious design effort here to address all the cases (such as CAS). Another advantage of the original 'external ulr' approach is that it allows feedburner integration. I think - let's look at feedburner.
  • itunes format. from wooda's basesyndication impl, it looks like itunes is just rss 2.0 +  a namespace declaration and itunes:author, itunes:summary, and itunes:category on each feed item - cake! confirm with wooda and read the spec at http://www.apple.com/itunes/store/podcaststechspecs.html
  • p4a integration
  • quills integration
  • viewlet plugins to plone for technorati links, etc...
  • Eliminate subclasses of FeedViewWithUrlIdBase. Shouldn't need them anymore that the main view class can look up which view it is. Also makes certain customizations easier. NOTE: this was moved to optional from required as everything works as-is and this task would require putting paths to page template files in the formats list, which means dealing with the filesystem and relative vs absolute paths. No obvious way forward and not worth the time required to figure it out fof beta.
  • named adapters for enclosures to increase customizability? or is this just over-engineering? probably.

Got an Itch?

Also, anyone is welcome to scratch an itch! It doesn't have to be on the list. Many people have asked about Atom Publishing Protocol (APP). Derek is curious about GDATA. Inbound needs a comprehensive story. Other blue-sky ideas are welcome!

Main Project Page