From fa306daf3295b6ce67d3b3657259ee265f10a605 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Fri, 23 Feb 2007 02:41:29 +0000 Subject: Bug 349423: Release Notes for Bugzilla 3.0 Patch By Max Kanat-Alexander r=LpSolit, a=mkanat --- Bugzilla/Template.pm | 12 +- docs/rel_notes.txt | 8 + skins/standard/release-notes.css | 35 + t/009bugwords.t | 6 +- template/en/default/index.html.tmpl | 12 +- template/en/default/pages/release-notes.html.tmpl | 747 ++++++++++++++++++++++ 6 files changed, 813 insertions(+), 7 deletions(-) create mode 100644 skins/standard/release-notes.css create mode 100644 template/en/default/pages/release-notes.html.tmpl diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index b4e0dcb90..800536cd5 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -35,6 +35,7 @@ package Bugzilla::Template; use strict; use Bugzilla::Constants; +use Bugzilla::Install::Requirements; use Bugzilla::Util; use Bugzilla::User; use Bugzilla::Error; @@ -57,7 +58,6 @@ use base qw(Template); # (which is how Perl implements constants) and ignoring the rest (which, if # Constants.pm exports only constants, as it should, will be nothing else). sub _load_constants { - use Bugzilla::Constants (); my %constants; foreach my $constant (@Bugzilla::Constants::EXPORT, @Bugzilla::Constants::EXPORT_OK) @@ -820,6 +820,16 @@ sub create { Bugzilla::BugMail::Send($id, $mailrecipients); }, + # These don't work as normal constants. + DB_MODULE => \&Bugzilla::Constants::DB_MODULE, + REQUIRED_MODULES => + \&Bugzilla::Install::Requirements::REQUIRED_MODULES, + OPTIONAL_MODULES => sub { + my @optional = @{OPTIONAL_MODULES()}; + @optional = sort {$a->{feature} cmp $b->{feature}} + @optional; + return \@optional; + }, }, }) || die("Template creation failed: " . $class->error()); diff --git a/docs/rel_notes.txt b/docs/rel_notes.txt index 35b36d0f8..64212a292 100644 --- a/docs/rel_notes.txt +++ b/docs/rel_notes.txt @@ -1,3 +1,11 @@ +Release Notes for Bugzilla version 3.0 and higher are available in HTML +format, either on the bugzilla.org website, or in your current installation, +linked from the index page. + +bugzilla.org links for release notes +------------------------------------ +3.0: http://www.bugzilla.org/releases/3.0/release-notes.html + *************************************** *** The Bugzilla 2.22 Release Notes *** *************************************** diff --git a/skins/standard/release-notes.css b/skins/standard/release-notes.css new file mode 100644 index 000000000..51159ae20 --- /dev/null +++ b/skins/standard/release-notes.css @@ -0,0 +1,35 @@ +/* The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Initial Developer of the Original Code is Everything Solved. + * Portions created by Everything Solved are Copyright (C) 2006 + * Everything Solved. All Rights Reserved. + * + * The Original Code is the Bugzilla Bug Tracking System. + * + * Contributor(s): Max Kanat-Alexander + */ + +#bugzilla-body { + padding: 0 1em; +} + +.req_new { + color: red; +} + +.req_table { + border-collapse: collapse; +} + +.req_table td, .req_table th { + border: 1px solid black; + padding: .25em; +} diff --git a/t/009bugwords.t b/t/009bugwords.t index 5b1a9d6ba..bf3d91f26 100644 --- a/t/009bugwords.t +++ b/t/009bugwords.t @@ -77,9 +77,9 @@ foreach my $file (@testitems) { } # "Bugzilla" - if (grep /(?|USE |= )Bugzilla/, $text) { + if (grep /(?|USE |= )Bugzilla/, $text) { push(@errors, [$lineno, $text]); next; } diff --git a/template/en/default/index.html.tmpl b/template/en/default/index.html.tmpl index 9c3a88b2f..a96f2b15e 100644 --- a/template/en/default/index.html.tmpl +++ b/template/en/default/index.html.tmpl @@ -95,9 +95,15 @@ function addSidebar() {
-

