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: community docs for Repository creation and project donation #816

Closed
wants to merge 66 commits into from
Closed
Show file tree
Hide file tree
Changes from 62 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
5331f72
Configuring release pipeline for non Nodejs/Nodejs
Dule-martins Aug 16, 2022
20a8342
Created a folder for documenting the new files(#903)
Dule-martins Aug 16, 2022
782ab42
docs: created folder for documenting new files(asynceAPI#903)[https:/…
Dule-martins Aug 16, 2022
b8e7e1a
docs: created folder for documenting new files[asyncAPI#903](https://…
Dule-martins Aug 16, 2022
2b56975
This is the documentation folder for the new asyncapi community section
Dule-martins Aug 16, 2022
e11ec45
Added README.md
Dule-martins Aug 17, 2022
de1fe04
Update docs/README.md
Dule-martins Aug 30, 2022
d006b39
Merge branch 'master' into master
quetzalliwrites Sep 1, 2022
ef5b05a
Merge branch 'asyncapi:master' into master
Dule-martins Sep 5, 2022
c267bb9
Generated docs content from a meeting with Lukasz
Dule-martins Sep 5, 2022
a0873a0
Merge branch 'master' of https://github.com/Dule-mart/community-1
Dule-martins Sep 5, 2022
efb51ec
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
c31564e
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
aea65f8
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
05df504
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
4a38742
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
f308f42
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
0e3dd8d
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
d3da9a9
Update docs/how-to-create-new-repository.md
Dule-martins Sep 6, 2022
6e2ca98
Removing screentshot and note
Dule-martins Sep 6, 2022
daf6700
Remove screen shot and note.
Dule-martins Sep 6, 2022
65dcbca
Add docs about Github Actions
Dule-martins Sep 9, 2022
68a1c02
Merge branch 'master' into master
quetzalliwrites Sep 21, 2022
949ec86
Update how-to-create-new-repository.md
Dule-martins Sep 21, 2022
fe566fc
Update how-to-create-new-repository.md
Dule-martins Sep 21, 2022
b8f37d4
Merge branch 'master' into master
derberg Sep 22, 2022
b34df35
Update docs/how-to-create-new-repository.md
Dule-martins Sep 28, 2022
22ae8aa
Update docs/how-to-create-new-repository.md
Dule-martins Sep 29, 2022
1de231a
added feedback
Dule-martins Sep 29, 2022
bc47697
Merge branch 'master' of https://github.com/Dule-mart/community-1
Dule-martins Sep 29, 2022
b7a5ffa
Updated the description of creating a repository
Dule-martins Sep 29, 2022
e12d233
Update docs on new repo creation
Dule-martins Sep 29, 2022
041392d
Merge branch 'master' into master
quetzalliwrites Sep 30, 2022
46384e8
Merge branch 'master' into master
quetzalliwrites Oct 4, 2022
dc4cf74
Re-wrote doc
quetzalliwrites Oct 4, 2022
49af752
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
d8435da
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
fc2e1cf
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
5dbc9f6
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
73ab860
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
2f50a55
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
824aa28
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
0f05345
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
8f93cfa
Update docs/how-to-create-new-repository.md
Dule-martins Oct 15, 2022
ace82fe
Merge branch 'master' into master
quetzalliwrites Oct 19, 2022
c4c8c48
Update docs/how-to-create-new-repository.md
Dule-martins Oct 26, 2022
ae65f5f
Merge branch 'master' into master
derberg Nov 7, 2022
a56f65c
Merge branch 'master' into master
Dule-martins Nov 8, 2022
e769fa0
Merge branch 'master' into master
quetzalliwrites Nov 9, 2022
2b7289d
Merge branch 'master' into master
quetzalliwrites Nov 15, 2022
e768e1b
Merge branch 'master' into master
quetzalliwrites Dec 14, 2022
edf9f96
Merge branch 'master' into master
quetzalliwrites Jan 18, 2023
7522337
Update docs/how-to-create-new-repository.md
Dule-martins Mar 16, 2023
daa273a
I made some changed to this files.
Dule-martins Mar 16, 2023
38b26f3
Merge branch 'master' of https://github.com/Dule-martins/community-1
Dule-martins Mar 16, 2023
7d2364d
Updates docs by creating new markdown files
Dule-martins Mar 16, 2023
f84617e
Update docs: moved donate-a-project
Dule-martins Mar 16, 2023
abb5aee
Merge branch 'master' of https://github.com/Dule-martins/community-1
Dule-martins Jul 20, 2023
404d6f6
Merge branch 'master' of https://github.com/Dule-martins/community-1
Dule-martins Jul 28, 2023
7312d1c
Merge branch 'master' of https://github.com/Dule-martins/community-1
Dule-martins Jul 28, 2023
e43de98
Merge branch 'master' into master
Dule-martins Aug 9, 2023
bd578cc
Merge branch 'asyncapi:master' into master
Dule-martins Aug 19, 2023
6dd67b9
Merge branch 'master' into master
derberg Sep 4, 2023
49b9bc8
Update docs/Getting-a-new-AsyncAPI-repository-approved.md
Dule-martins Sep 4, 2023
f0abbfd
Update docs/Create-Repository-as-an-admin.md
Dule-martins Sep 4, 2023
201a9f8
Merge branch 'master' into master
Dule-martins Sep 7, 2023
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
96 changes: 96 additions & 0 deletions docs/Create-Repository-as-an-admin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
Here are technical steps taken by organization admins while creating a repository for a project.

## GitHub Actions: CI/CD workflow
Here are the steps `@derberg` or `@fmvilas` take when running AsyncAPI `CI/CD` workflows:
1. Go to Asyncapi `/.github` repo.
2. Click `Action` to view all workflows.
3. Select `Global workflow to rule them all`.
4. Click `run workflow` and paste the name of the new repo. Running the workflow takes all the workflows from the AsyncAPI `.github` repo and runs those on the specified repo.

The AsyncAPI bot creates a set of `pull requests` for a given repo. You need to `merge` them as a repo's maintainer.

<Remember>
Manage project automation independently if you don't want to use the AsyncAPI global workflow.
</Remember>
<Remember>
Repos that shouldn't get CI/CD updates must do the following:
Open a `pull request` in the `.github` repo.
Edit the`global_replicator.yml` in the `.github` repo; add the newly created repo to every `Job` under **repos to ignore**. (Example: `repos_to_ignore: your-repo-name`)
</Remember>

## Configure repository
All AsyncAPI repositories start with the same settings and restrictions. It is up to maintainers of given repository to modify settings if these disrupt maintenance.

## Adjust repository options
1. Under your repository name, click the **Settings** tab.
2. Scroll down to the **Features** section and disable these options:
- Wikis
- Projects
- Discussions
You can always enable **Discussions** as an admin when you want.

3. Ensure the **Sponsorships** option is enabled.

3. Go to the **Merge button** section and _disable_ the following:
- Allow merge commits
- Allow rebase merging

4. Stay on the **Merge button** section and _enable_ the following:
**Allow squash merging** option. This option combines all commits before merging changes into the `master` branch.

5. Make sure the **Automatically delete head branches** option is enabled.

## SonarCloud scans
Integrate each AsyncAPI repository with `https://sonarcloud.io/organizations/asyncapi/projects` for automated quality and security scans.

Add your project to the list via: `https://sonarcloud.io/projects/create`.

<Remember>
Our `CI/CD workflows` fail if your repository has a `main branch` because we currently support only `master branch` in our projects.

Should you accidentally forget and create a repository with a `main branch`, remember to rename it to `master branch`.
</Remember>

## Branch protection rules
Branch protection must be added by whoever creates the repository.

Let's walk through the steps:
1. Under the **Setting** tab, click `branches`.
2. Change the branch name to `master`.
3. **Enable** all of the following settings under **Protect matching branch**:
- `Require a pull request before merging`
- `Request approvals`
- `Dismiss stale pull request approvals when new commits are pushed`
- `Require review from Code Owners`
- `Restrict who can dismiss pull request reviews` _(admin only)_
- `Require status check before merging` _(This status check runs Github action workflows before merging pull requests.)_ and select `Lint PR title` and pull request testing related workflows
- `Require branch to be up to date before merging`
- `Do not allow bypassing the above settings`
- `Restrict who can push to matching branches`

## Collaborators and teams
The AsyncAPI Initiative grants admin roles to project maintainers.

<Remember>
Don't forget to add the `[bots](https://github.com/orgs/asyncapi/teams/bots)` team as a maintainer to each project.
</Remember>

## Codeowners file
The Codeowners file contains the code owners' names; this includes both the admins and the `asyncapi-bot-eve`.

Checkout the following [`Codeowners file` example from the `/website` repository](https://github.com/asyncapi/website/blob/master/CODEOWNERS):
```
# This file provides an overview of code owners in this repository.

# Each line is a file pattern followed by one or more owners.
# The last matching pattern has the most precedence.
# For more details, read the following article on GitHub: https://help.github.com/articles/about-codeowners/.

# The default owners are automatically added as reviewers when you open a pull request unless different owners are specified in the file.
* @fmvilas @derberg @mcturco @akshatnema @magicmatatjahu @asyncapi-bot-eve

# All .md files
*.md @alequetzalli @asyncapi-bot-eve

README.md @alequetzalli @fmvilas @derberg @mcturco @akshatnema @magicmatatjahu @asyncapi-bot-eve
```
Dule-martins marked this conversation as resolved.
Show resolved Hide resolved
12 changes: 12 additions & 0 deletions docs/Getting-a-new-AsyncAPI-repository-approved.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Getting a new AsyncAPI repository approved
To donate existing project to AsyncAPI organization, or start a new project, follow the instruction below:
1. Visit [AsyncAPI Initiative Discussions](https://github.com/orgs/asyncapi/discussions).
2. Create a new discussion by clicking on `New discussion` and select the `Idea` category. Specify in the _title_ that you want to create a new repository. In the _description_, state the purpose of the new repository and why it should be part of the AsyncAPI organization. [Sample new discussion example.](https://github.com/orgs/asyncapi/discussions/300).
3. Start a discussion with community members to initialize a new project for AsyncAPI, discuss the project ideas, specify if you want to use AsyncAPI CI/CD workflows, and volunteer to become a maintainer for that project. (At least 2 code maintainers are needed to start.)
To learn more about asyncapi `CI/CD`, watch this [video](https://www.youtube.com/watch?v=DsQfmlc3Ubo)
4. The Technical Steering Committee (TSC) must approve the newly proposed repository. Make sure to tag them by adding `@asyncapi/tsc_members` at the end of the proposal description; this notifies all TSC members to vote on the proposed project.
5. If the TSC approves the new repository, then either `@derberg` or `@fmvilas` will take over creating the actual new repository. Next, they'll run AsyncAPI `CI/CD workflows`.
6. Invite new maintainers as repo admins.

To see how existing project is been donated to AsyncAPI, click [here](https://github.com/orgs/asyncapi/discussions/223)
[Here](https://github.com/orgs/asyncapi/discussions/300) is an example of starting a new project under AsyncAPI
Dule-martins marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## Community Documentation

The community documentation directory helps the community collaboratively maintain a collection of helpful community-related documentation. From becoming an AsyncAPI contributor to becoming a TSC member, and beyond.
The community documentation directory helps the community collaboratively maintain a collection of helpful community-related documentation. From becoming an AsyncAPI contributor to becoming a TSC member, and beyond.
Loading