Skip to content

Latest commit

 

History

History
335 lines (195 loc) · 16.9 KB

governance.md

File metadata and controls

335 lines (195 loc) · 16.9 KB
layout
governance.hbs

TypeDB OSI Governance and Operations Guidelines

[TOC]

TypeDB OSI Vision and Mission

TODO

A structured platform for users...

  • to contribute to the TypeDB development roadmap
  • to contribute to TypeDB server and libraries
  • to centralise all TypeDB projects as one ecosystem
  • As a vehicle to organise community projects via the TypeDB Project Incubator
  • As the support structure to empower a whole new generation of software developers

TypeDB OSI Ecosystem

Overview

The TypeDB OSI Ecosystem comprises all resources and technologies to be used with TypeDB. We aim to organise and present these technologies in a consistent format, for ease of implementation and understanding.

Examples of resources and technologies include but are not limited to, client drivers, IDE plug-ins, loaders, visualisers, and resources such as: schema gists by industry, domain, and/or concept, datasets by industry and/or domain, general libraries, blog posts, documentation and educational materials related to the TypeDB ecosystem technologies.

Technologies within the TypeDB OSI Ecosystem can take advantage of early and/or pre-releases of TypeDB in order to understand implications and impact to a maintainer's project. Additionally, the internal Vaticle TypeDB team will be able to better understand the impact of new releases by testing with existing TypeDB Ecosystem projects during the release process.

Ecosystem Roadmap

The TypeDB Ecosystem will also address open problems and project opportunities that would enhance or support the efforts of the larger community - whether that is exploring a new language api for an emerging programming language, or getting a head start on an IDE plug-in, we will work with the community to maintain an active list of open problems and opportunities.

Submitting an idea and/or request

Submit a new project idea

Submissions for new project ideas can be made via _________. These ideas will be reviewed during the monthly TypeDB OSI meeting and submittors of ideas selected for development will be notified via email. There is no obligation to own/ maintain development of submitted ideas, however, ideas submitted with interested developer/maintainer, will be prioritised.

Submit an idea for an existing project

Submissions for feature requests, ideas for imporvement, etc., for existing projects can be made directly via the projects github repo - submit an "feature request" issue with as much detail as possible, adhering to the template provided.

