Skip to content

Commit

Permalink
Précisions about access to Slack
Browse files Browse the repository at this point in the history
  • Loading branch information
llemeurfr committed Aug 12, 2024
1 parent 639d9b4 commit ccd8cae
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 43 deletions.
57 changes: 31 additions & 26 deletions _pages/about/project_goals.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,76 +4,81 @@ permalink: "/about/project_goals.html/"
title: Readium Project Goals
---

The fundamental goal of the Readium project is to produce a set of robust, performant, spec-compliant reading system toolkits that support digital publishing formats (e.g. EPUB, [Web Publications](https://www.w3.org/TR/wpub/) etc.) and can be deployed in browsers or built into native apps on iOS, Android or the desktop.
The fundamental goal of the Readium project is to produce a set of robust, performant, spec-compliant reading system toolkits that support digital publishing formats and can be deployed in browsers or built into mobile or desktop reading applications.

### Primary Focus

The project’s primary focus is to provide a set of software building blocks (software development kits as well as utilies and glue that faciliates the construction of a wide spectrum of robust, performant reading systems.
The project’s primary focus is to provide a set of software building blocks, i.e. software development kits as well as utilies that faciliates the construction of a wide spectrum of robust, performant reading systems.

It is the intent to enable a platform that can be easily adapted to supporting a variety of "digial publishing formats", including:

- EPUB 2.x and 3.x
- Audio books
- Image-based books (e.g. Manga, etc.)
- Web Pub
- EPUB 2 and 3
- Audiobooks
- Digital Visual Narrativess (Comics, Manga, Webtoons etc.)
- Web Publications
- PDF, to a certain extent.

There are currently (early 2019) four target platforms:
Note: PDF publications do not benefit from advanced features developed for EPUB and Web Publications (annotations, search, text-to-speech). Readium is focusing on EPUB and Web Publications, and lets other software developers propose advanced PDF tools.

- iOS
- Android
- Desktop (e.g. MacOS, Windows, Linux)
- Browser-based
Readium has four target platforms:

In addition, developers are of course more than welcome to adapt the Readium toolkits to other platforms, but the four above are the primary focus of Readium development at present.
- iOS using Swift
- Android using Kotlin
- Desktop (MacOS, Windows, Linux) using Typescript, Node.js and Electron.js
- The Web platform using Typescript and Golang.

It is important to emphasize that Readium strives to network and coordinate with other open-source efforts, most notably the European Digital Reading Lab ([EDRLab](https://www.edrlab.org/)) which is the European arm of Readium. EDRLab is not only a major participant in the Readium effort, but is also the lead and driver for the [Licensed Content Protection (LCP)](https://www.edrlab.org/readium/readium-lcp/) system.
Developers are of course more than welcome to adapt the Readium toolkits to other platforms and languages.

Readium strives to network and coordinate with other open-source efforts, most notably the European Digital Reading Lab ([EDRLab](https://www.edrlab.org/)). EDRLab is not only a major participant in the Readium effort, but is also the lead and driver for the [Licensed Content Protection (LCP)](https://www.edrlab.org/readium/readium-lcp/) system.

### Open Source

Readium is a true open-source project, permissively licensed under the 3-part BSD license. This licensing approach applies to ALL the code developed in the Readium project. This includes not only the current development projects but also the legacy software (Cloud Reader, Chrome app and Readium C++ SDK)
Readium is a true open-source project, permissively licensed under the 3-part BSD license. This licensing approach applies to ALL software developed in the Readium project. This includes not only the current active projects but also legacy software (Cloud Reader, Chrome app and Readium C++ SDK)

### Communication

Readium strives to create a courteous, welcoming environment that feels approachable to newcomers. We maintain both public chat rooms (via Slack) and a public mailing list (readium-dev@gmail.com) where the ideas of contributors both new and old are heard and discussed with equal weight. For more information see the Communication page [here](https://readium.org/development/contributing/).
Readium strives to create a courteous, welcoming environment that feels approachable to newcomers. We maintain discussion threads on our Github projects, where the developer ideas are heard and discussed with equal weight. We respond to Github issues as quickly as possible. Readium Foundation members and active contributors to the toolkits benefit from a Slack space where they can directly discuss with the project maintainers.

### Standards Compliance
For more information see the [Contribution page](https://readium.org/development/contributing/).

Readium aims for compliance with all the relevant W3C specifications, including EPUB as well as other emerging digital publishing format such as audio and comic books.
### Standards Compliance

In order to achieve this, many members of the Readium community are active participants in a wide variety of W3C working groups (e.g. working, community and business groups for both EPUB and WebPub).
Publishing standards are expected to have longevity, to be interoperable across multiple, indirect distribution channels, and reliably manipulated by intermediate workflows.

In addition to helping to develop the specifications themselves, Readium has and will continue to provide feedback to the various W3C groups on developing and testing implementations of the new emerging standards.
Readium aims for being a comprehensive reference system, with a high level of compliance with EPUB 3 as well as other emerging digital publishing formats, such as Web Publications, Audiobooks and Digital Visual Narratives.

EPUB and related formats are expected to have longevity and to be interoperable across multiple, indirect distribution channels, and reliably manipulated by intermediate workflows. Being a comprehensive reference system, Readium places a high priority on compatibility with the EPUB specifications as well as new emerging standards, such as WebPub.
In order to achieve this, many members of the Readium community are active participants in a wide variety of W3C working groups (e.g. working, community and business groups for both EPUB and Web Publications).

### Accessibility
Providing access to reading system functionality for ALL users is a critical part of the Readium goals. To achieve this, great efforts are made as part of the Readium development to provide access to the content for all users, whether that is through using CSS to provide a better reading experience or tight integration with system level accessibility affordances such as VoiceOver and similar technologies.

Providing access to reading system functionality for ALL users is a critical part of Readium goals. To achieve this, great efforts are made as part of the Readium development to provide access to the content for all users, whether that is through using CSS to provide a better reading experience or tight integration with system level accessibility affordances such as VoiceOver and similar technologies.

### Stability

The Readium development community strives to keep the code base up to date and with a high degree of stability. This means that crashes, hangs and regressions are given the highest priority for fixes and releases. Readium closely tracks reported issues from both internal testing and external forums. Members of the Readium community are strongly encouraged to report new issues, update ongoing problems and foster communication aimed at provide a more stable development and execution environment.

### Performance

Maintaining and improving execution speed and memory use is an important goal, and one that Readium aims to achieve. However, there is a dynamic balance to be struck as Readium also aims to provide a complete reference system for both EPUB and other emerging W3C standards.
Maintaining and improving execution speed and memory use is an important goal, and one that Readium aims to achieve. However, there is a dynamic balance to be struck as Readium also aims to provide a complete reference system for both EPUB and other emerging publishing standards.

### Security

Protecting users from security violations is critical. Insofar as possible we strive to fix security issues promptly to protect users and maintain their trust.

### Usability

To the extent that Readium features affect the user experience, we want them to work in accordance with good human interface design principles, and to mesh well with platform-native HI conventions. Furthermore, we strive to integrate with platform accessibility features to allow access for all users, including those with disabilities.
To the extent that Readium features affect the user experience, we want them to work in accordance with good human interface design principles, and to mesh well with platform-native UI conventions. Furthermore, we strive to integrate with platform accessibility features to allow access for all users, including those with disabilities.

### Governance
Governance of the project is by a seven-person board of directors which takes direction from the members of the Readium Foundation as well as the grass-roots needs and requests from the contributors (who need not be members of the Foundation).

The governance of the project is achieved by a seven-person board of directors, which takes direction from the members of the Readium Foundation.

### Non-Goals

The above set of goals are a lot to bite off, so we consider the following out of scope for the project:

- Readium is a reference system and engine, not a commercial Reading System.
- Readium is a reference system and engine, not a commercial Reading System. Thus there is no guaranteed support for software developers using the toolkits.
- We have no plans to develop or host a full-featured commercial-quality application based on Readium. Others are welcome to do so, of course.
- Readium is not the solution to every problem. We focus on handling EPUB/WebPub publications, not complete solutions to every imaginable technology need.



39 changes: 22 additions & 17 deletions _pages/development/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ table, td, th {

## Introduction

As an open-source project, Readium welcomes contributions from everyone - individuals, corporations and non-profit organizations. The best way to get started with Readium is to read through the introductory materials on this site, subscribe to the Readium Slack and of course download the source code and start playing.
As an open-source project, Readium welcomes contributions from everyone - individuals, corporations and non-profit organizations. The best way to get started with Readium is to read through the introductory materials on this site, download the source code and start developing applications.

An important note to bear in mind is that YOU are the Readium team. The Readium Foundation has no "dedicated team" and every piece of the different Readium projects is done by Readium contributors. Contributors have therefore an important role in the organization.

Many developers take Readium toolkits and integrate them into their application without contributing back to the Readium project. This is already really useful, as the increase of the number of applications based on Readium toolkits mechanically improves the level of interoperability of EPUB 3 and Audiobooks reading systems. Non-contributing developers are considered "implementers" by the active Readium community and also have a role, plus some duties, detailed below.
Many developers take Readium toolkits and integrate them into their application without contributing back to the Readium project. This is fine, as the increase of the number of applications based on Readium toolkits mechanically improves the level of interoperability of EPUB 3 and Audiobooks reading systems. Non-contributing developers are considered "implementers" by the active Readium community and also have a role, plus some duties, detailed below.

## The Roles and duties of Participants

Expand All @@ -26,40 +26,45 @@ Many developers take Readium toolkits and integrate them into their application

If you decide to start a development based on Readium Mobile, please:

* Make sure that the whole dev team has a good understanding of Swift and Kotlin development, including build systems, dependency management etc., i.e basics that are not part of Readium Mobile. The Readium community cannot help beginners in mobile development.
* Before expecting help in solving your implementation issues, check the codebase of the TestApp provided with the Swift and Kotlin toolkit: the TestApp does work and has all the details you need.
* If you have problems with the TestApp you just built, download the pre-compiled beta R2 Reader testapp (links are found in the readme of the Swift and Kotlin toolkits).
* Make sure that the whole dev team has a good understanding of Swift or Kotlin development depending the project you are involved in, including build systems, dependency management etc., i.e basics that are not part of the Readium codebase. The Readium community cannot help beginners.
* Before expecting help in solving your implementation issues, check the codebase of the TestApp provided with the Swift and Kotlin toolkit.
* If you have problems with the TestApp you just built, download the pre-compiled TestApp (links are found in the readme of the Swift and Kotlin toolkits).
* Once you have the TestApp running (and working with LCP in test mode if you are using it), this will hopefully leave only very specific questions to ask.
* If you have specific questions about the Swift or Kotlin toolkit, and the answer is not found in the codebase, Github discussions, Slack history, please ask those questions in the #r2-swift or #r2-kotlin Slack channel respectively.
* If after careful testing you think you have discovered an issue related to the Swift or Kotlin toolkit, please open a Github issue in the swift-toolkit or kotlin-toolkit repository respectively.
* If the community cannot answer to your questions or help solving your problems, paid consulting has to be considered.
* If you have specific questions about the Swift or Kotlin toolkit and the answer is not found in the codebase, look first into Github discussions and issues.
* Readium Foundation members have an additional access to the Readium Slack, in the channels named #swift-toolkit and #kotlin-toolkit.
* If after careful testing you think you have discovered an issue in a toolkit, please open a Github issue in the proper repository.
* If the community cannot answer to your questions or help solving your problems, paid consulting should be considered.

#### __On Readium Desktop__

If you decide to start a development based on Readium Desktop (or EDRLab's Thorium Reader), please:

* Make sure that the whole dev team has a very good understanding of Electron.js, React.js and typescript, including build systems, dependency management etc. This project is not for faint hearts ;-).
* Other rules are the same as for the Readium Mobile toolkit; the best Slack channel for discussions is #r2-desktop and issues are to be open in the appropriate r2-*-js Github repository. Only application-level issues can be open in the EDRLab thorium-reader Github repository.
* Make sure that the whole dev team has a very good understanding of Electron.js, Node.js, React.js and typescript, including build systems, dependency management etc. This project is not for faint hearts ;-).
* Other rules are the same as for the Readium Mobile toolkit.
* Readium Foundation members have an additional access to the Readium Slack, channel #desktop-toolkit.
* Application-level issues should be open in the EDRLab thorium-reader Github repository.

#### __On Readium LCP__

* Make sure that the whole dev team has a very good understanding of security on the Web (setting up https, securing confidential information etc.).
* Once you have obtained the test LCP client library from EDRLab, the instructions available in the toolkit should be enough to integrate the library without hiccup.
* A first-level support is offered by EDRLab for LCP integrations.
* If you have specific questions about the LCP DRM, please ask those questions in the #lcp Slack channel.
* If the community cannot answer to your questions or help solving your problems, paid consulting has to be considered.
* If you have specific questions about the LCP Service and the answer is not found in the codebase, look first into Github discussions and issues.
* Readium Foundation members have an additional access to the Readium Slack, channel #lcp.
* Additional support is offered by EDRLab for LCP prospects.
* If the community cannot answer to your questions or help solving your problems, paid consulting should be considered.

#### __Once the app is ready__

* Please announce this achievement in the Readium Slack, #general channel, with links to the apps on the Apple and Google stores. We will then add your app to the "awesome Readium" page.
* Please announce this achievement on Twitter/X or LinkedIn with a #readium hash tag, with links to the apps on the Apple and Google stores. We will then add your app to the "awesome Readium" page.
* The Readium community will appreciate if you promote Readium on social networks.
* It is still time to become a Contributor, see below ...

### Contributor

* Contribution can be done in a variety of ways: submitting or reviewing pull requests, participating in the Readium Dev calls and in architectural discussions, writing technical documentation, etc.
* Contribution can be achieved in a variety of ways: submitting or reviewing pull requests, participating in the Readium Dev calls and in architectural discussions, writing technical documentation, etc.
* Anyone is welcome to contribute to Readium projects.
* No special rights are required, anyone can submit a pull request from a private fork or open issues to question the API or architecture.
* Active contributors gain access to the Readium Slack.

### Maintainer

Expand Down Expand Up @@ -127,7 +132,7 @@ Before contributing, please sign and send to the Readium Foundation the [Readium
### Architectural Decisions

* Because of their deeply impacting nature, each architectural and API decision must be first discussed and agreed upon through an issue on either architecture, or in the appropriate repository for platform-specific concerns.
* Readium Dev calls and Slack are not the place to take architectural decisions, but they can be used for debate or suggesting ideas.
* Readium Dev calls and Slack are not the place to take architectural decisions, but they can be used for debate or suggesting ideas.
* Upon agreement, a Markdown documentation will be produced to explain the architecture or API, and the solution will be implemented. This document will usually be stored into the Architecture repository on Github.

### In Case of Disagreement
Expand Down Expand Up @@ -165,7 +170,7 @@ Most Readium repositories have discussions attached, and they should be used in

### Slack

Readium contributors are using Slack for real-time chats. Access to the [Readium Slack](https://readium.slack.com) is reserved to Readium Foundation Members and invited guests.
Readium maintainers, active contributors and members are using the [Readium Slack](https://readium.slack.com) for real-time chats.

### Weekly Meetings

Expand Down

0 comments on commit ccd8cae

Please sign in to comment.