Skip to content

Commit

Permalink
Documentation: Improve contribute section
Browse files Browse the repository at this point in the history
  • Loading branch information
igorpecovnik committed Oct 20, 2024
1 parent 8196d33 commit 99c9454
Show file tree
Hide file tree
Showing 6 changed files with 127 additions and 164 deletions.
25 changes: 13 additions & 12 deletions docs/Process_CI.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
# Build actions for developers and maintainers
# Automation for developers and maintainers

**Note**: Add ideas for process improvements as comments to the [Jira ticket](https://armbian.atlassian.net/browse/AR-2429).
Core automation for generating images for release are held at <https://github.com/armbian/os>

Manual executing permissions are tied to [release manager](https://github.com/orgs/armbian/teams/release-manager) role within Armbian organization. Do you [want to help and take this role](https://calendly.com/armbian/office-hours)?

## Prepare build lists (anyone)
## Prepare build lists

[https://github.com/armbian/os](https://github.com/armbian/os)

### Recommended images

Recommended images on download pages
![Standard support images](images/standard-support-images.png)

are defined via regular expression mapping file `exposed.map` :
Recommended images on download pages are defined via regular expression mapping file `exposed.map`:

Example:

```
bananapim7/archive/Armbian_[0-9].*Bananapim7_noble_vendor_[0-9]*.[0-9]*.[0-9]*_gnome-kisak_desktop.img.xz
bananapim7/archive/Armbian_[0-9].*Bananapim7_bookworm_vendor_[0-9]*.[0-9]*.[0-9]*_minimal.img.xz
```

![Standard support images](images/standard-support-images.png)

### Build templates

They have definitions on what kind of images we want to build - for section or for one specific board:

```
``` yaml
userpatches/targets-release-apps.template
userpatches/targets-release-community-maintained.template
userpatches/targets-release-nightly.template
Expand All @@ -38,7 +36,7 @@ From those templates we are [autogenerating](https://github.com/armbian/os/blob/

Autogeneration is excluded for boards that are on blacklists:

```
``` yaml
userpatches/targets-automation.blacklist
userpatches/targets-automation-nightly.blacklist
```
Expand All @@ -59,7 +57,10 @@ Example:
khadas-edge2,legacy:vendor:,ENABLE_EXTENSIONS="image-output-oowow,v4l2loopback-dkms,mesa-vpu"
```

## Prepare Standard Support images for release (release manager)
## Prepare Standard Support images for release

???+ Info
Manual executing permissions are tied to [release manager role](/Process_Contribute/#release-manager).

[![Build Standard Support Images](https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml/badge.svg)](https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml)

Expand Down
60 changes: 48 additions & 12 deletions docs/Process_Contribute.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Collaborate on the project

## How?
## Overview

1. [Fork](https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo) the project.
1. Make one or more well commented and clean commits to the repository.
Expand All @@ -10,24 +10,60 @@ If it is a new feature request, do not start the coding first. Remember to [open

If you are struggling, check [WEB](https://www.exchangecore.com/blog/contributing-concrete5-github) or [CLI](https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github) step-by-step guide on contributing.

## Where are the sources?
## Source code

Build script:
<https://github.com/armbian>

[https://github.com/armbian/build](https://github.com/armbian/build)
## Adding a new board?

Documentation:
There are no detailed instructions on how to add a new board or even a whole new board family to the build script yet. However there are a few commits / pull requests that give clues how to achieve that like

[https://github.com/armbian/documentation](https://github.com/armbian/documentation)
- [https://github.com/armbian/build/pull/3176/files](https://github.com/armbian/build/pull/3176/files)
- [https://github.com/armbian/build/pull/3138/files](https://github.com/armbian/build/pull/3138/files)

Armbian-config tool:
## Board maintainer

[https://github.com/armbian/config](https://github.com/armbian/config)
If you are interested in being a maintainer please review [Board Support Rules](/User-Guide_Board-Support-Rules/). Then [apply here](https://forum.armbian.com/staffapplications/application/8-single-board-computer-maintainer/) and wait for acceptance. Once accepted you will be added to our infrastruture. For this reason we need [additional information](https://www.armbian.com/maintainer-registry/) to complete your registration process.

## Help with donations
!!! question "Requirements?"

If you find our project useful, then we’d really appreciate it if you’d consider contributing to the project however you can. Donating is the easiest way to help us – you can use PayPal and Bitcoin or you can buy us something from our Amazon.de wish list.
- You must have access to the hardware you applied to maintain
- You must have a Github ID which should be listed in the documentation
- You must have a forums account
- You must have an Jira account and keep track of issues filed for your board
- You must make sure [Armbian management](https://www.armbian.com/maintainer-registry/) has been informed of all of the above IDs for our documentation
- You should know Armbian basics like how to get an Armbian image run on your hardware and do basic debugging, ideally via serial console
- Knowledge in development, writing code and so on is optional but welcome

[https://www.armbian.com/donate/](https://www.armbian.com/donate/)
### Expectations

Thanks!
Maintainers must not necessarily be persons with development experience. They act as a intersection between end-users and the development team and serve the developers in best-effort manner. They are encouraged to answer basic/simple user questions (if possible, also best effort) without having to bother the development team. They are allowed to record bugs but are not allowed to escalate bugs. Team leaders do.

Take note that it is still up to development team's discretion what gets attention since Armbian has to plan carefully how to spend its very limited resources.

- You must participate in release process. Ideally you attend meetings related to releases. On that occasion you are given the chance to point out critical issues with your board.
- You must sign-off that device has been tested, is stable, and ready for release during release process. This basically means you test images that are getting prepared for release <https://rsync.armbian.com/incoming/>

!!! question "What are we looking for?"

- does the board boot to both CLI and Desktop?
- is the desktop usable?
- does USB work? (at all or partially)
- other things such as wireless, audio

If something does not work, this is fine and normal. The important part is that it is documented and we get notified about the issues. Known problems should be placed into the Jira ticket and link placed to the board download page. While not required, you should have a build environment setup so you can build images with the most recent images and test them right away. Your feedback, either positive or negative, is very welcome. You are free to add comments to every commit and pull request.

Ideally you have multiple microSD cards laying around to test regular updates on current releases and nightly without having to re-flash the same card every time to switch between branches.

Alternatively you can use auto-built images - they are placed at the ever end of each board download pages under "Rolling releases".

- You must provide "best effort" support in the forum. Do not let that wording intimidate you. This is not a complicated task. Regarding forums this can include things like answering obvious questions (for example by pointing to our documentation, ideally directly to the solution page), let the questioner know that additional information is needed for further debugging (e.g. request "armbianmonitor -u" output) or for upgrade issues, ask if they can recreate the issue with a fresh untouched image from: <https://www.armbian.com/download/>

- You must provide "best effort" support in Jira. Review submitted issues for you board made by Armbian's contributors

## Release manager

This role has additional permimssion that allowes preparartion of images for release.

Release managers:
<https://github.com/orgs/armbian/teams/release-manager>
101 changes: 0 additions & 101 deletions docs/Process_Merge-Policy.md

This file was deleted.

38 changes: 33 additions & 5 deletions docs/Release_Board-Maintainers.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,40 @@

## How to become a maintainer?

If you are interested in being a maintainer please review our documentation before applying: [Board Maintainers Procedures and Guidelines](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/)
If you are interested in being a maintainer please review [Board Support Rules](/User-Guide_Board-Support-Rules/). Then [apply here](https://forum.armbian.com/staffapplications/application/8-single-board-computer-maintainer/) and wait for acceptance. Once accepted you will be added to our infrastruture. For this reason we need [additional information](https://www.armbian.com/maintainer-registry/) to complete your registration process.

Then, you can [apply here](https://forum.armbian.com/staffapplications/application/8-single-board-computer-maintainer/) and wait for acceptance. Once accepted you will be added to our various systems and asked to fill out the [Maintainer Registry Form](https://www.armbian.com/maintainer-registry/) to complete your registration process.
!!! question "Requirements?"

## Current Maintainers
- You must have access to the hardware you applied to maintain
- You must have a Github ID which should be listed in the documentation
- You must have a forums account
- You must have an Jira account and keep track of issues filed for your board
- You must make sure [Armbian management](https://www.armbian.com/maintainer-registry/) has been informed of all of the above IDs for our documentation
- You should know Armbian basics like how to get an Armbian image run on your hardware and do basic debugging, ideally via serial console
- Knowledge in development, writing code and so on is optional but welcome

https://www.armbian.com/authors/
## Expectations

The authoritative list of `board.conf` can be found [here](https://github.com/armbian/build/tree/main/config/boards).
Maintainers must not necessarily be persons with development experience. They act as a intersection between end-users and the development team and serve the developers in best-effort manner. They are encouraged to answer basic/simple user questions (if possible, also best effort) without having to bother the development team. They are allowed to record bugs but are not allowed to escalate bugs. Team leaders do.

Take note that it is still up to development team's discretion what gets attention since Armbian has to plan carefully how to spend its very limited resources.

- You must participate in release process. Ideally you attend meetings related to releases. On that occasion you are given the chance to point out critical issues with your board.
- You must sign-off that device has been tested, is stable, and ready for release during release process. This basically means you test images that are getting prepared for release <https://rsync.armbian.com/incoming/>

!!! question "What are we looking for?"

- does the board boot to both CLI and Desktop?
- is the desktop usable?
- does USB work? (at all or partially)
- other things such as wireless, audio

If something does not work, this is fine and normal. The important part is that it is documented and we get notified about the issues. Known problems should be placed into the Jira ticket and link placed to the board download page. While not required, you should have a build environment setup so you can build images with the most recent images and test them right away. Your feedback, either positive or negative, is very welcome. You are free to add comments to every commit and pull request.

Ideally you have multiple microSD cards laying around to test regular updates on current releases and nightly without having to re-flash the same card every time to switch between branches.

Alternatively you can use auto-built images - they are placed at the ever end of each board download pages under "Rolling releases".

- You must provide "best effort" support in the forum. Do not let that wording intimidate you. This is not a complicated task. Regarding forums this can include things like answering obvious questions (for example by pointing to our documentation, ideally directly to the solution page), let the questioner know that additional information is needed for further debugging (e.g. request "armbianmonitor -u" output) or for upgrade issues, ask if they can recreate the issue with a fresh untouched image from: <https://www.armbian.com/download/>

- You must provide "best effort" support in Jira. Review submitted issues for you board made by Armbian's contributors
Loading

0 comments on commit 99c9454

Please sign in to comment.