• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    HTML
  • License
    MIT License
  • Created over 5 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A definition of the culture around how decisions are made about Solid and a record of how this has changed over time

This repository details how changes to Solid may be proposed and accepted.

Solid Specification

The following describes how changes to the specifications in the Solid ecosystem may be proposed and accepted. Anyone may submit a proposal to alter this process; such proposals will be approved only by Tim Berners-Lee, who is the Solid Director.

Development in the Solid ecosystem occurs in the Solid Specifications repository. The deprecated Unofficial Draft predating current development is still available for historical reference.

Anyone may participate in this process. Please read the Code of Conduct before doing so.

Editorial Team

The Solid Editorial Team is responsible for the implementation of the Solid Specification process. Members of the Editorial Team are appointed by the Solid Director. The Editorial Team is comprised of all the Editors appointed by the Solid Director, who are listed at editors.md, along with their assignments, contact details, and affiliations. The Editorial Team shepherds Solid and coordinates with those who participate in Solid Panels and with Stakeholders and Implementers. The Solid Director may also appoint support personnel on an as-needed basis, such as a Release Manager, for organizing the workflow of the specification process.

Anyone may apply to be an Editor, and must include one or more requested editorial assignments as part of their application. These requests are reviewed only by the Solid Director. Editor applications that can demonstrate the support of a relevant panel or group of community members will be favorably considered.

Contributors

Any individual who has been involved in proposals to improve the Solid Specification has provided a valuable service to the Solid Project and is encouraged to continue.

Contributions are welcome, including identifying problems, asking questions, and proposing normative changes.

There are many topics, problems, or ideas best addressed by a group of contributors with specific domain expertise in Solid Panels.

Solid Panels

Solid Panels are groups of contributors focused on a specific problem or domain relevant to Solid, with an aim to propose changes to the Solid Specification. Domains may be technical, non-technical, or some combination of the two. For example, a Security Panel could focus on the evaluation and advancement of the Solid security model. Only those who have agreed to the W3C Community Contributor License Agreement may participate in a Solid Panel.

New panels may be proposed by submitting an issue to the solid/process repository. Establishing a new panel requires the endorsement of at least one member of the Editorial Team. To receive endorsement, the proposed panel submission must include:

  1. A stated purpose
  2. One or more initiatives that will be actively pursued and tracked in regular panel sessions to advance the stated purpose
  3. Demonstrable support of at least five prospective participants

The panel proposal can be revised until at least one member of the Editorial Team endorses the proposal. Submissions that fail to receive endorsement may be removed by Solid Administrators after 3 months.

Any Editor endorsing a panel is expected to attend the panel regularly, and to provide the panel insight on specification priorities and support the work of the panel.

Each panel is chaired by one or more Panel Chairs. An Editorial Team member endorsing a panel is responsible for appointing the Panel Chairs, barring any objections from another Editor, another Panel Chair of the same panel, or objection from a majority of panel members. The Solid Director reserves the right to appoint and/or change Panel Chairs. In the event that an Editor is nominated as a Panel Chair, they must be appointed by another member of the Editorial Team.

Responsibilities of a Panel Chair include but are not limited to:

  • Coordinating and communicating panel initiatives
  • Working with Editors on prioritizing panel initiatives
  • Ensuring panel meetings are focused on advancing panel initiatives
  • Ensuring every panel meeting has a clear goal and agenda
  • Ensuring all actions arising from meetings are tracked to completion
  • Ensuring target dates are set for objectives
  • Ensuring panel decisions, activities, and achievements are tracked and communicated

Specification changes proposed by a panel are subject to the proposal review process.

Those interested in participating in a panel can find a list of active panels at panels.md.

Panels may request to have a repository created within the Solid Github Organization by creating an issue in solid/process. The request should include the proposed name of the repository and how it will be used. Any editor may reject a proposed name and request an alternative. All panel members will receive Maintain Permissions on the panel repository. Panel repositories that are inactive for more than six months may be archived by Solid Administrators.

Panels may request to have a gitter channel created within the Solid Gitter Organization by creating an issue in solid/process.

Panels that become inactive can be closed by a majority vote of the Solid Editors.

Stakeholders

Stakeholders are those affected by normative changes to the Solid Specification. There are two types of Stakeholders: Solid Users and Solid Implementers. It is important to consider them both when proposing changes, and adhering to the W3C Web Platform Design Principles' Priority of Constituencies is encouraged. A Stakeholder may be both a user and an implementer.

Stakeholders who have opted to identify themselves publicly are listed at stakeholders.md. Anyone may decide to identify themselves publicly as a Solid Stakeholder, but it is not mandatory. Identified stakeholders may be consulted for feedback as part of the editorial process.

Implementers

Solid Implementers are organizations who are implementing the Solid Specification. A Solid Implementer may be any combination of Identity Provider, Pod Provider, Application Provider, or a provider of other Solid-related functionality.

How to Make Changes

This section details how changes to the Solid Specification may be drafted, proposed, and accepted.

Drafting proposals