This is where we put in lots of nifty words explaining all about [% terms.Bugzilla %].

- -

But it all boils down to a choice of:

+

Welcome to [% terms.Bugzilla %]. To see what's new in this version + of [% terms.Bugzilla %], see the + release notes! + You may also want to read the + + [%- terms.Bugzilla %] User's Guide to find out more about + [%+ terms.Bugzilla %] and how to use it.

+ +

Most common actions:

  • Search existing [% terms.bug %] reports
  • Enter a new [% terms.bug %] report
  • diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl new file mode 100644 index 000000000..b81eb28d7 --- /dev/null +++ b/template/en/default/pages/release-notes.html.tmpl @@ -0,0 +1,747 @@ +[%# 1.0@bugzilla.org %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved. + # Portions created by Everything Solved are Copyright (C) 2006 + # Everything Solved. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl + title = "$terms.Bugzilla 3.0 Release Notes" + style_urls = ['skins/standard/release-notes.css'] +%] + +

    These release notes are currently a DRAFT.

    + +

    Table of Contents

    + + + +

    Introduction

    + +

    Welcome to [% terms.Bugzilla %] 3.0! It's been over eight years since + we released [% terms.Bugzilla %] 2.0, and everything has changed since + then. Even just since our previous release, [% terms.Bugzilla %] 2.22, + we've added a lot of new features. So enjoy the release, we're + happy to bring it to you.

    + +

    If you're upgrading, make sure to read How to + Upgrade From An Older Version. If you are upgrading from a release + before 2.22, make sure to read the release notes for all the + previous versions in between your version + and [% terms.Bugzilla %] 3.0.

    + +

    Minimum Requirements

    + +

    Any requirements that are new since 2.22 will look like + this.

    + + + + +

    Perl

    + +
      +
    • Perl v5.8.0 (non-Windows + platforms)
    • +
    • Perl v5.8.1 (Windows platforms)
    • +
    + +[% PROCESS db_req db='mysql' %] + +[% PROCESS db_req db='pg' %] + +

    Required Perl Modules

    + +[% INCLUDE req_table reqs = REQUIRED_MODULES + new = ['Email-MIME-Modifier', 'Email-Send'] + updated = ['DBI'] %] + +

    Optional Perl Modules

    + +

    The following perl modules, if installed, enable various + features of [% terms.Bugzilla %]:

    + +[% INCLUDE req_table reqs = OPTIONAL_MODULES + new = ['libwww-perl', 'SOAP-Lite', 'mod_perl', + 'Apache-DBI', 'Email-MIME-Attachment-Stripper', + 'Email-Reply'] + updated = ['CGI'] + include_feature = 1 %] + +

    New Features and Improvements

    + + + +

    Custom Fields

    + +

    [% terms.Bugzilla %] now includes very basic support for custom fields.

    + +

    Users in the admin group can add plain-text or drop-down + custom fields. You can edit the values available for drop-down fields + using the "Field Values" control panel.

    + +

    Don't add too many custom fields! It can make [% terms.Bugzilla %] + very difficult to use. Try your best to get along with the default + fields, and then if you find that you can't live without custom fields + after a few weeks of using [% terms.Bugzilla %], only then should you + start your custom fields.

    + +

    mod_perl Support

    + +

    [% terms.Bugzilla %] 3.0 supports mod_perl, which allows for extremely + enhanced page-load performance. mod_perl trades memory usage for performance, + allowing near-instantaneous page loads, but using much more memory.

    + +

    If you want to enable mod_perl for your [% terms.Bugzilla %], we recommend + a minimum of 1.5GB of RAM, and for a site with heavy traffic, 4GB to 8GB.

    + +

    mod_perl brings total enterprise-level performance to + [% terms.Bugzilla %], allowing a single installation to efficiently and + effectively support a large number of concurrent users.

    + +

    If performance isn't that critical on your installation, you don't + have the memory, or you are running some other web server than + Apache, [% terms.Bugzilla %] still runs perfectly as a normal CGI + application, as well.

    + +

    Shared Saved Searches

    + +

    Users can now choose to "share" their saved searches + with a certain group. That group will then be able to + "subscribe" to those searches, and have them appear + in their footer.

    + +

    If the sharer can "bless" the group he's sharing to, + (that is, if he can add users to that group), it's considered + that he's a manager of that group, and his queries show up + automatically in that group's footer (although they can + unsubscribe from any particular search, if they want.)

    + +

    In order to allow a user to share their queries, they also + have to be a member of the group specified in the + querysharegroup parameter.

    + +

    Users can control their shared and subscribed queries from + the "Preferences" screen.

    + +

    Attachments and Flags on New + [% terms.Bugs %]

    + +

    You can now add an attachment while you are filing a new + [% terms.bug %].

    + +

    You can also set flags on the [% terms.bug %] and on attachments, while + filing a new [% terms.bug %].

    + +

    Custom Resolutions

    + +

    You can now customize the list of resolutions available + in [% terms.Bugzilla %], including renaming the default resolutions.

    + +

    The resolutions FIXED, DUPLICATE + and MOVED have a special meaning to [% terms.Bugzilla %], + though, and cannot be renamed or deleted.

    + +

    Per-Product Permissions

    + +

    You can now grant users editbugs and canconfirm + for only certain products. You can also grant users editcomponents + on a product, which means they will be able to edit that product + including adding/removing components and other product-specific + controls.

    + +

    User Interface Improvements

    + +

    There has been some work on the user interface for [% terms.Bugzilla %] 3.0, + including:

    + +
      +
    • There is now navigation and a search box a the top of + each page, in addition to the bar at the bottom of the page.
    • +
    • A re-designed "Format for Printing" page for + [% terms.bugs %].
    • +
    • The layout of show_bug.cgi (the [% terms.bug %] editing + page) has been changed, and the attachment table has been redesigned.
    • +
    + +

    XML-RPC Interface

    + +

    [% terms.Bugzilla %] now has a Web Services interface using the XML-RPC + protocol. It can be accessed by external applications by going + to the xmlrpc.cgi on your installation.

    + +

    Documentation can be found in the + [% terms.Bugzilla %] + API Docs, in the various Bugzilla::WebService modules.

    + +

    Skins

    + +

    [% terms.Bugzilla %] can have multiple "skins" installed, + and users can pick between them. To write a skin, you just have to + write several CSS files. See the Custom + Skins Documentation for more details.

    + +

    We currently don't have any alternate skins shipping with + [% terms.Bugzilla %]. If you write an alternate skin, please + let us know!

    + +

    Unchangeable Fields Appear + Unchangeable

    + +

    As long as you are logged in, when viewing [% terms.abug %], if you + cannot change a field, it will not look like you can change it. That + is, the value will just appear as plain text.

    + +

    All Emails in Templates

    + +

    All outbound emails are now controlled by the templating system. + What used to be the passwordmail, whinemail, + newchangedmail and voteremovedmail + parameters are now all templates in the template/ directory.

    + +

    This means that it's now much easier to customize your outbound + emails, and it's also possible for localizers to have more + localized emails as part of their language packs, if they want.

    + +

    We also added a mailfrom parameter to let you set + who shows up in the From field on all emails that + [%+ terms.Bugzilla %] sends.

    + +

    No More Double-Filed [% terms.Bugs %]

    + +

    Users of [% terms.Bugzilla %] will sometimes accidentally submit + [% terms.abug %] twice, either by going back in their web browser, + or just by refreshing a page. In the past, this could file the same + [% terms.bug %] twice (or even three times) in a row, irritating + developers and confusing users.

    + +

    Now, if you try to submit [% terms.abug %] twice from the same screen + (by going back or by refreshing the page), [% terms.Bugzilla %] will warn + you about what you're doing, before it actually submits the duplicate + [%+ terms.bug %].

    + +

    Default CC List for Components

    + +

    You can specify a list of users who will always be added to + the CC list of new [% terms.bugs %] in a component.

    + +

    File/Modify [% terms.Bugs %] By Email

    + +

    You can now file or modify [% terms.bugs %] via email. Previous versions + of [% terms.Bugzilla %] included this feature only as an + unsupported add-on, but it is now an official interface to + [%+ terms.Bugzilla %].

    + +

    For more details see the documentation + for email_in.pl.

    + +

    Users Who Get All [% terms.Bug %] + Notifications

    + +

    There is now a parameter called globalwatchers. This + is a comma-separated list of [% terms.Bugzilla %] users who will + get all [% terms.bug %] notifications generated by [% terms.Bugzilla %].

    + +

    Group controls still apply, though, so users who can't see a [% terms.bug %] + still won't get notifications about that [% terms.bug %].

    + +

    Improved UTF-8 Support

    + +

    [% terms.Bugzilla %] users running MySQL should now have excellent + UTF-8 support if they turn on the utf8 parameter. (New + installs have this parameter on by default.) [% terms.Bugzilla %] + now correctly supports searching and sorting in non-English languages, + including multi-bytes languages such as Chinese.

    + +

    Automatic Update Notification

    + +

    If you belong to the admin group, you will be notified + when you log in if there is a new release of [% terms.Bugzilla %] + available to download.

    + +

    You can control these notifications by changing the + upgrade_notification parameter.

    + +

    Welcome Page for New Installs

    + +

    When you log in for the first time on a brand-new [% terms.Bugzilla %] + installation, you will be presented with a page that describes + where you should go from here, and what parameters you should set.

    + +

    QuickSearch Plugin for IE7 and Firefox 2

    + +

    Firefox 2 users and Internet Explorer 7 users will be presented + with the option to add [% terms.Bugzilla %] to their search bar. + This uses the + QuickSearch syntax.

    + +

    Other Enhancements and Changes

    + +

    These are either minor enhancements, or enhancements that have + very short descriptions. Some of these are very useful, though!

    + +

    Enhancements That Affect [% terms.Bugzilla %] Users

    + +
      +
    • In comments, quoted text (lines that start with >) + will be a different color from normal text.
    • +
    • There is now a user preference that will add you to the CC list + of any [% terms.bug %] you modify. Note that it's on + by default.
    • +
    • [% terms.Bugs %] can now be filed with an initial state of + ASSIGNED, if you are in the editbugs group.
    • +
    • By default, comment fields will zoom large when you are typing in them, + and become small when you move out of them. You can disable this + in your user preferences.
    • +
    • You can hide obsolete attachments on [% terms.abug %] by clicking + "Hide Obsolete" at the bottom of the attachment table.
    • +
    • If a [% terms.bug %] has flags set, and you move it to a different + product that has flags with the same name, the flags will be + preserved.
    • +
    • You now can't request a flag to be set by somebody who can't set it + ([% terms.Bugzilla %] will throw an error if you try).
    • +
    • Many new headers have been added to outbound [% terms.Bugzilla %] + [%+ terms.bug %] emails: X-Bugzilla-Status, + X-Bugzilla-Priority, X-Bugzilla-Assigned-To, + X-Bugzilla-Target-Milestone, and + X-Bugzilla-Changed-Fields, X-Bugzilla-Who. + You can look at an email to get an idea of what they contain.
    • +
    • In addition to the old X-Bugzilla-Reason email header + which tells you why you got an email, if you got an email because + you were watching somebody, there is now an + X-Bugzilla-Watch-Reason header that tells you who you + were watching and what role they had.
    • +
    • If you hover your mouse over a full URL (like + http://bugs.mycompany.com/show_bug.cgi?id=1212) that + links to [% terms.abug %], you will see the title of the + [%+ terms.bug %]. Of course, this only works for [% terms.bugs %] in your + [%+ terms.Bugzilla %] installation.
    • +
    • If your installation has user watching enabled, you will now see + the users that you can remove from your watch-list as a multi-select + box, much like the current CC list. (Previously it was just a text + box.)
    • +
    • When a user creates their own account in [% terms.Bugzilla %], the + account is now not actually created until they verify their email + address by clicking on a link that is emailed to them.
    • +
    • You can change [% terms.abug %]'s resolution without reopening it.
    • +
    • When you view the dependency tree on [% terms.abug %], resolved + [%+ terms.bugs %] will be hidden by default. (In previous versions, + resolved [% terms.bugs %] were shown by default.)
    • +
    • When viewing [% terms.bug %] activity, fields that hold [% terms.bug %] + numbers (such as "Blocks") will have the [% terms.bug %] numbers + displayed as links to those [% terms.bugs %].
    • +
    • When viewing the "Keywords" field in a [% terms.bug %] list, + it will be sorted alphabetically, so you can sanely sort a list on + that field.
    • +
    • In most places, the Version field is now sorted using a version-sort + (so 1.10 is greater than 1.2) instead of an alphabetical sort.
    • +
    • Options for flags will only appear if you can set them. So, for + example, if you can't grant + on a flag, that option + won't appear for you.
    • +
    • You can limit the product-related output of config.cgi + by specifying a product= URL argument, containing the name + of a product. You can specify the argument more than once for multiple + products.
    • +
    • You can now search the boolean charts on whether or not a comment + is private.
    • +
    + +

    Enhancements For Administrators

    + +
      +
    • Administrators can now delete attachments, making them disappear + entirely from [% terms.Bugzilla %].
    • +
    • sanitycheck.cgi can now only be accessed by users + in the editcomponents group.
    • +
    • The "Field Values" control panel can now only be accessed + by users in the admin group. (Previously it was accessible + to anybody in the editcomponents group.)
    • +
    • There is a new parameter announcehtml, that will allow + you to enter some HTML that will be displayed at the top of every + page, as an announcement.
    • +
    • The loginnetmask parameter now defaults to 0 for new + installations, meaning that as long as somebody has the right + login cookie, they can log in from any IP address. This makes + life a lot easier for dial-up users or other users whose IP + changes a lot. This could be done because the login cookie is now + very random, and thus secure.
    • +
    • Classifications now have sortkeys, so they can be sorted in an + order that isn't alphabetical.
    • +
    • Authentication now supports LDAP over SSL (LDAPS) or TLS (using + the STARTLS command) in addition to plain LDAP.
    • +
    • LDAP users can have their LDAP username be their email address, + instead of having the LDAP mail attribute be their + email address. You may wish to set the emailsuffix + parameter if you do this.
    • +
    • Administrators can now see what has changed in a user account, + when using the "Users" control panel.
    • +
    • REMIND and LATER are no longer part + of the default list of resolutions. Upgrading installations will + not be affected--they will still have these resolutions.
    • +
    • editbugs is now the default for the timetrackinggroup + parameter, meaning that time-tracking will be on by default in a new + installation.
    • +
    + +

    Outstanding Issues

    + +
      +
    • + [%- terms.Bug %] 370739: There is a problem in Firefox 2.0 that + sometimes causes the [% terms.bug %] editing page to render incorrectly + after editing a [% terms.bug %].
    • +
    • + [%- terms.Bug %] 69621: If you rename or remove a keyword that is + in use on [% terms.bugs %], you will need to rebuild the "keyword cache" + by running sanitycheck.cgi and choosing + the option to rebuild the cache when it asks. Otherwise keywords may + not show up properly in search results.
    • +
    • + [%- terms.Bug %] 99215: Flags are not protected by "mid-air + collision" detection. Nor are any attachment changes.
    • +
    • + [%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at + the same time, there is no "mid-air collision" protection.
    • +
    • + [%- terms.Bug %] 276230: The support for restricting access to + particular Categories of New Charts is not complete. You should treat + the 'chartgroup' Param as the only access mechanism available. + +

      However, charts migrated from Old Charts will be restricted to + the groups that are marked MANDATORY for the corresponding Product. + There is currently no way to change this restriction, and the + groupings will not be updated if the group configuration + for the Product changes.

    • +
    + +

    How to Upgrade From An Older Version

    + +

    Notes For Upgraders

    + +
      +
    • If you upgrade by CVS, there are several .cvsignore files + that are now in CVS instead of being locally created by + checksetup.pl. This means that you will have to + delete those files when CVS tells you there's a conflict, and + then run cvs update again.
    • +
    • In this version of [% terms.Bugzilla %], the Summary field + is now limited to 255 characters. When you upgrade, any Summary + longer than that will be truncated, and the old summary will be + preserved in a comment.
    • +
    • If you have the utf8 parameter turned on, at some + point you will have to convert your database. checksetup.pl + will tell you when this is, and it will give you certain instructions + at that time, that you have to follow before you can complete + the upgrade. Don't do the conversion yourself manually--follow + the instructions of checksetup.pl.
    • +
    • You should also read the Outstanding Issues sections of + older release notes if you are upgrading + from a version lower than 2.22.
    • +
    + +

    Steps For Upgrading

    + +
      +
    1. Read these entire Release Notes, particularly the "Notes for + Upgraders" section above.
    2. + +
    3. View the Sanity Check page on your + installation before upgrading. Attempt to fix all warnings that + the page produces before you go any further, or you may experience + problems during your upgrade.
    4. + +
    5. Make a backup of the [% terms.Bugzilla %] database before you upgrade, + perhaps by using mysqldump. THIS IS VERY + IMPORTANT. If anything goes wrong during the upgrade, your + installation can be corrupted beyond recovery. Having a backup keeps you + safe. + +

      Example: mysqldump -u root -p [% terms.bugs %] > + [% terms.bugs %]-db.sql

    6. + +
    7. Replace the files in your installation with the new version of + [% terms.Bugzilla %], or you can try to use CVS to upgrade. + +

      You can also use a brand-new [% terms.Bugzilla %] directory, as long + as you copy over the old data/ directory and the + localconfig file to the new installation.

    8. + +
    9. Now follow the standard + + [%- terms.Bugzilla %] installation process.
    10. + +
    11. Run checksetup.pl after you install the new version.
    12. + +
    13. View the Sanity Check page again after + you run checksetup.pl.
    14. + +
    15. It is recommended that, if possible, you fix any problems you find + immediately. Failure to do this may mean that [% terms.Bugzilla %] will + not work correctly. Be aware that if the sanity check page contains more + errors after an upgrade, it doesn't necessarily mean there are more + errors in your database than there were before, as additional tests + are added to the sanity check over time, and it is possible that those + errors weren't being checked for in the old version.
    16. +
    + +

    Code Changes Which May Affect + Customizations

    + + + +

    Packagers: Location + Variables Have Moved

    + +

    In previous versions of [% terms.Bugzilla %], Bugzilla::Config + held all the paths for different things, such as the path to localconfig + and the path to the data/ directory.

    + +

    Now, all of this data is stored in a subroutine, + Bugzilla::Constants::bz_locations.

    + +

    Also, note that for mod_perl, bz_locations must return + absolute (not relative) paths. There is already code in that + subroutine to help you with this.

    + +

    Hooks!

    + +

    [% terms.Bugzilla %] now supports a code hook mechanism. See the + documentation for + Bugzilla::Hook + for more details.

    + +

    This gives [% terms.Bugzilla %] very advanced plugin support. You can + hook templates, hook code, add new parameters, and use the XML-RPC + interface. So we'd like to see some [% terms.Bugzilla %] plugins + written! Let us know on the developers@bugzilla.org + mailing list if you write a plugin.

    + +

    If you need more hooks, please + File a + bug!

    + +

    API Documentation

    + +

    [% terms.Bugzilla %] now ships with all of its perldoc built + as HTML. Go ahead and read the + API Documentation + for all of the [% terms.Bugzilla %] modules now! Even scripts like + checksetup.pl have HTML documentation.

    + +

    Elimination of globals.pl

    + +

    The old file globals.pl has been eliminated. + Its code is now in various modules. Each function went to the module + that was appropriate for it.

    + +

    Usually we filed [% terms.abug %] in + bugzilla.mozilla.org for + each function we moved. You can search there for the old name of + the function, and that should get you the information about what + it's called now and where it lives.

    + +

    Cleaned Up Variable Scoping Issues

    + +

    In normal perl, you can have code like this:

    +
    my $var = 0;
    +sub y { $var++ }
    + +

    However, under mod_perl that doesn't work. So variables are no + longer "shared" with subroutines--instead all variables + that a subroutine needs must be declared inside the subroutine itself.

    + +

    No More SendSQL

    + +

    The old SendSQL function and all of its companions are + gone. Instead, we now use DBI for all database + interaction.

    + +

    For more information about how to use + DBI with + [% terms.Bugzilla %], see the + Developer's + Guide Section About DBI

    + +

    Auth Re-write

    + +

    The Bugzilla::Auth family of modules have been completely + re-written. For details on how the new structure of authentication, + read the + Bugzilla::Auth + API docs.

    + +

    It should be very easy to write new authentication plugins, now.

    + +

    Bugzilla::Object

    + +

    There is a new base class for most of our objects, + Bugzilla::Object. + It makes it really easy to create new objects based on things that are + in the database.

    + +

    Bugzilla->request-cache

    + +

    Bugzilla.pm used to cache things like the database + connection in package-global variables (like $_dbh). + That doesn't work in mod_perl, so instead now there's a hash + that can be accessed through Bugzilla->request_cache + to store things for the rest of the current page request.

    + +

    You shouldn't access Bugzilla->request_cache directly, + but you should use it inside of Bugzilla.pm if you modify + that. The only time you should be accessing it directly is if you need + to reset one of the caches. Hash keys are always named after the function + that they cache, so to reset the template object, you'd do: + delete Bugzilla->request_cache->{template};.

    + +

    Other Changes

    + +
      +
    • checksetup.pl has been completely re-written, and most + of its code moved into modules in the Bugzilla::Install + namespace. See the + checksetup + documentation and [% terms.Bugzilla %] + [%+ terms.bug %] 277502 for details.
    • +
    • Instead of UserInGroup(), all of [% terms.Bugzilla %] now + uses Bugzilla->user->in_group
    • +
    • mod_perl doesn't like dependency loops in modules, so we now have + a test for that detects dependency loops in modules when you run + runtests.pl.
    • +
    • globals.pl used to modify the environment variables, + like PATH. That now happens in Bugzilla.pm.
    • +
    • Templates can now link to the documentation more easily. + See the global/code-error.html.tmpl and + global/user-error.html.tmpl templates for examples. + (Search for "docslinks.")
    • +
    • Parameters are accessed through Bugzilla->params + instead of using the Param() function, now.
    • +
    • The variables from the localconfig file are accessed + through the Bugzilla->localconfig hash instead of through + Bugzilla::Config.
    • +
    • Bugzilla::BugMail::MessageToMTA() has moved into its + own module, along with other mail-handling code, called + Bugzilla::Mailer
    • +
    • The CheckCanChangeField() subroutine in + process_bug.cgi has been moved to Bugzilla::Bug, + and is now a method of a [% terms.bug %] object.
    • +
    • The code that used to be in the global/banner.html.tmpl + template is now in global/header.html.tmpl. The banner + still exists, but the file is empty.
    • +
    + +

    Release Notes For Previous Versions

    + +

    Release notes for versions of [% terms.Bugzilla %] for versions + prior to 3.0 are only available in text format: + Release Notes for [% terms.Bugzilla %] 2.22 + and Earlier.

    + +[% INCLUDE global/footer.html.tmpl %] + +[% BLOCK db_req %] + [% SET m = DB_MODULE.$db %] +

    For [% m.name FILTER html %] + Users

    + +
      +
    • [% m.name FILTER html %] v[% m.db_version FILTER html %]
    • +
    • perl module: + [%+ m.dbd.module FILTER html %] v[% m.dbd.version FILTER html %]
    • +
    +[% END %] + + +[% BLOCK req_table %] + + + + [% IF include_feature %] + + [% END %] + + [% FOREACH req = reqs %] + + + + [% IF include_feature %] + + [% END %] + + [% END %] +
    Module VersionEnables Feature
    + [%- req.module FILTER html %] + [%- IF req.version == 0 %] + (Any) + [% ELSE %] + [%- req.version FILTER html %] + [% END %] + [% req.feature FILTER html %]
    +[% END %] -- cgit v1.2.3-24-g4f1b