Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add champions concept #638

Merged
merged 18 commits into from
Feb 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 36 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,39 @@

# The default owners are automatically added as reviewers when you open a pull request unless different owners are specified in the file.

* @magicmatatjahu @jonaslagoni @github-actions[bot]
# Core Champions that does a little of everything
* @magicmatatjahu @jonaslagoni


# Input Champions for AsyncAPI input
*/processors/AsyncAPIInputProcessor*.ts

# Input Champions for OpenAPI input
*/processors/OpenAPIInputProcessor*.ts
*/processors/SwaggerInputProcessor*.ts

# Input Champions for JSON Schema input
*/processors/JsonSchemaInputProcessor*.ts

# Language Champions for TypeScript and it's presets
*/generators/typescript/
*/generators/typescript/preset/CommonPreset*.ts

# Language Champions for JavaScript and it's presets
*/generators/javascript
*/generators/javascript/preset/CommonPreset*.ts

# Language Champions for Go and it's presets
*/generators/go

# Language Champions for Java and it's presets
*/generators/java
*/generators/java/preset/CommonPreset*.ts
*/generators/java/preset/ConstraintsPreset*.ts
*/generators/java/preset/DescriptioPreset*.ts
*/generators/java/preset/JacksonPreset*.ts

# Language Champions for C# and it's presets
*/generators/csharp
*/generators/csharp/preset/CommonPreset*.ts
*/generators/csharp/preset/JsonSerializerPreset*.ts
21 changes: 16 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,19 @@
<em><b>Modelina</b></em>
</h5>
<p align="center">
<em>Modelina is the official AsyncAPI SDK used to generate different data models (i.e. <a href="#outputs">Java/TypeScript classes, Go Structs, etc</a>) for <a href="#inputs">AsyncAPI documents, among other supported inputs</a>.</em>
<em>Modelina is the official AsyncAPI SDK to generate data models (i.e. <a href="#outputs">Java/TypeScript classes, Go Structs, etc</a>) from <a href="#inputs">AsyncAPI documents, among other supported inputs</a>.</em>
</p>


[![blackbox pipeline status](https://img.shields.io/github/workflow/status/asyncapi/modelina/Blackbox%20testing%20(Stay%20Awhile%20and%20Listen)?label=blackbox%20testing)](https://github.com/asyncapi/modelina/actions/workflows/blackbox-testing.yml?query=branch%3Amaster++)
[![Coverage Status](https://coveralls.io/repos/github/asyncapi/modelina/badge.svg?branch=master)](https://coveralls.io/github/asyncapi/modelina?branch=master)
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
![Maintenance score](https://img.shields.io/npms-io/maintenance-score/@asyncapi/modelina)
[![Npm latest version](https://img.shields.io/npm/v/@asyncapi/modelina)](https://www.npmjs.com/package/@asyncapi/modelina)
[![License](https://img.shields.io/github/license/asyncapi/modelina)](https://github.com/asyncapi/modelina/blob/master/LICENSE)
[![last commit](https://img.shields.io/github/last-commit/asyncapi/modelina)](https://github.com/asyncapi/modelina/commits/master)
[![Discussions](https://img.shields.io/github/discussions/asyncapi/modelina)](https://github.com/asyncapi/modelina/discussions)
[![Playground](https://img.shields.io/website?label=playground&url=https%3A%2F%2Fwww.asyncapi.com%2Ftools%2Fmodelina)](https://www.asyncapi.com/tools/modelina) <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

Expand All @@ -25,6 +33,7 @@ This package is still under development and has not reached version 1.0.0 yet. T

<!-- toc -->

- [:loudspeaker: ATTENTION:](#loudspeaker-attention)
- [Requirements](#requirements)
- [Installation](#installation)
- [Features](#features)
Expand All @@ -33,7 +42,7 @@ This package is still under development and has not reached version 1.0.0 yet. T
- [Examples](#examples)
- [Development](#development)
- [Contributing](#contributing)
- [Contributors ✨](#contributors-%E2%9C%A8)
- [Contributors ✨](#contributors-)

<!-- tocstop -->

Expand Down Expand Up @@ -113,10 +122,12 @@ To see the complete feature list for each language, please click the individual
- [Reach version 1.0](https://github.com/asyncapi/modelina/milestone/3)

## Documentation
The documentation for this library can all be found under the documentation [README](./docs/README.md).
Documentation for this library can be found under the [documentation folder](./docs/README.md).

## Examples
We have gathered all the examples, in a separate folder to ensure consistency, they can be found under the [example folder](./examples).
Do you need to know how to use the library in certain scenarios?

We have gathered all the examples in a separate folder and they can be found under the [examples folder](./examples).

## Development
To setup your development environment please read the [development](./docs/development.md) document.
Expand Down
32 changes: 32 additions & 0 deletions docs/champions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

<p align="center">
<img src="https://i.giphy.com/media/3ohs4Az5xSJj0RYrss/giphy.webp" width="300" height="300">
</p>

# Champions
As Modelina grows, more and more people would like to become maintainers, each with varying degree of time to give.

In order to have something for everyone, we introduce the concept of `champions` where we split up the areas of responsibility where best possible.

## Areas of responsibility
These are the areas that we mainly focus on getting having champions and where you can help out. However, keep in mind it is not limited to any of these.

### Core champions
There is not one area that interest you, but rather the library as a whole, where you want to maintain and push forward the project and it's vision.

### Doc champions
Doc champions are those who focus on the documentation and how users best go from 0 to 100 in order to use Modelina. Maybe you like to write technical documentation, or you love making tutorials, this would be for you!

### Input champions
Input champions are those who take charge of the input processing, it can either be a specific input processor (such as JSON Schema or AsyncAPI) or multiple. They maintain the process of converting the input to the internal model which Modelina can use to generate outputs to.

### Language champions
Language champions are those who maintain of a specific language output, it can either be a specific generator (such as TypeScript or Java) or or multiple. They maintain the process of converting the internal model into usable data models in their respective language.

## Becoming a champion
There can be many ways to become a champion, but what they all have in common is regularly contributing to the project. There is no limit to who or how many can become champions of a specific area and you can also become champion of multiple areas.

### How to get started
The first step is always to get to know the tool, explore how and what it does. If you like to make your own side projects, try using Modelina and as you find issues, raise them and maybe even solve them. You can also look for [good first issues](https://github.com/asyncapi/modelina/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22), that are well described issues tailored for new contributors.

As you become more and more familiar with the project and continue to contribute, naturally you become a champion, like two rivers merging.
2 changes: 1 addition & 1 deletion docs/contributing.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to Modelina

First of all, thank you 🙇🏾‍♀️ for considering contributing to the Modelina SDK library; we can use all the help we can get!
First of all, thank you 🙇🏾‍♀️ for considering contributing to Modelina; it needs all the help it can get!

This contribution guide is an extension to the core contributing guide that can be found [here](https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md). Please make sure you go through that beforehand. 🙂👍🏽

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"sdk"
],
"author": {
"name": "The AsyncAPI maintainers"
"name": "The Modelina codeowners and contributors"
jonaslagoni marked this conversation as resolved.
Show resolved Hide resolved
},
"main": "lib/cjs/index.js",
"module": "lib/esm/index.js",
Expand Down