Anyone may propose improvements to the Solid Specification, which should be submitted as a pull request or issue on the Solid Specification repository in GitHub. Proposals for substantive changes to the Solid Specification go through an editorial review process. A change is considered substantive when it alters the normative text of the Solid Specification or the Solid Roadmap. Any proposal must be realistic and reasonable to implement, preferably with example implementations, and demonstrable support from Implementers.

Any proposal should also be accompanied with a reasonable explanation of the need for the proposed change. For example:

  • Adding a new capability to satisfy one or more new use cases, or to reflect a capability that has already been implemented.
  • Removing something because it was never adopted by Implementers for legitimate reasons, or because there has been a collective shift in focus away from that feature and it no longer makes sense to keep it.
  • Changing something to a simpler design that is able to address the same use case(s) with less complexity, or a change that resolves one or more identified issues in real-world use.

A draft proposal often involves public discussion before being formally presented for review. Stakeholders and Panels may provide feedback on draft proposals.

Reviewing proposals

Candidate proposals to the Solid Specification submitted for review go through an editorial process before they are accepted.

The Solid Editors maintain a monthly development cycle in which they select proposals and issues from the open issues and proposals for consideration.

The Editors typically meet weekly, with an agenda put forward by the Solid Director with the help of other Editors and the Release Manager. In the interest of transparency, these meetings are to be recorded and made public within two days of the meeting.

To help broad consensus form, it is suggested that each proposal be brought to the attention of the Editors at some defined contact points during its life cycle. These contact points are:

  1. When a reason to change or extend the specification is first encountered, an issue can be created. The issue can then be used for further communication with the Editors.
  2. Panels may create or adopt issues, and Panels should notify Editors that such discussion has started.
  3. When a Panel reaches rough consensus on an issue, the Panel should notify the Editors, indicating in informal text what the consensus entails and who participated in forming it.
  4. When a Panel starts drafting the text of a proposal, the Panel should notify the Editors.

The above is not required and may be superfluous for small changes, but is likely to speed up the overall process for larger issues.

An Editor determines whether a Candidate Proposal includes a substantive change and marks it accordingly. If there is any disagreement among Editors, the Candidate Proposal will be automatically marked as including a substantive change.

When a proposal is first submitted, the Solid Editors will assign a single Editor as the shepherd for the proposal and assign a time window for review and its acceptance or rejection; the time window will be either 1 or 2 months from the date of proposal submission, depending on the complexity of the proposal. If an Editor is a contributor to the proposal, they will not be assigned as the proposal's shepherd. This time window includes all discussion and revision that may be needed to improve the proposal. The Solid Director, working with the Solid Editors and any administrative support personnel, will maintain a dashboard of open and closed proposals, time windows for review, and review status.

If a contributor disapproves of Candidate Proposal that is under consideration, they must provide substantive, written comments that contain proposed remedies to the Solid Editors at least 1 week before the end of the review time window. The Solid Editors will consider the comments and suggest possible remedies.

Candidate Proposals with substantive changes must be responsive to comments and objections. If rough consensus to approve the proposal cannot be reached among the Solid Editors, a vote must be taken during an Solid Editors meeting, and the advancement of the proposal can be blocked by a negative vote by 1/3 of all Editors. Once the Candidate Proposal has successfully passed editorial review, it is merged by its shepherd. The shepherd for a proposal is responsible for ensuring a resolution of the proposal within the time window, and if the shepherd is unable to complete the proposal review during the time window, the Solid Director will appoint a different Editor as shepherd and extend the time window for the proposal by 1 month. If a proposal is not approved, the proposer may resubmit it in revised form no sooner than one month after the final review by the Solid Editors.

Candidate Proposals without substantive changes require one Editor assigned to the material being modified to actively approve the proposal, with no Editors from the Editorial Team actively rejecting, and may be merged immediately by an assigned Editor. The assigned Editor who is shepherding may approve and merge their own non-substantive changes. Anyone from the Editorial Team has the right to revert a non-substantive change, but are encouraged to communicate with the assigned Editor who merged it first. Any revert must be accompanied by a reasonable explanation. If the change is reverted because they believe it to be substantive, that must be included in the explanation.

Vocabulary Management

The W3C Solid Community Group handles the management of Solid vocabularies under its responsibility through the solid/vocab repository.

The policy for the management of Solid vocabularies under the W3C namespace is described in Adding to W3C RDF Namespaces.

Repositories

Repositories requiring editorial review are listed in editors.md. Each repository has one or more assigned editors, and only assigned editors are permitted to merge into the main branch of these repositories, per the proposal review process.

Editors have Admin Permissions on the repositories they are assigned to, and are permitted to grant Write Permissions to other contributing authors on the same. All Editors have Write Permissions on all repositories requiring editorial review listed in editors.md.

Solid QA

Solid QA policy, processes, and procedures are developed through the Test Suite Panel as per the Test Suite Panel Charter with the aim to give authors of technical reports and implementers of software confidence that they can rely on the Solid ecosystem to deliver on the promise of interoperability based on open standards.

Administration

Administrators are granted privileged access to control the tools, systems, and services used for advancing the Solid. This includes the Solid GitHub organization, Solid Gitter channels, the Solid Forum, and the Solid Website.

