Difference between revisions of "Beta Features"
(correct path for enabling beta features; minor edits) |
(→Configuring your Server to List the New Feature) |
||
Line 40: | Line 40: | ||
%LJ::BETA_FEATURES = ( | %LJ::BETA_FEATURES = ( | ||
"featurename" => { | "featurename" => { | ||
+ | start_time => 0, | ||
+ | end_time => "Inf", | ||
+ | }, | ||
+ | "otherfeaturename" => { | ||
start_time => 0, | start_time => 0, | ||
end_time => "Inf", | end_time => "Inf", | ||
Line 45: | Line 49: | ||
); | ); | ||
+ | The actual names of the beta features can be found by going to [http://www.dreamwidth.org/beta?uselang=debug this page] or asking about them at <dwcomm>dw_dev_training</dwcomm>. | ||
= Conditionally Enabling Features for Beta Testers = | = Conditionally Enabling Features for Beta Testers = |
Revision as of 13:10, 19 June 2013
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-free/cgi-bin/DW/BetaFeatures/featurename.pm
#!/usr/bin/perl # # DW::BetaFeatures::featurename - Allow users to beta test featurename # # Authors: # Afuna <coder.dw@afunamatata.com> # # 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"; 1;
Refer to the base implementation at dw-free/cgi-bin/LJ/BetaFeatures/default.pm 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 ext/local/etc/config-local.pl (or look for an existing %LJ::BETA_FEATURES line)
%LJ::BETA_FEATURES = ( "featurename" => { start_time => 0, end_time => "Inf", }, "otherfeaturename" => { start_time => 0, end_time => "Inf", }, );
The actual names of the beta features can be found by going to this page or asking about them at dw_dev_training.
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" );