Difference between revisions of "Extensions releasing"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Requirements)
(ToDos: There will be no 'projects' on SCM any more)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
= Release builds of Extensions (Draft) =
 
= Release builds of Extensions (Draft) =
  
The release of OpenOffice.org extensions is done independently from the OpenOffice.org Release Schedule.
+
== High-level requirements ==
 +
Extensions are a way to leverage the modularization of OpenOffice.org. The code of Extensions and the core OpenOffice.org needs to be separated to decouple the code and to allow less prerequisites for Extension building. Ideally, at least for Java extensions, all that is necessary to create and/or build an Extension is the OpenOffice.org SDK, a JDK and perhaps one or two small tools. This lowers the hurdles for new contributors to start developing for OpenOffice.org.
  
== Requirements ==
+
The release of OpenOffice.org Extensions is done independently from the OpenOffice.org Release Schedule.
  
* To keep the build time of the OpenOffice.org core product small, extensions - if not bundled with the Core product - should not be in the regular workspace of the OpenOffice.org build.
+
Localization communities need to be able to identify whether strings belong to the OpenOffice.org core product or to an Extension to make the independent release schedule possible.
  
* To keep extensions buildable it is necessary to have them on the same workspace as the needed tools (solver).
+
== Consequences ==
  
* To keep the release schedule of the extensions independent from the OpenOffice.org release schedule, extensions should not be part of the regular code of the OpenOffice.org product. This may be achieved by having an own workspace or simply be having own, separate modules.
+
* To take advantage of the modularization introduced with Extensions, the core OpenOffice.org build should be possible without having to build extensions and of course vice versa.
  
* To keep the release schedule of the extensions independent from the OpenOffice.org release schedule there should be an own 'target' in issuezilla and EIS.
+
* To keep the release schedule of the extensions independent from the OpenOffice.org release schedule there should be own 'targets' in IssueZilla and EIS.
  
* For every release of OpenOffice.org there will be an environment ( sdk + solver ) to get the extension built. (To be done: which extensions need more than sdk for building ? if solver dependent, then regular build is needed.) For the development of C++ extensions there will be an WindowsIntel, MacOSXIntel, Solarisx86 and SolarisSparc, Linuxx86 environment (other environments to be added soon).
+
* For the development and release of C++ Extensions, environments for Windows, MacOS X (Intel), Solaris x86 and Solaris Sparc, Linux x86-32 and Linux x86-64 should be available (other environments may be added).
  
* For every new release of OpenOffice.org all existing extensions will get recompiled (and tested ?). A new extension will be build on the latest available OOo release even if a lower baseline can be used.
+
* The development and release of OpenOffice.org extensions should be lightweight and should encourage developers to contribute since the chance of breaking the vanilla OpenOffice.org build with an extension is not likely. In most case there is also no big development team involved. So it should be possible for contributors to choose the development process of their own choice. The contributor of an extension is able to have full control about the release process (development, qa, release).
  
* Open: Development snapshots / automated builds
+
* To enable localization communities to identify whether strings belong to the OpenOffice.org core product or to an Extension, the code and translatable strings of Extensions should be placed in separate modules. String changes in these modules indicate translations for Extensions need to be done, strings changes in other modules indicate translation work for the core OpenOffice.org product.
** open: development builds vs. release builds (stripping)
+
  
* Open: QA process and schedule
+
* Automated QA must be possible for Extensions (at least this is a requirement of Sun provided extensions).
** required: automated QA
+
  
* Open: Localization process and schedule
+
* The build system for Extensions should be the same as for the core OpenOffice.org.
  
* Open/TBD: Development Model
+
== Recommendations ==
** Bugtracking - Target Milestones ?
+
** Bugtracking - Component ?
+
** Developing - branch/release model
+
** Release from workspace, solver, ship volume ?
+
  
* Open: Release Schedule
+
* It is recommended to develop extensions in Java or other platform independent supported language so that the resulting extensions are able to run on every supported platform.
  
 +
