Cg beta deployment

From Community Council Community Group

This page is historical since we launched the new CG site in 2015.

Notes on infrastructure

Server

  • Proxy set up for beta.w3.org/community
    • Fake groups will not appear on the real site
  • We have a copy of IPP on the machine
    • We will not import real groups into the beta; we will not mix real and fake groups
  • Use state management tool for beta groups

Member company setup

  • In the beta instance of the database, we plan to make Ian the AC Rep of all Members.

User Accounts

  • Use the existing account system and LDAP server.
    • We won't have information about which groups people are in, so when they join, they won't be able to blog.

Structuring the beta

  • We will distinguish "create/support/join" from "actions you take once in a group" to simplify setup
  • For new groups created by beta testers, people can:
    • Propose a new group
    • Support a new group
    • Join a group
    • Nominate chairs
    • Chairs can publish
  • We will set up a special group (with well-defined participants) to
    • blog

Note:

  • There will be no wiki in beta

Limitations of beta

  • No mailing list will be set up for created groups
  • Users cannot manipulate their account info (so we will disable link during beta)

Notifications

  • Don't sent beta messages to team-community-process; messages will be sent to individuals
  • Don't send beta messages to public-council; messages will be sent to individuals
  • Don't send emails to real AC Reps

Initiating the beta

  • We'll need to create some fake groups

Scenarios

Publishing

  • From group home page, test the publishing UI for chairs:
    • Three group types: no chair, chair and user is chair, chair and user is not chair
    • Test both not yet logged in and logged in.
  • Test group with zero specs, 1 or more draft reports, 1 or more final reports

Deploying the new site (after beta)

Target date

  • 12 February

High level plan for making the transition

  • We announce a transition plan and tell people to avoid posting or creating WP pages during a window.
  • Copy beta files (in file system) and IPP templates/scripts to new server.
  • Remove "beta" from home page title in template
  • Export all beta server WP pages
  • Copy production database to w3.org/community-old
    • w3.org/community points to that during the transition
    • allows easy rollback
    • and if people post during transition we can still manually copy over
  • Start the new server on the production database.
  • Run the upgrade script (to update templates and widget locations)
  • Import the beta pages
  • Set server name to www.w3.org from the proxy front ends
  • If anybody posted during transition, then manually copy from old to new those posts

Server

  • Ensure we have the latest debian running (Done)
  • Do not upgrade Synfony
    • But what underlying dependencies would affect that, e.g., PHP upgrade?

Templates

  • Finish template fixes
    • Cartoon figure
    • Has search button in widget been styled?
    • Was there a reason for changing paragraph top margin?

Source files

  • Install css and js in "right place" (JG action 94)
  • Adjust symlinks

WP

  • See WP migration guidance
  • Check to see if we need to update WP or WP plugins
  • Manual changes to main blog: widgets, menus
  • Import the original beta announcement into the new WP instance, keeping original URI and content.
    • Ian may edit slightly to let people know that cgbeta.w3.org is no longer going to be serviced.
  • Widget ordering JG doing through script
  • Update SMARTY_TPL constant in wp-config.php
  • Eliminate FAQ plug-in in favor of WP page with FAQ

Calendar

  • Events calendar hack in functions.php not working anymore, apparently. But we decided to remove the events plug-in since it was effectively not used by anyone.

Mail

  • Undo redirects These are local to cgbeta so nothing to do if new install on new server

Content

  • IJ: Update beta pages wrt production server. (Done)
  • JG: Ensure w3c forum imports correctly

Performance

  • We will set up caching for three types of pages: list of groups, list of reports, group participants page
    • 1 hour cache expiry
    • Plus explicit curl purge on key modify events (create, join/leave, publish)
  • Gerald to set up varnish instance for crux.
    • Gerald will configure server so that if a cookie is set and is WP's cookie test (containing wordpress_test_cookie), allow it to be cached, but for other cookies don't allow caching.
  • Jean-Gui to set up explicit curl purges (via shell scripts and PHP)
    • Group page cache cleared when someone joins/leaves a group
    • Group page cache cleared when new group created.
    • Reports page cache cleared when new report published

Future changes (not critical to deployment)

IPP

  • Don't make these changes so that we can roll back easily if necessary
  • Rename test files as non-test files (join, leave, change).Does pplib-cg-test.phi need to change?

Source files

  • Action 324 Merge cgbg2012 source files into src tree