This WIKI is a continuation of an original google document composed 5th Jan 2010. Please feel free to update this WIKI with relevant information. We hope this will be a useful reference for the Download and Extend and other redesign implementation teams.
D&E implementation discussion notes 5th Jan 2010 - Edited by kjay on 8th Feb 2010
The following updated notes stem from an original conversation between atholmes, chrisstrahl and kjay about the work needed for the D&E section. The following version is heavily updated to add new information and hopefully put in place some answers to the original issues and questions. Hopefully this will be useful for guiding teams involved and provide notes of work that has been carried out:
Technology issues
Q: Where do the D&E teams need to do their work?
A: Work is taking place on staging5.drupal.org and because the infrastructure for the D&E section involves complex Apache Solr module output, it is currently only staging5.drupal.org that is setup correctly. Please update your assignments on this page: http://groups.drupal.org/node/37064
Q: What code do we edit?
A: You will need to follow the svn instructions at http://groups.drupal.org/drupalorg-redesign-implementers/code-repository to get a checkout of the code up and running. Specifically, you will need to be working on your own sandboxed version of the bluecheese theme and you will need a checkout of the sandboxed modules directory for staging5. To date, the sandboxed modules directory has drupal.org and project running as modules that we are customising. To see progress made so far, you can enable atholmes's bluecheese version for the D&E homepage and kjay's bluecheese version to see changes made to Installation Profiles and all other tabs that share this theme output.
Q: What modules should we be working with
A: damz has carried out a lot of module work and implemented this on staging5.drupal.org to provide the fundamental output we need to progress. The project listings use Solr (not Views) to get output from the drupal.org projects to match Mark Boulton's prototypes. In fact, the lists of projects (modules, themes, installation profiles etc) and related search filters are provided through Apache Solr integration. This is work that is being carried out by damz and other contributers helping out with the solr integration. Since the Solr integration returns filtered lists of project nodes, it is the drupalorg and project modules that are responsible for providing the themed output for these lists (tabs). kjay and atholmes have been working on patched versions of project and drupalorg modules in the staging5/patched directory of the modules sandbox. To date this patching work has provided the following customisations:
- Themed lists for the download and extend home page (http://staging5.drupal.org/download)
- 'Posted by' node data
- Adjustment to the node meta data output (posted by, last changed) to output as a themed unordered list. It is after all a list of meta data and the Mark Boulton prototype shows some floated styling and we need to think about how this theming is robust when images are missing from a project node item.
- Other adjustments to HTML output to provide for better theming and semantics
The plan is to release a well documented patch that details the changes and offers reasoning behind it. This patch can then be checked by others and hopefully easily merged with the main project.
Q: How are we going to be working together on this?
A: The original assignments for the D&E sections are one team per tab. The problem with this approach is that since the original assignments were made, it has become clear that the method of integration through the Solr lists is that the work being carried out on one tab effects most others.
The exception is the Drupal Core tab which does not share the same features throughout. This is certainly a tab that can be worked on alongside the work needed on other tabs.
There is some need to match experience and capability against the theming work. There are clearly features still required that will output content ready for theming, effectively module development work. Once content is output it will be possible to carry out straightforward theming.
I would like to discuss this amongst the D&E teams to see this move forward appropriately.
Q: Solr work - How do missing features get implemented by those working on Solr elements?
A: Brightbold has done a great job of listing the key missing features in the following issues (some of these may not specifically be solr issues):
- http://drupal.org/node/371960
- http://drupal.org/node/693394
- http://drupal.org/node/693546
- http://drupal.org/node/693500
- http://drupal.org/node/693466
- http://drupal.org/node/693438
- http://drupal.org/node/693392
- http://drupal.org/node/693388
I will post more information on this issue and more info on assignments as soon as I have more information.
Q: Rating system and other features that we need to offer clarification on:
A: We are needing to set further clarification on the following requirements:
- Rating system
- Taxonomy - new vocabularies where/if required
- Image handling/Imagecache
- What is the "add to dashboard" feature going to do in terms of D&E?
- Damien was looking into using Views 3 and the Apache Solr Views module. Did he make any progress on this? Is this even needed since content is being output now in a manner close to the prototypes?
- What facets still need to be built and how (what data do we need to add to the Solr index)?
Issues should exist for these, I will update this post when I have identified any that exist/match or create new ones.
Theme issues
Q: Theming should be done in a uniform manner across all D&E tabs - since we are working on individual theme sandboxes, how do we avoid duplicate work from happening between commonly themed elements?
A: This is currently a tricky issue. For example, work carried out by atholmes to theme the individual lists of links on the D&E homepage also applied to the links in the right hand column of the installation profiles tab for kjay (as well as all the other tabs). Identification of common elements and assignment of theming tasks is probably the best solution to this - outside of trying our best to all work on this on code sprint days so that we can all understand who is working on what and how theming is being implemented. Teams please feel free to IRC me on this issue so that we can discuss (kjay)
Content
Q: How is static content created / added?
A: Content in the D&E section is output via a number of sources. Most of the tabs are created from the page callback in the project_solr module, a sub module of project. The introductory text at the top of the tab pages is currently pulled in from the terms of the related project vocabulary term. The right hand filter menus are blocks.
Q: How do we modify the tpl files? How do we go about working with files and deploying to the staging system? What is the process for having completed work added into the redesign project?
A: once you have a locally checked out version of the modules and theme, it is a matter of making your changes, checking those changes in and waiting for up to 5 minutes for the staging version to update. This is unfortunately a time-consuming process but necessary if you wish to check / progress your work against the Solr functionality. It is really helpful to provide good svn checkin notes. I have found using firebug or other local editing tools useful for trying out the CSS and html changes I intend to commit before committing. This helps to reduce the time needed to wait to see the results.
The intended process is for us to work on specific 'issues' or 'theming tasks'. These can then be created as issues in the redesign or bluecheese issue queue, along with patches of our work that implement the required theming work.
There is now a D&E issue queue tag - please use this tag for any D&E issues being posted.
Theme templates for various D&E tabs can be found here:
- **Home Page:** drupalorg_project_browsing/drupalorg-project-browsing-home.tpl.php
- **Modules:** for lists: project module 'theme_project_summary'
- **Themes:** for lists: project module 'theme_project_summary'
- **Theme Engines:** for lists: project module 'theme_project_summary'
- **Installation Profiles:** for lists: project module 'theme_project_summary'
- **Translations:** for lists: project module 'theme_project_summary'
Useful links to project info:
Modules
Main Project module:
http://drupal.org/project/project
Project_solr module:
http://drupalcode.org/viewvc/drupal/contributions/modules/project/solr/p...
Main Drupalorg module:
http://drupal.org/project/drupalorg
drupalorg_search module:
http://drupalcode.org/viewvc/drupal/contributions/modules/drupalorg/drup...
drupalorg_order_facet module:
https://svn.drupal.org/drupal/drupal.org/redesign/sites/all/modules/drup...
drupalorg_project_browsing module:
https://svn.drupal.org/drupal/drupal.org/redesign/sites/all/modules/drup...
D.O Redesign Group Posts
All Discussions - http://groups.drupal.org/drupalorg-redesign-implementers/discussions
Assignments - http://groups.drupal.org/node/37064
Submitting code - http://groups.drupal.org/drupalorg-redesign-implementers/code-repository
Mock-ups and notes - http://groups.drupal.org/node/20213
D.O Links / Issue Queue
Redesign project - http://drupal.org/project/redesign
Theme project - http://drupal.org/project/bluecheese
Development Workflow explanation - http://drupal.org/node/679264
Keyword search? - http://drupal.org/node/674330
D&E Development notes (from 2010/01/08 sprint day):
Primary Staging Server: http://staging5.drupal.org/download u/p: drupal/drupal
NOTE: If you are a D&E implementation team member, you should have an admin account on this environment. If not, register and request promotion to admin in IRC#drupal-infrastructure. You cannot test with Solr locally as the Solr servers are firewalled. You must commit your module and theme work to the appropriate sandboxes. See development workflow for more information.
Important Modules to Enable and Examine:
Apache Solr
- Apache Solr Framework
- Apache Solr Search
Drupal.org
- d.o Order Facets
- d.o Project Browsing
- d.o Search
Project
- Project releases
- Project Solr
- Project usage
Important Module Configurations:
http://staging5.drupal.org/admin/settings/apachesolr/enabled-filters
Development Workflow:
Please read: http://drupal.org/node/679264
After reading, ensure modules to be worked on are svn cp'd from the redesign branch to the staging5/patched sandbox. These modules minimally include: drupalorg_order_facet, drupalorg_project_browsing (source links listed in above Modules section).
Current functionality (chat snippets from 2010/01/08 sprint):
(7:34:36 PM) DamZ: jrguitar21: we basically: (1) generate a solr query on all the modules, (2) call the facet blocks based on that data
(7:34:48 PM) DamZ: jrguitar21: in drupalorg_project_browsing
(9:50:23 PM) atholmes: looks like for now he (DamZ) has drupal_order_facet.module specific to the module type and module facets for now. it will need to either be updated to pass type for other things like themes, etc or a separate function defined. not sure how we should approach that but the labeling needs to be updated anyway just for clarity in the admin
(9:53:31 PM) atholmes: Amazon: for example, on http://staging5.drupal.org/admin/settings/apachesolr/enabled-filters, d.o Order Facets probably shouldn't read "Most downloaded" but rather "Most downloaded modules" as I presume we'll have another facet for "Most downloaded themes", etc.
Current explanation of module interaction (chat snippet with DamZ from 2010/01/11):
(10:09:27 AM) atholmes: So far, this is what I’ve gathered from my own inspection: Drupalorg_order_facet.module appears to be an apache_solr facet wrapper module that is used to execute the specified facets in drupalorg_project_browsing.module. The specified facet_fields (e.g. sis_project_release_usage) in drupalorg_project_browsing.module are actually defined in project/solr/project_solr.module and this is where queries are defined that make use of the project_usage module.
(10:09:47 AM) atholmes: i plan to use this information to help guide the other implementers but don't want to distribute info that may be incorrect. :)
(10:11:52 AM) DamZ: that does look right
(10:11:59 AM) DamZ: drupalorg_order_facet is just an helper module
(10:12:28 AM) DamZ: project_solr (and others) exposes facets (ie. feed the solr index with data and tell other drupal module that this data is available)
(10:12:51 AM) DamZ: drupalorg_project_browsing is just an integrator: it uses the facets created by others to build the d&e frontpage
(10:27:49 AM) atholmes: ok, cool. :) i noticed that the theme template for the d&e frontpage is in drupalorg_project_browsing.module. is this where you'd like us to put the d&e templates or do you think other tabs (i.e modules, themes, installation profiles, etc) should reside elsewhere?
(10:41:29 AM) DamZ: atholmes: other tabs should not need any theme template
(10:41:33 AM) DamZ: atholmes: this is strictly for the home page
(10:48:26 AM) atholmes: ah, ok. so where will facet blocks be defined for the right column of say, the themes tab (per prototype: https://infrastructure.drupal.org/drupal.org-style-guide/prototype/theme...)? or has the requirements/ui for those tabs changed?
(10:57:06 AM) DamZ: atholmes: the blocks are exposed by the different modules
(10:57:27 AM) DamZ: atholmes: they already are, basically
(10:58:21 AM) DamZ: atholmes: what's not already exposed is: (1) the "Find a theme" block, (2) the theme-specific blocks on the right sidebar: "Related Documentation" and "Community Spotlight" and "Get involved"
(10:58:26 AM) DamZ: the other blocks are automatically generated
(11:04:22 AM) atholmes: ok, cool. please forgive my lack of understanding. :) could you point me to some code in the redesign branch for this? like... "the different modules" you referenced? i want to understand where/how these blocks are defined and exposed.
(11:11:59 AM) DamZ: atholmes: project_solr_block(), apachesolr_search_block() probably
- Resource Management: We have a great pool of resources. Who should be doing what?
POINT OF CONTACT: Kieran (Amazon), Lisa (lisarex), others?