Skip to content

Commit

Permalink
wiki: Revamp main page (#36)
Browse files Browse the repository at this point in the history
* wiki: Rewrite Maintainership guidelines

Make it way more clearer and detailed

Signed-off-by: HeroBuxx <[email protected]>

* wiki: Revamp main page

Signed-off-by: HeroBuxx <[email protected]>

* wiki: Updated title case for `Code of Conduct`

---------

Signed-off-by: HeroBuxx <[email protected]>
Co-authored-by: neroices <[email protected]>
  • Loading branch information
herobuxx and neroices authored Oct 1, 2024
1 parent 4e6733c commit 7517cce
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 27 deletions.
2 changes: 1 addition & 1 deletion docs/development/maintainership/applying_maintainership.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
slug: /development/maintainership/apply
pagination_next: null
sidebar_position: 3
sidebar_position: 4
---
# Applying for Official Maintainership

Expand Down
41 changes: 31 additions & 10 deletions docs/development/maintainership/maintainers_coc.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,35 @@ slug: /development/maintainership/coc
sidebar_position: 2
title: "Code of Conduct"
---
# Maintainers Code Of Conduct
# Maintainers Code of Conduct

* **Be nice!** - No fighting or insults in the community.
* **Open code for devs** - Core devs and project managers need to see the code you used.
* **No package removal tools** - We keep the package list as is.
* **Don't change the ROM code** - Stick to what's there.
* **No extra apps** - We focus on the core Android experience.
* **No mods or extras** - Keep it simple!
* **Security** - Follow Android's security rules for stable releases.
* **List all device files clearly** - Make sure everything needed is there.
* **Explain what's changed** - Easy-to-understand changelogs for updates.
To foster a positive and collaborative community, we have established the following guidelines that all maintainers must adhere to. These rules define what maintainers are expected to do and refrain from doing to ensure the integrity and quality of the project.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).

## Maintainers' Responsibilities
The maintainers:

- **MUST** follow project technical guidelines, and maintainer requirement.
- **MUST** maintain a respectful and positive attitude within the community, refraining from engaging in arguments or insults.
- **MUST** allow core team members to inspect and review the source code they are working with.
- **MUST NOT** add or remove packages without a valid and justifiable reason.
- **MUST NOT** modify the core Halcyon source code without prior approval.
- **MUST NOT** include any modifications such as Audio Mods (e.g., Dolby, Dirac, ViperFX4Android) or third-party cameras (e.g., GCam) unless they are ported from the stock ROM of the device being maintained.
- **MUST** provide regular updates to the project, with a minimum frequency of one update per month.
- **MUST** actively participate in discussions regarding the project, especially when decisions affect the devices they maintain.
- **MUST** actively participate in project development, particularly in fixing broken code that related and miht causes ome isue/torubles on the device that being maintained.
- **MUST** thoroughly test new updates on their device(s) before submitting builds to ensure stability and functionality.
- **MUST** document any changes or additions made to the device trees, vendor files, or kernel, providing detailed commit messages to ensure transparency.
- **MUST** follow the project's standard build guidelines and not deviate from the agreed-upon setup without discussing with the core team.
- **MUST** ensure that all included features and modifications align with the project's core philosophy and objectives.
- **SHOULD** collaborate with other maintainers to share knowledge, troubleshoot issues, and help maintain the overall quality of the project.
- **MAY** propose new features, but they **MUST** be discussed with and approved by the core team before implementation.
- **MUST NOT** engage in any form of plagiarism or misrepresentation of work. All work must be original or properly attributed.
- **MUST** respect deadlines for major updates or releases, and notify the team promptly if they are unable to meet those deadlines.
- **MUST** ensure that all build files, device-specific configurations, and scripts are kept up to date with upstream changes.
- **MUST NOT** use official maintainer privileges for personal gain, such as advertising personal modifications as official Halcyon releases.
- **SHOULD** maintain clear communication with the team and the community about progress, roadblocks, or changes in their capacity to maintain a device.
- **MUST** promptly report any bugs or issues that cannot be resolved independently to the core team for assistance.

By adhering to these guidelines, maintainers help ensure the quality and sustainability of the Halcyon project.
12 changes: 2 additions & 10 deletions docs/development/maintainership/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 1
pagination_prev: null
---

# Maintainership Requirements
# Requirements
To become Halcyon Official Device Maintainers, you have to complete following requirements:

| **Requirement** | **Description** |
Expand All @@ -17,12 +17,4 @@ To become Halcyon Official Device Maintainers, you have to complete following re
| Hardware | All hardware features must be working; some exceptions will be considered. |
| Testing | Conduct thorough testing of all device fixes to ensure functionality and quality. |
| Updates | Deliver regular updates, with a minimum of two per month, to keep devices functioning optimally. |
| Troubleshooting | Able to troubleshoot and diagnose device issues by analyzing log data. |


#### Preferred Qualifications

