Origo Releases

Contents

Guidelines

This page serves as a changelog for Origo's main as well as interim releases. As such, it shall be a detailed, precise, concise and technical log containing all changes.

  • Sort each item into categories NEW, CHANGE and FIX
  • Where possible, link to an issue-tracker page related to the item.
  • While writing in a technical style, give enough information for an outside developer to track the steps
    • Where not immediately obvious, give the filename(s) or section-names where you implemented an item, i.e. "settings.inc", "theme folder", or "install profile".


Changelog

An archive of older changes can be found here.


2011-11-07 - Maintenance

aranea: 20110318-Release-1-1-10 / 1.1.10 | origo backend: 20111107-Release-1-1-26 | origo database: 1.0.19 | origo frontend: 20111107-Release-1-0-32 | origo frontend database: 1.0.26 | packaging: 20111107-Release | Milestone: 2011.6

  • NEW: Include log message and diffs for all commits of a single push (#1199)
  • CHANGE: Update to newer versions:
  • FIX: Restore permissions for owners to delete issues (regression from last update), #1410
  • FIX: Drupal Module's Update History Lost in our Packages (#1121)
  • FIX: Release-Page Doesn't Properly Handle HTML Descriptions (#1411)
  • FIX: Update Initial Project-Creation Script (#1414)

2011-07-06 - TQL Beta

aranea: 20110318-Release-1-1-10 / 1.1.10 | origo backend: 20110425-Release-1-1-25 | origo database: 1.0.19 | origo frontend: 20110706-Release-1-0-31 | origo frontend database: 1.0.25 | packaging: 20110706-Release | Milestone: 2011.5

  • NEW: TQL Search, incl. issue tracker integration (#843)
    Note: this is releases as a beta, and will only be enabled on selected projects.
  • CHANGE: update to newer versions of
    Updated patch for upload.module & robots.txt
  • CHANGE: Enable Bypassing Spam-Filters for Project Members (#1390)
  • CHANGE: Disable Update Module on All Projects (#1392)
  • CHANGE: Disable update module (#1392)
  • CHANGE: Remove old Mediawiki Backup Library (#1404)
  • FIX: Wrong path for user icons (#1345)
  • FIX: Home Button vs. Home Logo (#1352)
  • FIX: Handle TQL Mismatch Gracefully (#1406)

2011-04-24 - Maintenance

aranea: 20110318-Release-1-1-10 / 1.1.10 | origo backend: 20110425-Release-1-1-25 | origo database: 1.0.19 | origo frontend: 20110425-Release-1-0-30 | origo frontend database: 1.0.24 | packaging: 20110425-Release | Milestone: 2011.4

  • NEW: Support Blacklisting Emails for Registration (#1360)
  • CHANGE: update to newer versions of
    • drupal 6.20
    • geshifilter-6.x-1.4
    • google_analytics-6.x-3.3
    • wikitools-6.x-1.3
    Removed patch for geshifilter as this is included in new version
    Updated patch for upload.module
  • FIX: Crash of storage node with too many projects (#1340)
  • FIX: Equal Names of Personal Filters Clash (#1341)
  • FIX: Fix Warning When Updating Session Data (#1361)

2011-03-19 - Issue Tracker

aranea: 20110318-Release-1-1-10 / 1.1.10 | origo backend: 20110318-Release-1-1-24 / 1.1.24 | origo database: 1.0.19 | origo frontend: 20110318-Release-1-0-29 | origo frontend database: 1.0.24 | packaging: 20110318-Release

  • NEW: Make Personal Issue Filters Bookmarkable (#1236)
  • NEW: Can't Save Filter By Pressing Enter (#1333)
  • CHANGE: Remove Obsolete Tables and Classes of Old Workitem System (#1190)
  • CHANGE: Project Creation should ignore Uppercase letters on Projectname (#1314)
  • FIX: User icon not shown on project settings if the path ends with a slash (#1332)

2011-02-28 - Security Release

aranea: 20110219-Release-1-1-9 / 1.1.9 | origo backend: 20110219-Release-1-1-23 / 1.1.23 | origo database: 1.0.19 | origo frontend: xxxx / 1.0.28 | origo frontend database: 1.0.23 | packaging: 20110228-Release

  • CHANGE: Security update to captcha 6.x-2.4

2011-02-19 - Fixing Annoyances

aranea: 20110219-Release-1-1-9 / 1.1.9 | origo backend: 20110219-Release-1-1-23 / 1.1.23 | origo database: 1.0.18 | origo frontend: 20110219-Release-1-0-27 / 1.0.27 | origo frontend database: 1.0.22 | packaging: 20110219-Release

  • CHANGE: Build environment
    • Per default don't build Aranea nodes
    • Test target depends on building everything
  • CHANGE: Only send RRD updates for values > 0 (#1300)
  • CHANGE: Removed project list messages & associated code (#1291)
  • CHANGE: Removed project list from frontend, (#1291)
  • CHANGE: Removed unused workaround code in origo_auth module
  • CHANGE: Focus on username field on Login page (#771)
  • FIX: Require confirmation when manipulating the last owner of a project (#1273)
  • FIX: Reply to a issue removes the work amount (#1081)
  • FIX: Project creation: Capital Letters don't show error message (#1204)
  • FIX: Automatically use lowercase name in project-creation form (#1306)
  • FIX: Hook_Cron of origo_home(#1298)
  • FIX: Don't Redirect on Code 302 in DrupalUserAgent Script (#1299)
  • FIX: Show error when account activation in the back-end fails (#1304)
  • FIX: Description should be required on project creation (#1311)

2011-01-20 - Maintenance

aranea: 20110120-Release-1-1-8 / 1.1.8 | origo backend: 20110120-Release-1-1-22 / 1.1.22 | origo database: 1.0.18 | origo frontend: 20110120-Release-1-0-26 / 1.0.26 | origo frontend database: 1.0.22 | packaging: 20110120-Release

  • NEW: Switched to ant based build
  • NEW: Use "SmartCron" for Drupal cron, so inactive projects aren't updated daily (#1227)
  • NEW: New internal API call "retrieve_active_projects" for use with SmartCron script (#1227)
  • CHANGE: Adjusted to dependencies moved to Aranea (e.g. EMS)
  • CHANGE: Use Java mail node in testsuite
  • CHANGE: Slightly increased image-assist popup size (#970)
  • CHANGE: Removed "report an issue" link in the Origo menu (#1261)
  • CHANGE: update to newer versions of
    • google_analytics-6.x-3.0
    • image-6.x-1.1
    • pathauto-6.x-1.5
    • token-6.x-1.15
    • views-6.x-2.12
API Change

There's only one change - a new API call, used internally, in conjunction with #1227.

  • internal_origo_system.retrieve_active_projects
    Was: -
    New: internal_origo_system.retrieve_active_projects (threshold: integer, retrieveOlder: boolean): array[String]
  • FIX: Added dependency on imagemagick
  • FIX: Adapted testsuite to handle printed-quotable encoded subject lines (#892, Aranea #85)
  • FIX: Fixed google analytics tracking on origo@eth
  • FIX: Require instead of include once as otherwise the variable conf might not be initialized correctly, fixes #1262
  • FIX: User Icon URL is Hardcoded to Subdomain #1251
  • FIX: Obsolete Tags Remain Indefinitely in AutoComplete Suggestions #1238
  • FIX: Special chars in image titles: allow curly braces & properly handle underscores. Fixes Oriact #2.

2010-10-29 - Git Support

aranea: 20100416-Release-1-1-7 / 1.1.7 | origo backend: 20101029-Release-1-1-21 / 1.1.21 | origo database: 1.0.18 | origo frontend: 20101029-Release-1-0-25 / 1.0.25 | origo frontend database: 1.0.21 | packaging: 20101029-Release

  • NEW: Extend Back-End with the notion of an RCS #1144
  • NEW: Extend Front-End with the notion of an RCS #1159
  • NEW: Git Support for Appliance #1100
    • Proper post-receive hooks for Git #1154
    • Access Permissions for Gitweb #1155
    • Git: Execute Repo-/Project Deletion on Disk #1157
    • Support Long Hex Numbers as Revision IDs #1164
    • Execute Git/Svn Repo Creation when Changing Project Type #1166
    • Only show Git Repos in Projects with the appropriate RCS type #1167
    • Include Git Repos in Statistics #1176
    • Backup of Git Repositories #1178
    • Add Git Instructions/Help #1179
    • Restrict File Names of Git Repositories #1180
    • Integrate Git Repositories on "Development" page #1183
    • Show Git Repository URLs on Overview Page #1184
    • Git Commit-Hook sometimes Fails #1185
    • Ommit Writing to stdout in Commit Hook #1186
  • NEW: Project Request Mail Should Include Visibility #1146
  • NEW: Batch Support of RRD Update #1156
  • NEW: Add Custom Hook-Functions to Origo's Navigation #1158
  • NEW: Show Disabled Option for Client Role #1181
  • NEW: Show Access Matrix to Users #1182
API Change

All API call changes are related to issue #1144 and #1159: All calls that interact with administrating projects (request, create, change, etc.) need to be aware of the project's RCS type, i.e. either Git or Subversion.


Public API calls:

  • project.add
    Was: project.add(session: String, project_name: String, description: String, owner: String, project_type: int, project_visibility: int): boolean
    New: project.add(session: String, project_name: String, description: String, owner: String, project_type: int, rcs_type: int, project_visibility: int): boolean
  • project.request_retrieve
    Was:
    project.request_retrieve(session: String, project_name: String): struct[
    request_id: int,
    user_name: String,
    user_email: String,
    name: String,
    description: String,
    project_type: int,
    project_visibility: int
    ]
    New:
    project.request_retrieve(session: String, project_name: String): struct[
    request_id: int,
    user_name: String,
    user_email: String,
    name: String,
    description: String,
    project_type: int,
    rcs_type: int,
    project_visibility: int
    ]
  • project.retrieve_settings
    Was:
    project.retrieve_settings(session: String, project_id: int): array[struct[
    project_id: int,
    name: String,
    logo: String,
    project_type: int,
    project_visibility: int,
    svn_path_doc: String,
    project_pretty_name: String,
    creation_time: int
    ]]
    New:
    project.retrieve_settings(session: String, project_id: int): array[struct[
    project_id: int,
    name: String,
    logo: String,
    project_type: int,
    rcs_type: int,
    project_visibility: int,
    svn_path_doc: String,
    project_pretty_name: String,
    creation_time: int
    ]]
  • workitem.retrieve
    Was:
    workitem.retrieve (session: string, workitem_id_list: array[int]): dictionary[workitem_id => [
    id: int,
    type_id: int,
    timestamp: int,
    project_id: int,
    project_name: string,
    user_id: int,
    user_name: string,
    reference: string,
    title: string,
    revision: int,
    previous_revision: int,
    diff: string,
    comment_text: string,
    is_new: bool,
    comment_type: string,
    log: string,
    tags: string,
    project_issue_id: int,
    deadline: int,
    work_amount: int,
    description: string,
    attachments: { id: int, file_name: string, description: string },
    release_id: int,
    release_version: string,
    release_description: string,
    release_files: { name: string, platform: string },
    is_private: bool,
    ]]
    New:
    workitem.retrieve (session: string, workitem_id_list: array[int]): dictionary[workitem_id => [
    id: int,
    type_id: int,
    timestamp: int,
    project_id: int,
    project_name: string,
    user_id: int,
    user_name: string,
    reference: string,
    title: string,
    revision: String,
    previous_revision: String,
    diff: string,
    comment_text: string,
    is_new: bool,
    comment_type: string,
    log: string,
    tags: string,
    project_issue_id: int,
    deadline: int,
    work_amount: int,
    description: string,
    attachments: { id: int, file_name: string, description: string },
    release_id: int,
    release_version: string,
    release_description: string,
    release_files: { name: string, platform: string },
    is_private: bool,
    ]]

Internal API calls:

  • internal_commit.add
    Was: internal_commit.add(user_name: String, project_name: String, revision_id: int, description: String, diff: String): boolean
    New: internal_commit.add(user_name: String, project_name: String, revision_id: String, description: String, diff: String, webReference: String): boolean
  • internal_project.change_type
    Was: internal_project.change_type(session: String, project_id: int, project_type: int, project_visibility: int): boolean
    New: internal_project.change_type(session: String, project_id: int, project_type: int, rcs_type: int, project_visibility: int): boolean
  • internal_project.retrieve
    Was: internal_project.retrieve(project_id: int): struct[ project_id: int, name: String, description: String, logo: String, project_type: int ]
    New: internal_project.retrieve(project_id: int): struct[ project_id: int, name: String, description: String, logo: String, project_type: int, rcs_type: int ]
  • internal_project.list_repositories
    Was: -
    New: internal_project.list_repositories (session: String, project_id: int): array [name: string]
  • internal_project.add_repositories
    Was: -
    New: internal_project.add_repositories (session: String, project_id: int, name: String): boolean
  • internal_project.remove_repositories
    Was: -
    New: internal_project.remove_repositories (session: String, project_id: int, name: String): boolean
  • CHANGE: Change Aranea Message Generation to use Eclipse Xtext #1151
  • CHANGE: Display Repository Links Using Theme Function #1187
  • CHANGE: Provide Function for Retrieving a Project's Type #1189
  • CHANGE: Provide a way to differentiate one theme for one installation from another #1148
  • FIX: Add svn-props to all files #1143
  • FIX: Warnings in Issue Tracker #1145
  • FIX: Backend doesn't Validate Project_Type and Project_Visibility #1147
  • FIX: Filter-Type for workitem.list Accepts Negative Values in API node #1169

2010-09-17 - New Design

aranea: 20100416-Release-1-1-7 / 1.1.7 | origo backend: 20100917-Release-1-1-20 / 1.1.20 | origo database: 1.0.17 | origo frontend: 20100917-Release-1-0-24 / 1.0.24 | origo frontend database: 1.0.21 | packaging: 20100416-Release

Note: This is an intermediate release, and is not deployed, i.e. installed on origo.ethz.ch
  • NEW: Brand new theme for Origo, Oxymoron
  • NEW: Annotate changed tags in email notifications #780
  • NEW: Visibility changes for wiki pages in Workitem #759
  • NEW: Revision Issue-Edits in Back-End #1099
API Change

By also revisioning issue edits, there are now two kinds of revisions stored in the `issue_revision` table:

  • Revisions of issue descriptions (the main/initial issue text)
  • Revisions of issue comments

This API change is somewhat tricky: it's the semantics of the returned revisions has changed. In Origo <=2010.3, the "oldest" revision (i.e. the first revision of a given issue) always contained the most recent issue-description. This has now changed - the issue.retrieve API call's response now contains a new flag for each revision, revision_text_type_N, denoting whether this revision is of a comment or the issue-description. The returned revision "#1" is thus the initially posted description, and to get the most recent description text clients have to process the revisions.

  • issue.retrieve
    issue.retrieve(session: String, project_issue_id: int, project_id: int): struct[
    issue_id: int, creation_time: int, last_modified: int, is_private: boolean,
    user: String, title: String, tags: String, deadline: int, work_amount: int, revision_count: int,
    revision_user_X: String, revision_creationtime_X: int,
    revision_text_X: String, revision_tags_X: String
    ]
    issue.retrieve(session: String, project_issue_id: int, project_id: int): struct[
    issue_id: int, creation_time: int, last_modified: int, is_private: boolean,
    user: String, title: String, tags: String, deadline: int, work_amount: int, revision_count: int,
    revision_user_X: String, revision_creationtime_X: int,
    revision_text_X: String, revision_text_type_X: int, revision_tags_X: String
    ]
  • CHANGE: Refactor Issue Handling in Storage Node #1104
  • CHANGE: Check Feed Cache Before Calling Back-End #1115
  • CHANGE Update to newer Core & 3rd party modules (Diff, jQuery-UI, Pathauto, Token)
  • FIX: Base64 library not always loaded #1078
  • FIX: Can't delete issues anymore #1084
  • FIX: Strike-through "Post Reply" links #1085
  • FIX: size display of release files #1089
  • FIX: Issue statistics broken #1091
  • FIX: "Save current filter" Shown to Anonymous Users #1092
  • FIX: Username-restrictions wrong on website #1098
  • FIX: ISSUE_ACCESS contains obsolete, unreferenced features #1103
  • FIX: Proper escaping on Reported Issues Page #1113
  • FIX: Exception in workitem.list with invalid arguments #1114

2010-08-10 - Custom Issue Filters

aranea: 20100416-Release-1-1-7 / 1.1.7 | origo backend: 20100806-Release-1-1-19 / 1.1.19 | origo database: 1.0.16 | origo frontend: 20100806-Release-1-0-23 / 1.0.23 | origo frontend database: 1.0.17 | packaging: 20100806-Release

  • NEW: Enabled additional languages for code highlighting (#938)
  • NEW: Added application key for hudson plugin (issue #980)
  • NEW: Strike-through issue links when the issue is closed (#886)
  • NEW: Update to newer mediawiki version (#994)
  • NEW: Update to newer GeshiFilter version
  • NEW: "Take" Button to assign an issue to oneself (#993)
  • NEW: Make nr of issues displayed customizable (#841)
  • NEW: Page "Reported Issues" List (#868)
  • NEW: New Setting "rss show unread" (#1013)
  • NEW: New Setting "issues per page" (#841)
  • NEW: Back-end test suite encompasses sent out emails (#981)
  • NEW: Use icon for "Go To Project" (#445)
  • NEW: Custom categories in Issue Tracker (#995)
    • Automagically add dynamic filters for all tags delimiter-separated tags
    • Make filter-list drag'n'dropable, store filter-order as project-wide setting
    • Grant possibility to hide/show filters
  • NEW: Make the project frontpage configurable (#830)
  • CHANGE: Update on comments use diff (#261)
  • CHANGE: Enhance project-request email subject (#998)
  • CHANGE: Annotate project-creation log (#1000)
  • CHANGE: Use Horizontal Layout when Submitting/Editing Issues (#1009)
  • CHANGE: Use Horizontal Layout on project-creation form
  • CHANGE: Update to newer activemq (#987)
  • CHANGE: Allow all files to be uploaded, regardless of its extension (#855)
  • CHANGE: Code blocks now show line-numbers
  • CHANGE: Issue descriptions are not mandatory anymore (fixes #627 by lifting restriction)
  • CHANGE: Issue tracker refactoring
    • now generates HTML code more efficient (#1018)
    • Some design refactoring
API Change

We now propagate the private status of blog-entries and comments to the back-end, and are thus respected in work item notifications (fixes/implements #985).

  • internal_blog.add
    Was: internal_blog.add(session: String, project_id: int, title: String, diff: String, revision_id: int, old_revision_id: int): boolean
    New: internal_blog.add(session: String, project_id: int, title: String, diff: String, revision_id: int, old_revision_id: int, private: boolean): boolean
  • internal_comment.add
    Was: internal_comment.add(session: String, project_id: int, title: String, text: String, reference_url: String, is_new: boolean, comment_type: String): boolean
    New: internal_comment.add(session: String, project_id: int, title: String, text: String, reference_url: String, is_new: boolean, comment_type: String, private: boolean): boolean

The "reported issues" page is now paginated (#868)

  • user.reported_issues_count
    Was: -
    New: user.reported_issues_count(session: String): integer
  • user.list_reported_issues
    Was: user.list_reported_issues(session: String, user_name: String): array[struct[
    project_issue_id: int,
    project_name: String,
    creation_time: int,
    title: String,
    tags: String
    ]]
    New: user.list_reported_issues(session: String, start: int, limit: int, sort_column: String, sort_direction: String): array[struct[
    issue_id: int,
    title: String,
    deadline: int,
    work_amount: int,
    project_name: String,
    last_updated: int,
    tags: String,
    status: String,
    assigned: String
    ]]
    Note that:
    • sort_column must be one of the corresponding back-end columns, valid values currently are: <<"project_issue_id", "title", "deadline", "work_amount", "project_name", "last_updated", "tags", "status", "assigned">> (see feature reported_issues_columns in class ISSUE_ACCESS
    • sort_direction must be either "asc" or "desc"
  • FIX: Use correct icon for blog-workitems (#986)
  • FIX: Highlight changes to special tags (#839)
  • FIX: Clicking on mark all as read results in 404 (#941)
  • FIX: RSS Feed shows "created" wiki if it is changed (#959)
  • FIX: Dashboard not working if there are no workitems (#0)
  • FIX: Project removal results in database error (#682)
  • FIX: User Keys (#967)
  • FIX: SVN Links in commit mails wrong (#963)
  • FIX: Improve sign in message and other usability ugliness (#991)
  • FIX: Adapt text on 403 page to be "nicer" (#992)
  • FIX: RSS feed does not take read flag into account (#942)
  • FIX: Typo in invite-friends page (#960)
  • FIX: Wiki Workitem Notifications Prints Title Instead of Date (#1016)
  • FIX: Refrain from creating Issue-Nodes when an error in the backend occurs (#675)
  • FIX: Sanatize dashboard titles (#996)
  • FIX: origo_statistics checks closed-source access via role instead of permission (#849)

2010-04-05 - New Work Item System and Dashboard

aranea: 20100416-Release-1-1-7 / 1.1.7 | origo backend: 20100511-Release-1-1-18 / 1.1.18 | origo database: 1.0.15 | origo frontend: 20100416-Release-1-0-22 / 1.0.22 | origo frontend database: 1.0.19 | packaging: 20100511-Release

Back-End
  • NEW: Use POLICY_CACHE_ACCESS class for database access for policy related operations (fixes #888)
  • NEW: Utility function to read integers and strings that possible are NULL in the database (fixes #894)
  • CHANGE: New Workitem System (issue #893)
    • Brand new workflow and handling of work items in Storage node.
    • Introduce the notion of "simple" and "full" work items, the former giving an overview over the work item, the latter providing full details.
API Change

With the new work item system, a number of API calls were changed. Note that while workitem.list and workitem.retrieve are retained, they completely changed.

  • workitem.list_project - Removed
  • workitem.list_projects - Removed
  • workitem.list
    Was: workitem.list(session: String, limit: int, unread_only: boolean): array[workitem_list_struct]
    New: workitem.list (session: String, project_id_list: array[int], unread_only: bool, filter_type: int, start: int, limit: int, sort_column: string, sort_order: string): array[simple_workitem_dictionary]

where simple_workitem_dictionary is:

  1. {
  2.   id: int,
  3.   type_id: int,
  4.   timestamp: int,
  5.   project_id: int,
  6.   project_name: string,
  7.   user_id: int,
  8.   user_name: string,
  9.   reference: string,
  10.   title: string,
  11.   is_new: bool,
  12.   is_read: bool
  13. }

  • workitem.retrieve
    Was: workitem.retrieve (session: string, workitem_id: int): struct[user: String, type: int, project: String, url: String, project_id: int, workitem_id: int, creation_time: int, ...]
    New: workitem.retrieve (a_session: string, workitem_id_list: array[int]): dictionary[full_workitem_dictionary]

where the result/reply is a mapping from the work item's ID to a full_workitem_dictionary:

  1. {
  2. {
  3.   id: int,
  4.   type_id: int,
  5.   timestamp: int,
  6.   project_id: int,
  7.   project_name: string,
  8.   user_id: int,
  9.   user_name: string,
  10.   reference: string,
  11.   title: string,
  12.  
  13.   # Here the extended details begin
  14.   # Note: these are optional, and depend on the value of "type_id"
  15.  
  16.   revision: int,
  17.   previous_revision: int,
  18.   diff: string,
  19.   comment_text: string,
  20.   is_new: bool,
  21.   comment_type: string,
  22.   log: string,
  23.   tags: string,
  24.   project_issue_id: int,
  25.   deadline: int,
  26.   work_amount: int,
  27.   description: string,
  28.   attachments: { id: int, file_name: string, description: string },
  29.   release_id: int,
  30.   release_version: string,
  31.   release_description: string,
  32.   release_files: { name: string, platform: string },
  33.   is_private: bool,
  34. }
  35. }

  • user.disable_account
    Was: user.disable_account(session: string): boolean
    New: user.disable_account(session: string, user_name: string): boolean
    Note that the second argument can only be used by Origo Administrators, it is ignored for every other user category (and thus the user associated with the session is disabled).
  • workitem.count
    New: workitem.count (session: string, project_id_list: array[int], unread_only: bool, filter_type: int): int
    This API call retrieves the number of work items according to the given parameters. It is used in Origo's Dashboard for pagination calculations.
  • New: workitem.new_activity
    New: workitem.new_activity (session: string): array[int]
    This API call can be used to retrieve a list of project IDs where there is new activity for a given user
  • CHANGE: separate back- and front-end user roles (fixes #879)
  • CHANGE: USER_ACCESS extends new POLICY_CACHE_ACCESS class (part of #888)
  • CHANGE: Pass reference to generating interface class to access-layer objects (fixes #890)
  • CHANGE: Move function "retrieve_tag_id" from workitem- to issue-access (fixes #895)
  • CHANGE: Move "insert_tag_text" to its proper place in ISSUE_ACCESS
  • CHANGE: Handle (issue) attachments with sequences instead of maps within Aranea messages (new workitem system, #893)
  • CHANGE: Allow empty tags (besides the special ones) to be included in API calls, and strip them before entering them into the DB (fixes #856)
Back-End Database
  • NEW: New workitem system, stored in a single table `wi`
    • Changed FK of `user_read_workitem`
  • NEW: Table `comment_type` for FK referencing a comment workitem's type
  • CHANGE: `user_information` now has an additional setting, `workitems_per_page`
Front-end
  • NEW/CHANGE: New Workitem System (issue #893)
    • sort workitems in the back-end, not in the front-end (except for feeds)
  • NEW: dashboard, a redesign of "origo home" (#913)
    • Vaguely based upon the "list projects" page
    • Uses paging infrastructure of origo_xmlrpc_table
  • NEW: Add icon to metalink on download page (implements #506)
  • NEW: Extended user-settings to include "workitems per project" (implements #68)
  • NEW: Added utility function to cache origo user-settings in the front-end DB (currently only used for "workitems_per_page")
  • NEW: Provide origo admins with a link to disable arbitrary users (on the account's profile page - fixes #649)
  • NEW: Use "Spam" module to automatically filter, log and report spam messages (implements #822)
  • CHANGE: update to Drupal 6.16
  • CHANGE: update Drupal modules Image (to 6.x-1.0-beta5) and Pathauto (to 6.x-1.3)
  • CHANGE: Require users to be logged on when confirming friendship requests (fixes issue #464)
  • CHANGE: The issue tracker's tag-filter now uses AND semantics when selecting multiple entries (partly fixes of #843)
  • CHANGE: Clean up file structures of origo_home module (e.g. images, css, js in a separate subdirectory - partly implements #909 *wop wop wop*)
  • CHANGE: Remove hack and directly assign proper CSS class in origo_home module (fixes #911)
  • CHANGE: Explicitly assign z-layer to navigation bar (related to #657)
  • CHANGE: Make interface of "_origo_xmlrpc_table_get_page" more flexible (implements #912)
  • CHANGE: Remove top-level links and rename some items in left hand side navigation (fixes #908)
  • FIX: URL for commit workitems in Origo Feeds (fixes #867)
  • FIX: Removed absolute path in workitem.js to the menu-callback of the "mark un-/read" link (fixes #905)
  • FIX: Use "dc:creator" instead of "author" to make feed RSS2.0 valid (fixes #531)
  • FIX: Proper image-path of project-logo in project listing (fixes #789)
  • FIX: Extend contents of RSS feeds, now delivers full details as stored in the backend (fixes #161)
  • FIX: Node deletion was broken by the trash-module not properly passing the second argument to "drupal_get_form" (fixes #882)
Front-End Database
  • NEW: Shared table between all Drupal databases, `drupal_shared`
    • Patch existing "settings.php" files for it.
  • NEW: module and settings "Spam"

2010-02-19 - Proper Pathauto Rules and more flexible backend

aranea: 20100219-Release-1-1-5 / 1.1.5 | origo backend: 20100219-Release-1-1-11 / 1.1.11 | origo database: 1.0.12 | origo frontend: 20100219-Release-1-0-19 / 1.0.19 | origo frontend database: 1.0.17 | packaging: 20100219-Release

  • FIX: Image handling crash in mediawiki module issue:812
  • FIX: Add special tags manually when processing an issue comment (fixes #817)
  • FIX: within shell scripts, read the location of Drupal files from central configuration (fixes #831)
  • FIX: make commit work items respect "subfolder or subdomain" setting (fixes #826)
  • FIX/NEW: generate & send URL's for blogs and wiki pages only in the front-end, and send it to back-end
    CHANGE: changed internal API calls internal_blog.add and internal_wiki.add
    Fixes issues #303, #543, #608, #721 and #827.
  • FIX: Proper pathauto rules now replace many special chars with underscores when generating URL aliases (fixes issue #714).
  • FIX: When editing a node, only use the project's is_closed_source setting when the node has no associated private flag (fixes #785).
  • NEW: issue_tracker module defines custom token issue-id, new pathauto rules use this to generate URL's for issue nodes of the form <myproject>/issues/<issue-id>. Fixes long-standing issue/feature request #164.
  • NEW: Render Project Settings - Member page by theme function (fixes #842)
  • CHANGE: updated EiffelStore's DB-interface objects (and customized their creation) to reflect the current database schema (fixes issue #694).
  • CHANGE: Represent project-types (e.g. "open source"/"closed source") as integers, both in API calls and in the back-end's DB (fixes issue #847).
  • CHANGE: Represent project-visiblity (e.g. "hidden"/"visible") as integers, both in API calls and in the back-end's DB (fixes issue #857).
API Change

The update changes the signature of the following API calls:

  • project.add
    Was: project.add(session: String, project_name: String, description: String, owner: String, is_closed_source: boolean, is_hidden: boolean)
    New: project.add(session: String, project_name: String, description: String, owner: String, project_type: int, project_visibility: int)


  • project.request_add
    Was: project.request_add(session: String, project_name: String, description: String, is_closed_source: boolean, is_hidden: boolean, message_to_origo_team: String): boolean
    New: project.request_add(session: String, project_name: String, description: String, project_type: int, project_visibility: int, message_to_origo_team: String): boolean

The return values of the following API calls are affected:


  • project.retrieve
    Was: project.retrieve(session: String, project_id: int): struct[project_id: int, name: String, description: String, logo: String, is_closed_source: boolean]
    New: project.retrieve(session: String, project_id: int): struct[project_id: int, name: String, description: String, logo: String, project_type: int]
  • project.request_retrieve
    Was: project.request_retrieve(session: String, project_name: String): struct[request_id: int, user_name: String, user_email: String, name: String, description: String, is_closed_source: boolean, is_hidden: boolean]
    New: project.request_retrieve(session: String, project_name: String): struct[request_id: int, user_name: String, user_email: String, name: String, description: String, project_type: int, project_visibility: int]
  • project.retrieve_settings
    Was: project.retrieve_settings(session: String, project_id: int): array[struct[project_id: int, name: String, logo: String, is_closed_source: boolean, hidden: boolean, svn_path_doc: String, project_pretty_name: String, creation_time: int]]
    New: project.retrieve_settings(session: String, project_id: int): array[struct[project_id: int, name: String, logo: String, project_type: int, project_visibility: int, svn_path_doc: String, project_pretty_name: String, creation_time: int]]


The values (constants) for project_type can be looked up in the back-end's database table of the same name. They currently are defined as

  • 1 == Closed Source
  • 2 == Open Source

The values (constants) for project_visibility can be looked up in the back-end's database table of the same name. They currently are defined as

  • 1 == hidden
  • 2 == visible
  • CHANGE: Lift restriction/validation - check for projectnames on API calls commit.add and project.retrieve_id (fixes issue #850).
  • CHANGE: Default readability of svn repositories is now "private" (part of #829).
  • CHANGE: Use constant for project-visibility in project-request form (#863).
  • CHANGE: Use utility function "get_project_link()" for building the link in project-request mails sent to administrators (#864).
  • CHANGE: Directly use the backend's value for "project_type" and "project_visibility" when loading a project-request in the admin section (improves #829).
  • NEW: Custom hook function allowing other modules to interact with the Origo authentication process (fixes/improves #865).
  • CHANGE: Respect that there might be two revisions with the same ID when sending Change notification workitems (#768).

2010-01-01 - Various frontend fixes and Drupal 6.15

aranea: 20090927-Release-1-1-4/ / 1.1.4 | origo backend: 20091121-Release-1-1-9 / 1.1.9 | origo database: 1.0.10 | origo frontend: 20100101-Release-1-0-18 / 1.0.18 | origo frontend database: 1.0.16 |packaging: 20100101-Release

  • FIX: Unicode in project description, fixes issue:796
  • FIX: Error on moving wiki page to trash, fixes issue:783
  • FIX: Issue notifications partially not working, fixes issue:794
  • CHANGE: Upgrade to Drupal 6.15
  • CHANGE: Some refactoring of issue tracker module

2009-11-23 - Some regressions from the release

  • FIX: Broken project creation
  • FIX: Broken issue comment, fixes issue:779

2009-11-20 - Various bugfixes and smaller improvements

aranea: 20090927-Release-1-1-4/ / 1.1.4 | origo backend: 20091121-Release-1-1-9 / 1.1.9 | origo database: 1.0.10 | origo frontend: 20091121-Release-1-0-15 / 1.0.15 | origo frontend database: 1.0.16 |packaging: 20091121-Release

  • NEW: New API calls "issue.delete" and "issue.remove_all_attachments" (also for internal API)
  • NEW: Administrators and Project Owners can choose to permanently delete an issue
  • NEW: Include log messages in workitem upon manipulating wiki pages
  • CHANGE: enabled patch and bzip2 as allowed file extensions, fixes issue:753
  • CHANGE: Also allow 7z attachments issue:765
  • CHANGE: Upgraded drupal modules
    • captcha-6.x-2.0-rc3 => captcha-6.x-2.0
    • image-6.x-1.0-beta1 => image-6.x-1.0-beta3
  • CHANGE: Disabled drupal update module as updating must be done by hand anyway
  • FIX: Added auto-increment field for issue_filters, fixing a regression bug where in newer projects only one issue filter could be saved issue:761
  • FIX: Fixed issue attachment removal: the backend only deletes files from disk if no frontend is present, otherwise Drupal will handle this.
  • FIX: Properly escape special HTML characters in DOAP issue:720
  • FIX: Properly load and compare with previous revisions of wiki pages, enabling the backend to detect "page changed" vs. "new page" status in workitems
  • FIX: Report move-to-trash and restore-from-trash action with appropriate message (includes an optional log-message), instead of an empty diff.
  • FIX: Specify host for frontend interactor instead of using origo domain, fixes issue:769
  • FIX: Use dash dash space as a separator for the footer of mails, fixes issue:772

2009-09-27 - Build agains newer aranea with many stability improvements

aranea: 20090927-Release-1-1-4/ / 1.1.4 | origo backend: 20090927-Release-1-1-8 / 1.1.8 | origo database: 1.0.10 | origo frontend: 20090926-Release-1-0-14 / 1.0.14 | origo frontend database: 1.0.15 |packaging: 20090927-Release

  • FIX: Building against newer aranea (1.1.4)

2009-09-25 - Drupal 6.14, various smaller bugfixes

aranea: 20090810-Release-1-1-3/ / 1.1.3 | origo backend: 20090926-Release-1-1-7 / 1.1.7 | origo database: 1.0.10 | origo frontend: 20090926-Release-1-0-14 / 1.0.14 | origo frontend database: 1.0.15 |packaging: 20090926-Release

  • FIX: Improved error message on wrong user name during registrations Origo#738
  • CHANGE: Updated drupal to 6.14
  • FIX: Removal of SVN directory on project remove

2009-09-05 - Web Only, Bugfix, Version Upgrades

aranea: 20090810-Release-1-1-3/ / 1.1.3 | origo backend: 20090810-Release-1-1-5 / 1.1.5 | origo database: 1.0.10 | origo frontend: 20090810-Release-1-0-13 / 1.0.13 | origo frontend database: 1.0.14 |packaging: 20090905-Release

  • FIX: Mass mail not working
  • CHANGE: Updated drupal modules origo#733
    • image-6.x-1.0-alpha5 => image-6.x-1.0-beta1
    • captcha-6.x-1.0-rc2 => captcha-6.x-2.0-rc3
    • wikitools-6.x-1.1 => wikitools-6.x-1.2


2009-08-09 - Bugfix, Improvements

aranea: 20090810-Release-1-1-3/ / 1.1.3 | origo backend: 20090810-Release-1-1-5 / 1.1.5 | origo database: 1.0.10 | origo frontend: 20090810-Release-1-0-12 / 1.0.12 | origo frontend database: 1.0.13 |packaging: 20090810-Release

  • CHANGE: Moved update statistics call to internal api
  • FIX: Only validate user name on registration (origo#issue:706)
  • CHANGE: Use configured internal api url for ejabberd authentication
  • FIX: image-6.x-1.0-alpha5 (fixes image-upload bug)
  • CHANGE: token-6.x-1.12 and
  • CHANGE: diff-6.x-2.1-alpha2

2009-08-03 - New Aranea serialization, Bugfix, Improvements

aranea: 20090803-Release-1-1-2 / 1.1.2 | origo backend: 20090803-Release-1-1-3 / 1.1.3 | origo database: 1.0.9 | origo frontend: 20090803-Release-1-0-11 / 1.0.11 | origo frontend database: 1.0.12 |packaging: 20090803-Release

  • CHANGE: New Aranea with json based serialization
  • FIX: Patch for Image-Assist: remove options that do not work with our Mediawiki filter (e.g. inserting HTML code, etc.)
  • FIX: Update to Views 6.x-2.6
  • FIX: Fix for issue-tracker: do not explicitly insert a filter-ID
  • FIX: Fix issue-tracker: lookup mediawiki-filter's ID dynamically instead of using hardcoded value * fixed some string-replacement errors in menu-path definitions. fixes issue #699
  • FIX: only retrieve an issue's planning-data for authenticated users
  • FIX: strip user-defined special tags ("status::", etc.) and enforce uniqueness of tag-values (per node). Should fix #688
  • FIX: properly sort image-size array received from image module
  • FIX: when looping over the sizes to choose from, unset variable on failure: IMAGE_ORIGINAL will be chosen if nothing is assigned yet fixes #679
  • CHANGE: Run drupal cron daily instead of hourly
  • CHANGE: Simplified project creation, no more patching of settings file
  • FIX: Drupal 6.13, Views 6.x-2.6, Image Assist 2.0-alpha4
  • CHANGE: Various changes to make stuff more configurable

2009-05-23 - Bugfix, Subfolders, Module Separation

aranea: 20090505-Release-1-0-11 / 1.0.11 | origo backend: 20090505-Release-1-0-9 /1.0.9 | origo database: 1.0.6 | packaging: 20090505-Release | Frontend revision: 3188

This release was mainly a maintainance release which, besides fixing some bugs, hardly brings any changes to Origo's users. It did some changes and cleanup in the code of origo-web, though.

Common

  • NEW: added "tar", "htm", "bzip" and "bz2" files to the whitelist of allowed file-extensions to upload. Fixes #643 and #646
  • NEW: Setup Drupal multisite instances by subdomains and subfolders.
    • New config-variable in aranea.conf "origo_use_subdomains", set to 1
    • Adapted all paths to use switching-function
    • Adapted project-creation script.
  • NEW modules origo_eth and origo_global
    • serve terms-of-use from origo_global
    • serve "hosted by eth" from origo_eth
  • NEW: Drupal-like hook system for origo's install profile
    • moved ETH specific stuff into include fil
  • NEW region "origo_left_footer" in bluefish theme, for displaying module's blocks in the left hand side column at the bottom (where the web-buttons are)
  • NEW issue_tracker: display backend-errors upon inserting of a new issue-node. note that the issue will still be inserted (with issue-id #0)
  • CHANGE: load GA and G-CSE keys from settings_server.inc instead of aranea.conf

Origo Home

  • CHANGE: removed useless dropdown from bookmark-settings page
  • CHANGE: renamed menu-path of the project listing page to project_list
  • FIX tool tip of "Development" menu-link. (was set to Doc since the big update for new projects)
  • FIX URL rewriting "user" => "users", fixes #653

Issue Tracker

  • FIX: fixed 1999-11-30 timestamp in issues created by non-project members, fixes #603 for good.
  • FIX: hide issue-tag input field from non-project members (was shown since the big update, but input was not accepted)
  • CHANGE: use dynamic lookup of vocabulary-ID for Issue-Tag
  • CHANGE: issue_tracker_form_comment_form_alter(): load vocabulary through drupal's API instead of a manual SQL-query


GeSHi Filter

  • FIX: patch by Julian for external module GeSHi Filter. It now ignores double square brackets. Fixes #640

Mediawiki Filter

  • FIX: code-blocks are now properly ignored (because they're rendered by GeSHi Filter). Fixes #642.
  • NEW: enabled template functionality for all projects. Note: don't use a "Template:" prefix in the title.

2009-05-13 - Bugfix, Issue-tracker, statistics

aranea: 20090505-Release-1-0-11 / 1.0.11 | origo backend: 20090505-Release-1-0-9 /1.0.9 | origo database: 1.0.6 | packaging: 20090505-Release | Frontend revision: 3164

Project Creation

  • Change: Adapted default path in origo-create-project.php to match Origo-live system (for convenience)

Issue Tracker

  • New: Issue Tracker overview, as well as Issue-pages now use a custom theme template-file which includes an "issue_header", i.e. A header area containing (for now) a link to create a new issue, as well as a goto-issue input box. Fixes issue #381
    • Adapted bluefish theme for this, added new page-issue template, some css, and some code to integrate the new page-issue template file.
  • Change: Align "Filter" and "Save Filter" box horizontally

Mediawiki Filter

Fix: broken links to nonexisting-pages now pre-fill the title box on the appearing new-wiki-page form. Fixes issue #381

Origo Auth

  • Fix: properly use translation function in form_error calls
  • Fix: proper description string for username-requirements
  • Fix: don't redirect on errors on user-register page
  • Fix: password recovery, fixes issue #634 (and some user-emails)
  • Fix: fixed password-recovery by email (did query drupal for email before)
  • Change: password reset from email-link redirects to frontpage, not user-settings

Origo Home

  • Fix feeds: now containing a proper link to Origo's favicon. Fixes part of issue #531
  • Fix: properly use translation function in form_error calls
  • Fix: "edit user icon" on profile-page (not in settings-page, though) redirected to contact-detail-page. Fixes issue #647

Origo Statistics

  • removed wrongly used hook_perm
  • statistics for closed source projects are only visible to owners, developers and Origo-admins. Fixed issue #589


2009-05-02 - Drupal 6.11

aranea: 20090505-Release-1-0-11 / 1.0.11 | origo backend: 20090505-Release-1-0-9 /1.0.9 | origo database: 1.0.6 | packaging: 20090505-Release | Frontend revision: 3154

Frontend

Upgraded the frontend from Drupal 5.14 to 6.11; some bugfixes & features have been done as well.

  • NEW Updated all components to use Drupal 6 API (menu-definitions, themeing, form-api, etc.)
  • NEW dependency on <curl>php5-curl</code> because of the new project-creation script.
  • NEW modules
    • dblog (replaces "watchdog")
    • token (new dependency)
    • formatting service (was not in install-profile before)
  • CHANGE Removed modules
    • tql
    • password strength (was moved to core)
    • foaf
    • openid & origo_openid
    • sioc
    • form_store (dependency no longer needed)
  • NEW Drupal 6 provides a more fine-grained permissions. These were adapted & expanded (e.g. before: comment_preview optional: one setting for all node-types. now: one variable per node-type).
  • NEW settings.inc variable "origo_project_creation_timeout" for arbitrary waiting time in admin project-creation form
  • NEW Added oriact-button
  • NEW Added proper dependency-declaration of modules to *.info files
  • NEW|FIX origo_home->origo_friends: Added link to user-search on my-friends page. fixes issue #625
  • FIX A LOT of code-formatting things to conform to drupal's coding guidelines. Also added "$ Id: $" to a lot of files (drupal coding standard).
  • FIX Improved content for Drupal & Views provided RSS-feeds. Fixes issue #630
  • FIX RSS-feeds for forums: disabled the default views content-feed for forum-nodes. fixes issue #603
  • FIX developer_pages: Enable option for "private" wiki-page if the project is closed-source. Fixes issue #448
  • FIX issue_tracker: Merged changes from live-system (giving deadline as 3 dropdowns y-m-d) into svn.
  • FIX issue_tracker: Properly calculate deadline value if the the issue is loaded from backend and doesn't have a deadline set, yet. fixes issue #603
  • FIX mediawiki_filter: heigth attribute for <img> was not assigned. while this is fine in FF (and i guess per html standard), IE did render these images as 1px high. we now calculate the height in all img-tags in the transform() function.
  • FIX mediawiki_filter: adapted image-scaling algorithm to respect upright images. fixes issue #621.
  • FIX origo_home->origo_admin: Aded kickass progressbar as eyecandy while waiting for the new project/site to be created. fixes issue #605
  • CHANGE Removed drupal files & modules that are not modified. as all core and "external" modules should be patched and not directly changed, only our own modules, theme, install-profile, etc. remain in subversion.
  • CHANGE Removed all traces of old theme "origo_simple"
  • CHANGE Drupal's menu-system changed heavily: New definition style of menu-items
  • CHANGE Google-Analytics & Google-CSE account details are now configurable via settings.inc
  • CHANGE Removed hardcoded links whereever possible: either made configurable through settings.inc, or use Drupal-relative paths (e.g. via drupal_get_path()). The only ones currently remaining are faq/tutorial/terms-of-use/etc. links.
  • CHANGE Views-module: major upgrade ("views" to "views 2"): new syntax and API
  • CHANGE: Unified patching of Drupal files:
    • New folder $ORIGO_WEB_ROOT/patches that contains all patches to Crupal core & external modules
    • Removed useless patch for forum module
  • CHANGE in project creation: the old script for creating drupal-sites doesn't work with Drupal 6 anymore.
    • Replaced old method with function call to a new utility "drupal installer" tool (with adapted entry point), which does screen-scraping of the actual install.php via curl.
    • Moved some sql-statements into origo.profile: only project-id related stuff remains in create_project.php
  • CHANGE in drupal cron script: it now takes the list of projects from the filesystem instead of querying the database.
  • CHANGE in pathauto replacement-template strings: use "[foobar-raw]" in most places
  • CHANGE customerror: configuration variables now also in install-profile
  • CHANGE Easy configureable domain via variable (instead of typing x-times "origo.origo-local.ch")
  • CHANGE Call rrdtool with "nice" command
  • CHANGE Switched "sign in"/"register" button to be consistent with "<user>"/"logout" button order.
  • CHANGE Removed breadcrumbs (buggy in Drupal 6)
  • CHANGE Use new schema-API for installing/uninstalling a module's tables
  • CHANGE All theme-functions of a module must be registered to the core via hook_theme().
  • CHANGE issue_tracker: Added "#" signs to ennumeration in default issue-body text
  • CHANGE origo_home->origo_admin: Merged create_project and create_project_from_request
  • CHANGE origo_home->origo_settings: Added link to request user_key (which was not in svn, but on live system(?))

Backend

Use Debian packages of all nodes, config-file changes.

  • CHANGE Unified users/db/pwd's of various scripts: generally, use drupal_host/drupal_user/drupal_password to connect to the DB.
  • CHANGE migrated origo-config from /etc/origo/origo.conf to /etc/aranea/aranea.conf