* Extensions should be buildable by an automated build service to encourage contributions of Extensions into OpenOffice.org repository (also non SCA'd contribution hosted on [http://external.openoffice.org/source/browse/external/exemptedextensions/ Exempted Extensions repository]).
  
AI: list current extensions and their extensions.
+
* For every new release of OpenOffice.org all existing extensions should get tested (recompile is not necessary, since API's are stable). A new extension will be build on the latest available OOo release even if a lower baseline can be used.
  
* mediawiki
+
== ToDos ==
* presenter console
+
* SCM - where to host extensions? For non-SCA'd ones something like the [http://external.openoffice.org/source/browse/external/exemptedextensions/ Exempted Extensions repository], those contributed under SCA can be hosted next to OpenOffice.org source code.
* templates, gallery
+
* Bugtracking
* presentation minimizer
+
** Target Milestones for an independent release schedule
* pdf import
+
** Component extensions plus subcomponent
 
+
* Developing - branch/release model - choice of the developer?
== Recommendations ==
+
* Code required for localization, e.g. the module transex3 and modules it depends on, needs to be moved to the SDK.
 
+
* It is recommended to develop extensions in Java or other platform independent supported language so that the resulting extensions are able to run on every supported platform.
+
  
 
== Releasing ==
 
== Releasing ==
  
 
* [[Extensions/website/submission]]
 
* [[Extensions/website/submission]]
 +
* A list current extensions and their extensions is available at [[Extensions_Overview]]
  
 
[[Category:Extensions]]
 
[[Category:Extensions]]
 +
[[Category:Quality Assurance]]

Latest revision as of 08:35, 22 August 2008

Release builds of Extensions (Draft)

High-level requirements

Extensions are a way to leverage the modularization of OpenOffice.org. The code of Extensions and the core OpenOffice.org needs to be separated to decouple the code and to allow less prerequisites for Extension building. Ideally, at least for Java extensions, all that is necessary to create and/or build an Extension is the OpenOffice.org SDK, a JDK and perhaps one or two small tools. This lowers the hurdles for new contributors to start developing for OpenOffice.org.

The release of OpenOffice.org Extensions is done independently from the OpenOffice.org Release Schedule.

Localization communities need to be able to identify whether strings belong to the OpenOffice.org core product or to an Extension to make the independent release schedule possible.

Consequences

  • To take advantage of the modularization introduced with Extensions, the core OpenOffice.org build should be possible without having to build extensions and of course vice versa.
  • To keep the release schedule of the extensions independent from the OpenOffice.org release schedule there should be own 'targets' in IssueZilla and EIS.
  • For the development and release of C++ Extensions, environments for Windows, MacOS X (Intel), Solaris x86 and Solaris Sparc, Linux x86-32 and Linux x86-64 should be available (other environments may be added).
  • The development and release of OpenOffice.org extensions should be lightweight and should encourage developers to contribute since the chance of breaking the vanilla OpenOffice.org build with an extension is not likely. In most case there is also no big development team involved. So it should be possible for contributors to choose the development process of their own choice. The contributor of an extension is able to have full control about the release process (development, qa, release).
  • To enable localization communities to identify whether strings belong to the OpenOffice.org core product or to an Extension, the code and translatable strings of Extensions should be placed in separate modules. String changes in these modules indicate translations for Extensions need to be done, strings changes in other modules indicate translation work for the core OpenOffice.org product.
  • Automated QA must be possible for Extensions (at least this is a requirement of Sun provided extensions).
  • The build system for Extensions should be the same as for the core OpenOffice.org.

Recommendations

  • It is recommended to develop extensions in Java or other platform independent supported language so that the resulting extensions are able to run on every supported platform.
  • Extensions should be buildable by an automated build service to encourage contributions of Extensions into OpenOffice.org repository (also non SCA'd contribution hosted on Exempted Extensions repository).
  • For every new release of OpenOffice.org all existing extensions should get tested (recompile is not necessary, since API's are stable). A new extension will be build on the latest available OOo release even if a lower baseline can be used.

ToDos

  • SCM - where to host extensions? For non-SCA'd ones something like the Exempted Extensions repository, those contributed under SCA can be hosted next to OpenOffice.org source code.
  • Bugtracking
    • Target Milestones for an independent release schedule
    • Component extensions plus subcomponent
  • Developing - branch/release model - choice of the developer?
  • Code required for localization, e.g. the module transex3 and modules it depends on, needs to be moved to the SDK.

Releasing

Personal tools