Beta Features

From Dreamwidth Notes
Revision as of 08:21, 29 March 2011 by Afuna (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page describes how to code and enable beta features on a server from the perspective of a developer. For instructions on doing beta work as a user, see Beta Testing

Putting a Feature into Beta

Features in active beta are listed on Dreamwidth Beta. To add a feature to that list, you will need to create a new module and configure the server to enable the feature beta.


Here is the bare minimum to get a module to work, to be placed in

# DW::BetaFeatures::featurename - Allow users to beta test featurename
# Authors:
#      Afuna <>
# Copyright (c) 2011 by Dreamwidth Studios, LLC.
# This program is free software; you may redistribute it and/or modify it under
# the same terms as Perl itself. For a copy of the license, please reference
# 'perldoc perlartistic' or 'perldoc perlgpl'.
package DW::BetaFeatures::featurename;
use strict;
use base "LJ::BetaFeatures::default";

Refer to the base implementation at `dw-free/cgi-bin/LJ/BetaFeatures/` for methods that you can override.

Configuring your Server to List the New Feature

You'll also need to enable it in your configuration. Add this to `dw-nonfree/etc/` (or look for an existing `%LJ::BETA_FEATURES` line)

       "featurename" => {
           start_time  => 0,
           end_time    => "Inf",

Conditionally Enabling Features for Beta Testers

To determine whether a user has enabled a certain feature, use this in an if-statement:

 LJ::BetaFeatures->user_in_beta( $u => "featurename" );