Tags:
create new tag
, view all tags

Feature Proposals » TWiki application packager and installer

Summary

Current State: Developer: Reason: Date: Concerns By: Bug Tracking: Proposed For:
ImplementedAsExtension PeterThoeny AcceptedBy7DayFeedbackPeriod 2012-11-25   TWikibug:Item6820 KampalaRelease

Edit Form

TopicSummary:
CurrentState:
CommittedDeveloper:
ReasonForDecision:
DateOfCommitment:   Format: YYYY-MM-DD
ConcernRaisedBy:
BugTracking:
OutstandingIssues:
RelatedTopics:
InterestedParties:
ProposedFor:
TWikiContributors:
 

Motivation

The TWiki community has been discussing a TWiki application packager and installer feature for TWiki for a long time. Initially I brought it up in 2005 at TWikiAppPackageHowToDiscussion, then it was discussed again in 2008 at RequirementsForATWikiApplicationPackager. The JerusalemReleaseFocus covers a packaging standard for TWiki apps. This proposal does just that. A separate proposal will cover a related TWikiAppRepository.

Needs

As a TWiki user I want to:

  • browse available apps from within my TWiki installation
  • see for each app,
    • nice thumbnails, 200px wide
    • title
    • summary
    • category
  • have a button to install an app
    • select destination web (if prompted)
    • enter base name of app (if prompted)
  • have a place to configure the app (if prompted)
  • upgrade the app with a single push of a button

As a TWiki site administrator I want to:

  • decide if users can browse master repository on TWiki.org, or only local repository
  • have optionally a local repository:
    • select some or all apps of the master repository on TWiki.org
    • do sync of master repository to local repository manually with push of button, or automatically via nightly cron
    • add my company's applications to the local repository

As a TWiki app developer I want to:

  • have a simple way to:
    • create an app
    • package an app
    • upload an app to the repository with push of a button
  • not learn Subversion (e.g. tailor to casual programmers)
  • specify pages that make up an app (manifest)
  • have upgrade infrastructure
    • for each page on upgrade, specify if: overwrite if exists, copy only if missing
  • be able to specify install web (if needed)
  • be able to specify base name of app (if needed)
  • be able to monetize my apps

There are idealistic needs, no need to have everything implemented in the first release.

Overview

A TWiki application consists of a set of pages that make up the application logic. For example, the very simple MeetingMinutes application consists of the MeetingMinutes homepage and a MeetingMinutesTemplate page. TWiki applications are made up of TML, HTML, and possibly some CSS and JavaScript. Users typically fill out forms to create structured content that can be queried easily.

Basic features of a TWiki application packager and installer:

  • Standard to define what pages make up a TWiki application, e.g. a manifest
  • Automatic package build of set pages into a single archive file based on manifest
  • App repository on twiki.org for free applications
    • At a later point, separate repository for payed-for applications
  • Way to publish app packages on twiki.org
  • Way to categorize app packages
  • Easy way to browse app repository from within a TWiki installation
  • Easy way to install an app, also my end-users, e.g. non-administrators
  • Easy way to upgrade an app
  • Uninstall feature?

Description and Documentation

New TWikiAppsPlugin:

  • Create new TWikiAppsPlugin to manage packaging and installation of TWiki apps.
  • Plugin is pre-installed in TWiki Jerusalem release, and can be installed in older releases.
  • Documentation of TWiki app packaging and installation.

New web:

  • New TWikiApps web for app developer to create and package apps, and for locally installed apps.
  • TWiki.org app repository is also in a new TWikiApps web.

For TWiki app developer:

  • Way to package an app

For TWiki site administrator:

  • Configure flag {Plugins}{TWikiAppsPlugin}{LocalRepository}, 0 or 1, default 0.
    • If 1, users can browse only local repository in TWikiApps web, e.g. apps the admin decided to show.
    • If 0, users locally browse the master repository of the master repository on TWiki.org.
  • TWiki.TWikiApplicationAdministration page, for TWiki Admins only, to see list of available apps in master repository on TWiki.org, with option to manually sync to local repository. Example:
    Category Application App Version Local Version Local Action
    Users & Groups [Icon image] Contact DB Application:
    [          ] Simple contact database that
    [          ] can be shared by the team.
    [          ]
    2012-10-01  
    Teams [Icon image] Meeting Minutes Application:
    [          ] This is a simple meeting minutes
    [          ] tracker app to manage your meeting
    [          ] minutes and action items.
    2012-11-25 2012-11-25
    Productivity [Icon image] Time Tracker Application:
    [          ] Each user can track hours worked.
    [          ] With monthly reporting.
    [          ]
    2012-09-12 2012-08-01
           

For TWiki users:

  • Browse TWiki app repository and install apps
  • An app can be installed in multiple places (webs and/or app base name), i.e. a special report is needed that shows installed app instances (not installed apps)
  • Installing/upgrading an app automatically resolves the dependencies.
  • Show an error message if a user does not have the permission to update the web(s) where the app & dependencies are installed.
  • TWiki.TWikiApplicationRepository page. Example:
    Application App Version Local Version Local Action

Example

This uses the MeetingMinutes app as an example.

Topic: MeetingMinutesApp

  • This is the app documentation page, used by the TWiki app browser
  • ApplicationForm with fields:
    • Title
    • Summary
    • Image - for 200px wide app icon image, max 200px high
    • Screenshot1 ... Screenshot4 - up to 4 600px wide screenshots

Topic: MeetingMinutesAppManifest

  • This is the application manifest
  • Table:
    Type Value/Name Attributes Description
    Version 2012-11-25   Meeting Minutes application version
    Topic MeetingMinutes O Main app page. Attribute O: "overwrite on upgrade", C: "copy once only"
    Topic MeetingMinutesTemplate C Meeting template page
    Require SomeOtherApp 2012-10-01 (Just a fictitious example of a dependency on another app)
    Require SpreadSheetPlugin 2012-10-01 (Just a fictitious example of a dependency on a plugin)

Impact

WhatDoesItAffect: Install

Implementation

-- Contributors: PeterThoeny - 2011-09-27

Discussion

This feature has high priority based on marketing discussions in JerusalemReleaseMeeting2012x12x07, e.g. is one of the key features of the JerusalemRelease.

-- PeterThoeny - 2012-12-07

Discussed at KampalaReleaseMeeting2015x07x02:

  • This is implemented as a new TWikiAppsPlugin (work in progress), this status change to ImplementedAsExtension.
  • A new proposal will be done to add the TWikiAppsPlugin to the TWiki core distribution.

-- Peter Thoeny - 2015-07-02

Edit | Attach | Watch | Print version | History: r13 < r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r13 - 2015-07-02 - PeterThoeny
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.