wiki:SiteUpgradeProposal

Version 56 (modified by rjollos, 3 weeks ago) (diff)

More ideas.

Site Upgrade Proposal

This page documents the proposed work for upgrading trac-hacks.org from 0.10.6dev to 1.0.

The first stage of the project will be to upgrade the site to a newer version of Trac. The installed plugins will need to be adapted to the newer version of Trac and extensive testing will need to be done before the upgraded site can go live.

The second stage of the project will improve the site by addressing the open issues and perhaps even tackling some features from the wish list.

Milestone 1 (completed)

  • Upgrade server to Debian Squeeze.
  • Subversion: 1.5.1 -> 1.6.18.
  • Python: 2.5 -> 2.6
  • PostgreSQL ? -> PostgreSQL 8.4

Milestone 2

  • Upgrade Trac to version 1.0.
  • Upgrade plugins to work with Trac 1.0. This work is being tracked in #10193.
  • Re-enable XmlRpcPlugin.

Milestone 3

Milestone 4

Open Issues

There are a number of open defects and enhancements that we may want to address during the upgrade. Here are some specific ones that we may want to give higher priority:

  • Many plugins don't have a license. An idea outlined in #9805 is to force the user to either specify a license or accept a default license when creating a NewHack.
  • Spam continues to be a problem. Upgrading to the t:SpamFilter might improve the issue, but the captcha from the latest th:SpamFilter plugin as observed on t.e.o can be frustrating experience and we don't want to risk driving away users.
    • A related issue is that many tickets are created by anonymous and anonymous often does not follow-up when more information or feedback is requested. We could require users to create an account before they can create a ticket, which might cut down on newticket spam as well as these abandoned tickets.
    • Deleting and marking spam is tedious. After deleting the spam ticket, comment or edit; we have to navigate to the Monitoring panel on the Admin page and then manually locate the entry in the logs. It would be much easier if the delete button also flagged the entry as spam, and there was a delete checkbox on the logs page so that this is a one-step operation.
  • There are a number projects that are no longer maintained, have been supplanted by another project and are just taking up space at this point.
    • We should have a process for removing old projects. Perhaps we should have a policy of reviewing and voting on them, a notification should be placed on the page and then a prescribed waiting period elapsed before eventually deleting them. Obsolete plugins with no license would have even more reason to be deleted (see also #9805).
    • Projects that have no source, often because the links to an external site are dead, are being tagged with tag:nosource. Tickets are being opened to notify authors of pending project deletion, and are being tagged with tag:pending-deletion.
    • The Apache Software Foundation moves a project to the Attic when it is no longer maintained. For us, the Attic could be a wiki page prefix and path prefix in the repository (or perhaps the path should be deleted and links to the repository pegged). Ideally the pages in the Attic would be filtered from search results unless explicitly requested.

Policies and Guidelines

On several occasions questions have come up about proper use of the site and how it should be administered. This suggests we need more site policies, and the philosophy of trac-hacks suggests that these policies be formed by the community.

  • LicensingPolicies page that describes the proper way to document the license for a plugin.
  • Page that describes proper promotion and what types of external links are allowed, similar to t:TracUsers#guidelines.
  • user registration, especially valid usernames and how to deal with existing accounts, that to not comply to the upcoming standards
  • Peer review the BugReporting page and add a link to BugReporting on each NewHack template.

Wish List

  • Hosting the #trac IRC logs using the IrcLogsPlugin (mailing list discussion).
    • osimons suggested that we host the IRC bot on a server other than the t-h.o server since running a bot presents potential security concerns. This might be accomplished with a minimal VPS and sending the logs to t-h.o through RPC after implementation of #10118.
  • Hosting a pastebin using the TracPastePlugin (mailing list discussion).
  • Expanded support for creating polls and voting on projects and tickets (#6471). t.e.o uses the VotePlugin, so it is probably pretty stable. FiveStarVotePlugin is another that we could consider using. The PollMacro is currently installed on t.h.o, and EasyPollMacro appears to build on it and add more functionality.
    • It would be cool if the Top 50 plugins are somehow installed (automatically with their latest [stable?] version) on a demo-site for seeing how they look like and for playing with and testing. That would give the user a chance to evaluate the functionality before spending the time with installing.
      • Is there a way to show a download/svn-update/checkout statistics counter for each plugin? This would also be something like a "judge".
  • Add site analytics.
  • Tools to facilitate code reviews, such as the CodeReviewerPlugin.
  • Support for Git and Hg in addition to SVN. Is it practical to have live mirrors, do we settle on a single DVCS or do we just give the user a choice of which to work with?
    • Trac supports multiple repositories since Trac 0.12, so we no longer need to have a single repository for all of trac-hacks.org (though having a single repository can be an easy way to checkout all of the plugins at one time).
    • Sync to BitBucket and GitHub when plugins are hosted externally: GitHubSyncPlugin, BitbucketSyncPlugin.
    • Show ChangeLogs on trac-hacks wiki pages for plugins hosted externally (#7650).
  • Support for translated wiki pages
  • TICKET_EDIT_COMMENT should be set for correcting typos, at least for own comments (t:#10909 proposes adding a TICKET_EDIT_OWN_COMMENT permission).
  • BookmarkPlugin
  • Autowikify all tags: #10197.
  • WikiGoodiesPlugin
  • HacksManagement
    • The TracHacksPlugin provides the NewHack page. More extensive hack management features could be added, such as the following:
      • Delete a hack (particularly useful for cleaning up spam): remove project from SVN, remove wiki page, remove component.
      • Track unmaintained plugins by contacting authors if there is no activity after a set amount of time.
  • BadLinksPlugin - for cleaning out dead links to externally hosted plugins.
  • Support for development space for t-h.o plugins. (sandinak)
    • We shouldn't do the work inside our 'deliverable' space ( svn/{plugin}/ } .. be nice to have say /svn/devel/{plugin} .. and we can merge across to our production environments.
  • Mechanism for users to subscribe to notifications of new plugin releases, and for plugin authors to control when new release notifications are sent out.
  • Allow authors to edit their own log messages.
  • The NewHack template Recent Changes heading should link to the revision log (e.g. ContextMenuPlugin#RecentChanges).
  • Don't allow anonymous users to change the state of tickets. Users often accept tickets forgetting they are not logged in, resulting in a ticket being assigned to anonymous. This is implemented in the latest workflow.
  • RepoSearchPlugin was previously enabled, as described on the TracHacks@43 page, and is a feature we'll want to keep in mind for the future.
  • PyPI Integration: make it easier for authors to publish from the trac-hacks repository to PyPI, allow a PyPI location to be registered via the NewHack form, promote and encourage links from hack pages to PyPI, documentation for plugin authors/maintainers on how to publish to PyPI.
  • Move all users wiki pages to wiki/users/ or wiki/TracUsers, in order to keep the TitleIndex more organized and hierarchical.

Ticket Summary Status Owner Type Priority Severity
#1151 RSS feeds for individual wiki pages new otaku42 enhancement normal normal
#1453 Give higher ticket edit permissions to plugin owners new otaku42 enhancement normal normal
#2823 Improve load time for pages with [TOC] new jouvin enhancement low normal
#5526 Additional available reports new otaku42 enhancement low normal
#6168 Timeline RSS feed should show Component name in subject new otaku42 enhancement normal normal
#6471 Consider adding a feedback poll to the NewHack template new otaku42 enhancement normal normal
#6473 Install OhlohBadgeMacro and StackOverflowBadgeMacro new otaku42 enhancement normal normal
#6476 Send notifications to subscribers when a wiki page changes new otaku42 enhancement normal normal
#7567 Add visit counter to WikiStart new otaku42 defect normal normal
#8717 Install the VotePlugin assigned rjollos enhancement normal normal
#9805 Force user to add their own or otherwise accept a default license new otaku42 enhancement normal normal
#9831 Do you plan to offer Mercurial hosting for plugins? new otaku42 enhancement normal normal
#9959 CC co-maintainers when tickets are created new otaku42 enhancement normal normal
#10092 Restrict allowed username new rjollos enhancement normal normal
#10471 Install a UML diagramming tool new rjollos enhancement normal normal
#10497 Remove all instances of TagIt macro assigned rjollos enhancement normal normal
#10781 Error when cloning SVN repository using Mercurial or Git with their respective SVN connectors new otaku42 defect normal normal
#10861 Develop rules that govern code contributions new otaku42 defect normal normal
#11149 IOError: failed to write data new rjollos defect normal normal
#11464 Modify reports {9} and {10} to use dynamic variables new rjollos defect normal normal
#11468 Shortcut to log page in Recent Changes section new rjollos defect normal normal
#11678 Upgrade to Genshi 0.6.2 or 0.7.1 new otaku42 task normal normal
#11742 new user frequently created new otaku42 enhancement normal normal
#11949 Remaining steps for site upgrade new rjollos enhancement normal normal