web icon indicating copy to clipboard operation
web copied to clipboard

Epic: Extension system

Open kulmann opened this issue 2 years ago • 2 comments

We're preparing to improve/build our extension system and become more approachable by community developers.

Preparation

The following preparation steps need to be done:

  • [ ] publish web-pkg and web-client to npmjs. They are not in perfect shape, yet, but we already cleaned them up a lot. https://github.com/owncloud/web/issues/8380
  • [ ] develop strategy for versioning of packages published to npmjs.
  • [x] pull the owncloud design system into the web monorepo. Not strictly needed for development (design system is bundled with the web runtime), but having types would improve the DX of extension development a lot.
  • [ ] clean up config.json / proper config management

Ideas

We have a few ideas of "good first extensions" to gain more insights regarding requirements. These include:

  • [ ] file listing view modes should be their own extensions (file list, tiles view, single file, ...)
  • [ ] editors/viewers for various file types (like we already have for text files, images, ...)
  • [ ] panels for the right sidebar (e.g. a panel for EXIF data of photos)
  • [ ] any kind of file related action (to be included in the context menu in the file list / right sidebar "Actions" panel, like we already have "copy/move", "delete", "rename", ...)
  • [ ] audio/video player for the left sidebar + context panel for the right sidebar, e.g. "add to playlist"
  • [x] https://github.com/owncloud/web/issues/5891#event-7938818793
  • [ ] ...
  • [ ] request interceptors to e.g. add custom headers

Related

  • [ ] https://github.com/owncloud/web/issues/2958
  • [ ] https://github.com/owncloud/web/issues/5135
  • [x] https://github.com/owncloud/web/issues/2585
  • [x] https://github.com/owncloud/web/issues/5460
  • [x] https://github.com/owncloud/web/issues/2423
  • [x] https://github.com/owncloud/web/issues/9892
  • [ ] https://github.com/owncloud/web/pull/7096#issuecomment-1357372690
  • [x] https://github.com/owncloud/web/issues/8281
  • [x] https://github.com/owncloud/web/issues/8698
  • [x] #9088
  • [x] https://github.com/owncloud/web/issues/9210
  • [ ] https://github.com/owncloud/web/issues/9217
  • [x] https://github.com/owncloud/web/issues/9215
  • [x] https://github.com/owncloud/web/issues/9239
  • [x] #9302
  • [ ] https://github.com/fschade/ocis-arcade/issues/3
  • [x] https://github.com/owncloud/web/issues/10256
  • [ ] https://github.com/owncloud/web/issues/10387

kulmann avatar Nov 07 '22 13:11 kulmann

Whoop whoop, this will be huge! I really looking forward to the extension system!

ChrisEdS avatar Nov 17 '22 11:11 ChrisEdS

Description

User Stories

  • As an organisation / developer I want to customise the web ui so that I can adapt it to my special purposes.

  • As ownCloud we need to provide an extension system so that we don't need to develop every feature on my own.

Value

  • feature richness
  • gain market share

Acceptance Criteria

  • [ ] good developer experience for writing extensions

    • [ ] little boiler plate
    • [ ] good documentation
    • [ ] easy onboarding
  • [ ] stable APIs (eg. extension-sdk, extension registry, extension points, web-pkg feature set, server-api abstractionlayer (web client)) - outcome: easy maintenance of your own extensions

  • [ ] Examples

  • to be continued...

Definition of ready

  • [ ] Everybody needs to understand the value written in the user story
  • [ ] Acceptance criteria have to be defined
  • [ ] All dependencies of the user story need to be identified
  • [ ] Feature should be seen from an end user perspective
  • [ ] Story has to be estimated
  • [ ] Story points need to be less than 20

Definition of done

  • Functional requirements
    • [ ] Functionality described in the user story works
    • [ ] Acceptance criteria are fulfilled
  • Quality
    • [ ] Code review happened
    • [ ] CI is green (that includes new and existing automated tests)
    • [ ] Critical code received unit tests by the developer
  • Non-functional requirements
    • [ ] No sonar cloud issues

tbsbdr avatar Nov 28 '23 14:11 tbsbdr

I think we can confidently close this issue by now. A lot has happened. The concepts of apps, extensions and extensionsPoints are thought through, implemented and well described in our dev docs. We've implemented an app store for web apps (phase 1 was focussed on making it easier to discover available apps with still some manual steps required for installation, phase 2 will be focussed on easy installation in the near future). We even have some third party apps available by now, which is awesome. We'll continue to build great things within the extension system, but the ground work is done by now. Thanks to everyone involved! :heart:

kulmann avatar Aug 07 '24 05:08 kulmann