Administrators belong to the Administrators Team in the Solid GitHub Organization and have Admin Permissions on all repositories therein. Administrators have Owner Permissions for the Solid GitHub Organization.

The Solid World Coordination Administrator is granted privileged access to such tools, systems, and services as are required to coordinate and promote the monthly Solid World webinar, such as Vimeo, Twitter, Eventbrite, Typeform, and/or others.

Becoming an Administrator

Administrators are appointed by the Solid Director. Administrators are listed at administrators.md along with their contact details and affiliations. Anyone may apply to be an Administrator. Administrator applications are reviewed only by the Solid Director.

Solidproject.org Website

Creators independently assist with keeping solidproject.org up to date.

Anyone can make suggestions by creating issues or submitting pull requests to the solid/solidproject.org repository.

Minor changes (such as spelling, grammar, and broken links) do not require review. Larger chunks of texts should be reviewed by a Creator or Editor for technical correctness. Changes to the main messaging require an approving review by the Director.

Solidcommunity.net

Solidcommunity.net is a free pod hosting service maintained by the Solid Project for research, development, and experimental, non-commercial use of Solid by community members.

It is administered by System Operators, with additional support from Solid Project Administrators. System Operators are appointed by the Solid Director.

More Repositories

1

solid

Solid - Re-decentralizing the web (project directory)
HTML
8,162
star
2

node-solid-server

Solid server on top of the file-system in NodeJS
JavaScript
1,666
star
3

solid-spec

Solid specification draft 0.7.0
1,133
star
4

specification

Solid Technical Reports
HTML
490
star
5

community-server

Community Solid Server: an open and modular implementation of the Solid specifications
TypeScript
260
star
6

solidproject.org

Website for solidproject.org
HTML
150
star
7

web-access-control-spec

Web Access Control (WAC)
HTML
122
star
8

solid-auth-client

A browser library for performing authenticated requests to Solid pods
JavaScript
95
star
9

webid-oidc-spec

WebID-OIDC Authentication Spec v0.1.0
56
star
10

data-interoperability-panel

Repository for the Solid Data Interoperability Panel
Bikeshed
51
star
11

vocab

Solid Vocabularies
Makefile
44
star
12

user-stories

A repository to submit user stories
29
star
13

oidc-auth-manager

An OpenID Connect (OIDC) authentication manager (OP, RP and RS) for decentralized peer-to-peer authentication
JavaScript
24
star
14

solidcommunity.net

Operational issue tracking for solidcommunity.net
21
star
15

solid.mit.edu

Homepage for the Solid MIT Project
CSS
20
star
16

solid-namespace

A collection of common RDF namespaces used in the Solid project
JavaScript
19
star
17

authorization-panel

Github repository for the Solid Authorization Panel
HTML
19
star
18

solid-oidc

The repository for the Solid OIDC authentication specification.
Bikeshed
19
star
19

acl-check

Simple check of Web Access Control (WAC) access
JavaScript
13
star
20

webid-profile

Discovery based on Solid Social Agent WebID
HTML
12
star
21

authentication-panel

GitHub repository for the Solid Authentication Panel
HTML
11
star
22

notifications

Solid Notifications Technical Reports
HTML
11
star
23

solid-wg-charter

Proposed charter for the W3C Solid Working Group
HTML
10
star
24

community-server-recipes

Solid Community Server with the Mashlib Data Browser
9
star
25

node-solid-ws

Node/Javascript implementation of Websockets for Solid
JavaScript
8
star
26

type-indexes

About Type Indexes and how they can be used by Solid developers.
HTML
7
star
27

solid-auth-oidc

OpenID Connect authentication support for the solid-client library
JavaScript
6
star
28

chat

Repository for chat client-to-client specification
HTML
6
star
29

deit

Diversity, Equity, and Inclusion Team
6
star
30

contacts

Client-client specifications of contacts data for people and organizations
6
star
31

did-method-solid

Solid DID Method
HTML
5
star
32

oidc-op

OpenID Connect Provider for Node.js
JavaScript
5
star
33

oidc-rs

OpenID Connect Resource Server Authentication for Node.js
JavaScript
5
star
34

notifications-panel

Solid Notifications Panel
HTML
4
star
35

jose

JSON Object Signing and Encryption for Node.js and the browser
JavaScript
4
star
36

shapes

Solid Shapes
4
star
37

solid.github.io

Staging branch of the solidproject.org repository
HTML
3
star
38

keychain

KeyChain for use with Web Cryptography API in Node.js
JavaScript
3
star
39

test-suite-panel

Test Suite Panel
2
star
40

team

2
star
41

security-considerations

Bikeshed
2
star
42

eslint-config-base

Solid defaults for eslinting.
JavaScript
1
star
43

access-token-verifier

Solid access token verification.
TypeScript
1
star
44

solid-prep

Representation and Semantics for PREP Notifications sent from Solid hosted LDP Resources
Bikeshed
1
star
45

httpsig

HttpSig Authentication for Solid
HTML
1
star