Good question!
You are probably an employee or a manager of a ]project-open[ customer or a ]project-open[ partner if you reading these lines. Only a few "independent" open-source developers are willing to spend their free time fiddling with ERP software...something that we are attempting to change.
As a professional ]project-open[ user you are probably looking here in order to learn how to run ]project-open[ and how to adapt the system to your needs or the needs of your customers. Participating can provide you with several advantages:
The answer depends on your personal interests. ]project-open[ is the world's largest open-source application and a successful software product. Here are a few areas that could be interesting:
Please post in "Open Discussions" (see below) if you are interested. We can recommend you a lot of books and/or activities within the ]project-open[ community to learn about these areas.
There are many ways to contribute to ]project-open[. However, if you want to contribute successfully it is important to find a balance between your learning needs and the attention you will require from others in order become a contributing member, and the value of your contributions on the other side. On one hand, we would like for everyone to contribute, and on the other we only have so much time to dedicate to newcomers. You can't expect that senior community members will spend much time with you, unless you have saved them time by learning the basics yourself...
Here are a number of areas ordered by increasing "seniority":
There are several areas where we are actively looking for help:
An important hint that will help your understanding of ]project-open[:
Read the source code. Don't be afraid of looking inside ]project-open[ packages. In particular the "intranet-notes" package is easy to understand (and designed as a learning experience). As a second lesson, the "intranet-expenses" is an interesting introduction to ]project-open[ on an entire system wide level.
The ]project-open[ team releases new versions every 12-18 months. These main releases (for example: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0, ...) include important new features. A jump in the "major number" (i.e. 3.4 - 4.0) indicates an incompatible upgrade, while changes in the "minor number" (i.e. 3.3 - 3.4) indicates that an automatic upgrade is possible. From time to time there are "update releases" (3.3.1, 3.3.2, 3.3.3, ...) in order to deal with bugs or to release minor improvements.
The relatively long release cycle of ]project-open[ is due to the fact that businesses that run on our software need stability and can't be asked to continually expend the effort to upgrade with every new release, and there is a relatively high and time consuming effort in creating installers for every desired platform.
Between releases we continuously add features and publish "update installers" for those customers interested in new features.
You may want to read the roadmap for detailed comments on past and future versions.
Please read about CVS access to the latest source code.
Apart from that: The source code is part of every ]project-open[ server. Please go to the /web/projop/packages/ folder and you can explore the ~200 packages that make up ]project-open[.
Please read about the roadmap for detailed comments on past and future versions.
Please read about CVS access to the latest source code.
The latest stable versions of ]project-open[ and related components, such as VMware images, RHP installers, or Documentation are available on our Source Forge Download Zone .
A ]project-open[ version really consists of two parts:
In order to keep the two parts together, each package contains a sql/postgresql/upgrade/ folder with upgrade scripts. These SQL scripts add new columns to database tables etc. in order to upgrade the data model to support the latest version.
Upgrades within a "minor release" (i.e. 3.3) are automatic and backwards compatible in most cases (you can downgrade your TCL code to 3.3.2.1, even though you have already executed the upgrades from 3.3.2.1 to 3.3.2.2).
The upgrade process is integrated into the "Home" page (if you are logged in as System Administrator). As an alternative, the SysAdmin can use the /acs-admin/apm/ Package Manager to execute upgrade scripts individually. Finally, you can even execute upgrade scripts manually using "psql -f upgrade-x.x.x.x-y.y.y.y.sql".
Please see the upgrade overview for specific updates.
The main communication channel for both developers and users is the "Open Discussions" forum at [SourceForge] This is the right place for all technical questions, announcements, etc. We recommend that active users/developers subscribe to forum updates ("Monitor this Forum"). This way, the forum can act as a mailing list.
Please use the Bug-Tracker in order to submit bug reports or patches.
The ]project-open[ core team looks at the open bugs list before all important releases to make sure that no critical bugs are open. Please consult our guidelines for bug submission [Reporting Bugs] to contribute one.
The OpenACS community meets at http://www.openacs.org/forums/. These forums are useful for ]project-open[ developers when dealing with non-]project-open[ specific issues sich as learning TCL, data-model and libraries etc.
Technically ]project-open[ is based on OpenACS. ]project-open[ consists of an array of packages that can be installed on top of any existing OpenACS installation extending and transforming the functionality of OpenACS, so the original OpenACS platform is inseperably linked to ]project-open[.
]project-open[ sends out mass mailings to all registered users at [http://www.project-open.org/] a few times a year with updates about the product and important security anouncements. However, this is basically a one-way communication.
OpenACS (the uderlying platform that ]project-open[ runs on) usually organizes developer conferences in Europe twice a year. We recommend all active ]project-open[ developers attend these conferences if at all possible. Please ask around in the "Open Discussions" forum if other ]project-open[ community members are participating as well.
The ]project-open[ team organizes a Developer Conference once a year in Barcelona, Spain. For details please see [http://www.project-open.com/en/services/project-open-devcon.html]. The conference is split into a tutorial part (two days) and a practial session (two days) where participants can develop software with help from an experienced tutor.
There is a short PowerPoint presentation on the difference between good developers and [excellent developers].
The single most important factor is probably the capability to learn from code that other people have written. So start today, print out the source code of "/packages/acs-kernel/sql/postgresql/*.sql and consult the documentation at http://www.openacs.org/doc/ for reference.
Please consult our guidelines on bug submission [Reporting Bugs].
Please consult our localization page for information on becoming a ]project-open[ partner and a step by step tutorial on best practices for localization.
Please consult the Wiki Contributions & Standards page.
... even if we don't accept your code into the "product" you can get your own Wiki page to present your extensions and link to your download page.
In many cases one or more update scripts has not been executed correctly. Please search for the script and execute it again.
Example:
Database operation "select" failed (exception ERROR, "ERROR: column p.menu_name does not exist LINE 5: p.menu_name AS menu_name ^ ")
Search in packages folder:
find . -type f -name 'upgr*.sql' -exec grep -il 'menu_name' {} \;returns:
./intranet-core/sql/postgresql/upgrade/upgrade-3.3.0.0.0-3.4.0.0.0.sql
upgrade-3.3.0.0.0-3.4.0.0.0.sql:
... create or replace function inline_0 () returns integer as ' DECLARE v_count integer; BEGIN select count(*) into v_count from user_tab_columns where lower(table_name) = ''im_component_plugins'' and lower(column_name) = ''menu_name''; IF v_count = 0 THEN ALTER TABLE im_component_plugins ADD menu_name varchar(50) default null; END IF; select count(*) into v_count from user_tab_columns where lower(table_name) = ''im_component_plugins'' and lower(column_name) = ''menu_sort_order''; IF v_count = 0 THEN ALTER TABLE im_component_plugins ADD menu_sort_order integer not null default 0; END IF; return 0; end;' language 'plpgsql'; select inline_0(); drop function inline_0(); ...So sourcing this sql usually fixes the error:
su - projop psql -f /web/projop/packages/intranet-core/sql/postgresql/upgrade/upgrade-3.3.0.0.0-3.4.0.0.0.sql
Calle Aprestadora 19, 12o-2a
08902 Hospitalet de Llobregat (Barcelona)
Spain
Tel Europe: +34 609 953 751
Tel US: +1 415 200 2465
Mail: info@project-open.com