| Qualification | Description |
|---|---|
| CI/CD Experience (Optional) | Experience with Jenkins for continuous integration and deployment (CI/CD) is a plus. |
| Pre-release Testing (Optional) | Experience building and testing unofficial software versions prior to release. |
| Troubleshooting | Able to troubleshoot and diagnose device issues by analyzing log data. |
54 changes: 54 additions & 0 deletions docs/development/maintainership/technical_guidlines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
slug: /development/maintainership/tech_guidelines
sidebar_position: 3
title: "Technical Guidelines"
---
# Technical Guidelines for Halcyon Maintainers

This page provides detailed technical guidelines for all maintainers to follow when building and maintaining Halcyon. These guidelines ensure consistency and high-quality builds across all supported devices.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).

## Build Environment

- **MUST** use the official Halcyon build environment configuration.
- **MUST NOT** use custom compilers or toolchains unless explicitly approved by the core team. Only the default Clang provided in the Halcyon source is allowed for building.
- **MUST** ensure that the build environment is properly set up, using the correct versions of required dependencies and tools.

## Device Configuration
- **MUST** maintain the device tree, vendor files, and kernel configuration according to upstream standards.
- **MUST** have synchronized vendor tree with defined proproetary files in the device tree.
- **MUST** ensure changes to the device configuration are properly tested before submitting builds.
- **MUST** keep all files up to date with the latest changes from the core Halcyon source.
- **MUST NOT** add unsupported or unapproved features that deviate from Halcyon’s philosophy.

## Ported Features from Stock ROM
Halcyon allows the inclusion of certain ported features from the stock ROM of a device, with some restrictions to ensure consistency, avoid duplication, and maintain the clean, stock-like experience of the ROM.

### OEM Camera Apps
- **MUST** be ported exclusively from the stock ROM of the device being maintained. Porting features from other devices that do not natively support them (e.g., Leica MIUI Camera on a device without Leica lenses) is NOT allowed.
- **MUST** function correctly on the device and be thoroughly tested for stability.
- **MUST NOT** introduce duplicate apps that already exist in Halcyon. For example, if the OEM Camera requires a gallery app (e.g., OnePlus Camera requiring OnePlus Gallery) and this creates a duplicate of an existing app in Halcyon (such as Google Photos), the inclusion of the OEM Camera and its dependencies **SHOULD** be restricted or rejected.
- **SHOULD** integrate smoothly with the system without conflicting with core Halcyon features or existing apps.

### Audio Mods (Dolby, Dirac, etc.)
- **MUST** be ported from the stock ROM of the device being maintained.
- **MUST** be thoroughly tested to ensure they work well with the device’s audio hardware.
- **MUST NOT** interfere with or degrade the performance of other system audio features.

### Additional Restrictions
- **MUST NOT** include any other third-party mods that are not from the stock ROM or are not approved by the core team.
- **MUST** avoid adding features that deviate from Halcyon’s clean, stock-like user experience, unless approved by the core team.
- **MUST** prioritize the stability and performance of the system when deciding to add or remove any ported feature.

## Best Practices for Building
- **MUST** ensure that all builds are reproducible by following standard Halcyon build instructions.
- **MUST** verify the stability and functionality of the build on the device before submitting it for release.
- **MUST** document any changes, including new features, bug fixes, or optimizations, in commit messages or change logs.
- **MUST** follow any specific instructions from the core team regarding upcoming changes or major updates.

## Release Guidelines

- **MUST** only submit builds that meet Halcyon’s quality standards.
- **MUST** communicate with the core team about any issues or blockers during the build process.
- **MUST** follow the Halcyon release schedule and provide timely updates to the community.
32 changes: 26 additions & 6 deletions docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,36 @@ slug: /
sidebar_position: 0
pagination_next: null
pagination_prev: null
hide_table_of_contents: true
title: "Quickstart"
---

# Welcome to Halcyon Wiki!

Halcyon is a simple yet powerful AOSP Based Custom ROM. Halcyon designed to be Unique, minimalist, and simple.
Welcome to the official documentation page for Halcyon, a simple yet powerful AOSP-based custom ROM. Halcyon is designed to be unique, minimalist, and streamlined for optimal performance.

## For User
- [Supported device list](devices)

## For Developer
- [Building Halcyon](development/building/downloading_source)
- [Official Maintainership](development/maintainership/apply)
## Contribute

This wiki is powered by [Docusaurus](https://docusaurus.io/), and contributions are welcome! Take a look at our source code on GitHub:
[Halcyon Wiki Source Code](https://github.com/halcyonproject/wiki).


<div style={{ display: 'flex', justifyContent: 'space-between' }}>

<div style={{ width: '48%', padding: '10px' }}>
<h2>For Users</h2>
<ul>
<li><a href="/devices">Supported Devices</a></li>
</ul>
</div>

<div style={{ width: '48%', padding: '10px' }}>
<h2>For Developers</h2>
<ul>
<li><a href="/development/building/downloading_source">Building Halcyon</a></li>
<li><a href="/development/maintainership/apply">Official Maintainership</a></li>
</ul>
</div>

</div>

0 comments on commit 7517cce

Please sign in to comment.