For further details see [TypeDB Incubator: Contibution Guidelines](#TypeDB OSI Contributor Guidelines)

TypeDB OSI Incubator

Objective

Nurture TypeDB open source projects to a state of maturity. Providing the community with production-ready, high-standard of quality, independent tools to aid in, and accelerate their development.

The TypeDB OSI Incubator will aim to provide maintainers of Incubator projects the ability to:

  1. Find community members to contribute in meaningful and productive ways
  2. Raise the visibility of their projects across the community and beyond
  3. Maintain a standard of quality through code quality governance and resources
  4. Ensure continuity of the maintenance and lifetime of the project

Benefits

As the TypeDB OSI is intended to provide a platform for innovation and acceleration of development in open-source technologies related to TypeDB, participating projects in the TypeDB OSI Incubator will have access to a host of benefits. These are meant to address some of the challenges related to starting, maintaining and driving usage of open-source projects related to TypeDB.

These benefits include, but are not limited to:

  • Access to TypeDB OSI mentors (see TypeDB OSI Governance: Mentors)
  • Github organisation maintenance - when hosting your project repo within the TypeDB OSI organisation (see [TypeDB OSI Incubator: Project Location](#Project Location))
  • Dedicated Discord channel within Vaticle Community Server (see TypeDB OSI Incubator: Discord)
  • TypeDB OSI standards and templates for contribution, including but not limited to: PR and issue submission templates, qa standards and resources

New submission protocol

Protocol for new project submissions into the TypeDB OSI Incubator should be simple for the maintainer, as well as ensure that all new projects adhere to a minimum quality standard shared by all projects within the TypeDB OSI.

The protocol for submitting a new project is as follows - subject to change, by agreement between the TypeDB Committee Leadership:

  1. Submit request via typedb.org submission form.
  2. New submission assigned to a TypeDB OSI Leader who then checks:
    1. Does the project meet prerequisites? (see [TypeDB OSI Incubator: Quality Standards](#Quality standards))
    2. Once the project meets all prerequisites, the maintainer will be informed via email and invited into the github.com/typedb-osi organisation
  3. Maintainer should then create or move repo to github.com/typedb-osi organisation
    1. If a repo already exists and maintainer would like to keep the repo in its existing location, based on existing user base and impact
  4. Once a repo has been created, a discord channel will be created and maintainer will be given [typedb-osi-project-name] role
  5. Maintainer and TypeDB OSI will work together to schedule an introduction talk with the community, to introduce the project to the wider TypeDB Community

Quality standards

Quality standards for all new and existing projects within the TypeDB OSI Ecosystem are meant to ensure that community members

Prerequisite for new projects

TODO

  1. Have an active maintainer willing to commit to ownership of project for at least the next 6 months
  2. Adhere to TypeDB OSI Incubator quality pre-requisites:
    1. Lorums lkajsdf
    2. Alskdfjnu kjasdnf
    3. Dsf sadflj asldf
    4. ;ajsdf lkasd asd

QA for existing projects

TODO

  • Source Code Analysis metrics
  • Test coverage
  • CI/CD
  • Documentation

Project Location

While we recommend to start projects within the TypeDB OSI github organisation, it is ultimately up to the maintainer to decide what is best for the project and users.

Privileges and benefits of hosting your repository on https://github.com/typedb-osi

  • The creator has full “maintainer” role of the repository
  • Visibility and maintainability
  • Ease of collaboration
  • Continuity and lifetime of the project
  • Access to community-wide resources such as CI/CD
  • Early access to TypeDB experimental features

Licensing

The community edition of TypeDB is licensed under AGPL, but for any driver or client library that uses or implements AGPL code such as Protocol or TypeQL, we make an explicit exception in our AGPL license allowing you to release those under the more permissive licenses MIT, 2-clause BSD or Apache. You'll find the legal language for this exception in the AGPL license file.

Recommendations for your project

We recommend making projects as permissive as possible, whether that means using Apache, MIT or 2-clause BSD, which are all permissive licenses. Depending on specific cases within a project you can select another license not mentioned.

Project Communication

Discord

Discord Channels will be established to ensure ease of communication on day to day basis.

  1. #General

    • Day to day communication related to TypeDB OSI Incubator management and collaboration
  2. #[project channel]

    • Day to day communication related to a specific project within the Incubator
    • Should there already exist a dedicated channel for this project within another communication channel outside TypeDB OSI, regular (as defined by the maintainer) updates should be added to the channel within TypeDB OSI.

Discussion Forum

The discussion forum is to be used for ongoing discussions on technical issues, features, long form topics related to the TypeDB OSI Incubator projects.

  1. Dedicated Category: split by domain/ecosystem
  2. Dedicated sub-category by project

TypeDB Development Roadmap

TODO

The development roadmap for TypeDB is one that A forum to suggest and collaborate on the development roadmap of the TypeDB database. Does this include facilitating creation of new projects within key industries that might be identified by the TypeDB OSI Leadership and/or Advisors?

TypeDB OSI Commercial Applications and Companies

TODO

  • Help to promote technologies that are built using TypeDB
  • Graduated projects from TypeDB incubator

TypeDB OSI Contributor Guidelines

A TypeDB OSI Contributor is someone who makes consistent improvements to TypeDB, TypeDB OSI Incubator or TypeDB OSI Ecosystem projects.

Becoming a TypeDB OSI Contributor

All individuals who wish to contribute to TypeDB OSI projects and/or repos need to have a signed contributor agreement on file with the OSI.

Contributor Agreements

The TypeDB OSI uses various agreements to accept regular contributions from individuals and corporations, and to accept larger grants of existing software technologies.

These agreements help us achieve our goal of providing reliable and long-lived software technologies through collaborative open source software development. In all cases, contributors retain full rights to use their original contributions for any other purpose outside of TypeDB OSI while providing the TypeDB OSI and its projects the right to distribute and build upon their work within TypeDB OSI

Contributor License Agreements

The TypeDB OSI desires that all contributors of ideas, code, or documentation to any TypeDB OSI projects complete, sign, and submit via email an Individual Contributor License Agreement (ICLA).

The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the TypeDB OSI and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time. A signed ICLA is required to be on file before an individual is given commit rights to any TypeDB OSI project.

For a corporation that has assigned employees to work on an TypeDB OSI project, a Corporate CLA (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement.

Note that a Corporate CLA does not remove the need for every developer to sign their own ICLA as an individual, which covers both contributions which are owned and those that are not owned by the corporation signing the CCLA.

The CCLA legally binds the corporation, so it must be signed by a person with authority to enter into legal contracts on behalf of the corporation.

The ICLA is not tied to any employer specifically, so it is recommended to use one's personal email address in the contact details, rather than an @work address.

Your full name will be published unless you provide an alternative public name. For example if your full name is Alfred North Whitehead, but you wish to be known as Al Whitehead, please enter the latter as your Public name. Your Full name should be written with your given name first and your family name last, though your preferred ordering can be used in the Public name.

The email address and other contact details are not published.

If you are submitting an ICLA in response to an invitation from a TypeDB OSI Committee member, be sure to identify the project via the email with your ICLA.

How to submit a license or grant agreement

  1. Download agreements for signature
    1. ICLA download
    2. CCLA download
  2. Sign (digitally or print, sign and scan as pdf) and return via email signed agreement to [email protected]
  3. Confirmation of submission will be via email - please save this email for future reference

Technical Requirements

You'll need to have some basic programming experience with the technologies and tools we use.

Tools

Git & Github - Clone, commit and open a PR using Git and GitHub. Check out the following tutorials:
  • Introduction to git
  • Introduction to GitHub
  • Popular git commands and how to use them
  • Git commands in-depth
  • Mastering Markdown
  • Markdown Tutoria

Languages

  • TypeQL
  • Java
  • Python Guides
    • Python's official tutorial
    • Python's official style guide
    • Python's best practices
    • The Zen of Python

Project/Organisation Structure

To be written

Contribution Workflow

Before getting started, please make sure you've read the README of the respective project repository to get a primer on the project specific details for contributions. Note: the TypeDB OSI maintains standards and templates for contributions but projects may have specific dependencies or requirements.

Opening an Issue

If you're experiencing an issue with any project or have a question you'd like help answering, please feel free to open an issue in the respective repository of the project. To help us prevent duplicates, we kindly ask that you briefly search for your problem or question in our issues before opening a new one. You should also search through:

  • Discord Server
  • Discussion Forum
  • Stack Overflow

Please note that if you open a bug report and your issue does not follow our template, we cannot help you until you have provided us all the relevant information in that format. Respectfully, we do not have the time to try and recreate an error given with minimal or no context, so by providing this information you are helping us help you! You will see this template when you open an issue; click on "Bug Report" and it will be populated with descriptions of what to put in each section. Replace the descriptions with your comments to the best of your ability, and please include screenshots and error logs if applicable.

Submitting a PR

klasdjfa;slkdfjas;ldfkjas;ldkfjas;lkdfj

a;sldkfja;lskdjf;laksdfj;lk

TypeDB OSI Employment Forum

To support and facilitate TypeDB consultancy jobs, as well as a community job board.

  1. Provide a forum to share full-time, part-time, and consulting work
  2. Help to create an environment that fosters experience, and career growth across members skill levels
  3. Not just development / engineering opportunities but data science, strategy, implementation

Submit a job or project task

New jobs and tasks will be reviewed during the TypeDB OSI monthly meeting and then posted to the Employment forum on https://typedb.org. For expedited submissions, email [email protected] and request to post immediately onto the Discord server and Employement forum.

Respond to a job or task

lf you would like to take on a job or task, posted to the TypeDB OSI Employment Forum, please make sure to review all requirements, and email [email protected], a TypeDB OSI leader will then connect you and the maintainer/owner to conduct a brief briefing session.

Once a job or task has been assigned to a contributor, the listing will be marked as "in progress". After the job or task is completed and the maintainer/owner has approved or confirmed completion, the listing will be marked "complete" for a period of 7 days, when it will be archived.

TypeDB OSI Governance

The organisational structure of the TypeDB OSI Committee that will run, moderate, organise and lead the initiatives. Advisors and Leaders to be nominated and voted in by all members of the committee.

Organisational Structure

The organisational structure of the TypeDB OSI aims to be as flat as possible to ensure everyone is able to contribute to the overall direction and success of the programme(s). Leadership positions will be filled via nominations and TypeDB OSI member voting. Nominations and voting will take place once per year following the first year (2021).

Leaders

Provide the oversight and management of TypeDB Incubator, set standards for work, set development roadmap for TypeDB open-source project and community projects

Advisors

Those individuals who are veterans, experts in their domain and want to support the efforts of the TypeDB OSI through strategic and/or directional input.

Mentors

Support persons, providing qa, guideance, and code review to TypeDB OSI and Incubator projects - aim to assign one mentor to each TypeDB Incubator project.

Contributors

Anyone that is contributing to a TypeDB Incubator project and has a signed CLA on file.

Partners

Anyone that would like to bridge the gap between TypeDB and external communities (MLH, Julia, etc. ).

Members

Anyone from the Vaticle Community that wants to be a part of the TypeDB OSI – the starting place for all new members.

Communication

Discord

  • General
  • Governance

Discussion forum

  • Formal recording of decisions
  • Meeting notes
  • Ongoing discussions post-meetings

Typedb.org email domain

  • Security and authentication of identity
  • Ease of sharing of information - Google Docs, Sheets, etc\

Meeting Schedule

  • Every 2-3 weeks until we complete governance and infrastructure
  • Once a month going onwards