Skip to content

Commit

Permalink
Add words for 'Project Scope & Objectives' in the 'Web Site text' sec…
Browse files Browse the repository at this point in the history
…tion
  • Loading branch information
petefoth committed Sep 28, 2023
1 parent c251857 commit 5a043a4
Showing 1 changed file with 100 additions and 0 deletions.
100 changes: 100 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,106 @@ The [project issue tracker](https://github.com/lineageos4microg/docker-lineage-c
For ***any*** problems, with building, installing, or running LineageOS for MicroG, we recommend that you ask for help in [the XDA Forum thread](https://forum.xda-developers.com/t/lineageos-for-microg.3700997/) or in device specific [XDA forum threads](https://forum.xda-developers.com/). The LineageOS for MicroG forum thread is not maintained by us, but there are many knowlegdeable contributors there, who build and run the LineageOS for MicroG ROM on a wide variety of devices.


## LineageOS for microG: Project Scope & Objectives

As the website says, the LineageOS for microG project is a

> LineageOS unofficial fork with built-in microG gapps implementation
The prime objectives of the project are to:
- deliver regular builds of the project for all the phones and tablets[1] currently supported officially by LOS;
- create and maintain the source code, tools ,and computing resources needed:
- to make the builds;
- to make the builds available for download, for manual and OTA installation.

Another - less central - objective is to allow other projects and individuals to use our source code and tools (though not currently our computing resources) to make and maintain their own builds:
- of L4M, 'vanilla' LOS, and / or other LOS-based custom ROMs;
- for other devices, whether or not supported officially.

### Upstreams

The project has two main 'upstream` projects:
- LineageOS ([website](https://lineageos.org/) , [github repos](https://github.com/LineageOS))
- MicroG ([website](https://microg.org//) , [github repos](https://github.com/microg))

Like LineageOS, the project also uses 'TheMuppets` [github](https://github.com/TheMuppets/) and [gitlab](https://gitlab.com/the-muppets) repos as the source for device-specific vendor binary blobs.

The main work of the project is to integrate the upstream components and build them into the ROM images we make available.

### Project Github repositories

The project has two main public repositories on GitHub:
- [`docker-lineage-cicd`]( https://github.com/lineageos4microg/docker-lineage-cicd)
The Docker image used by the project to make the regular builds, along with a [`README.md`](https://github.com/lineageos4microg/docker-lineage-cicd#readme) explaining how it can be used. The Docker images is rebuilt and pushed to [DockerHub](https://hub.docker.com/r/lineageos4microg/docker-lineage-cicd/) automatically when changes are pushed to the `master` branch
- [`android_vendor_partner_gms` ](https://github.com/lineageos4microg/android_vendor_partner_gms)
The pre-built components from MicroG, along with makefiles for easy integration in the Android build system. The pre-built components are pulled automatically from the MicroG releases.

### Project deliverables

1. The device-specific ROM zip files.
2. Device-specific `-images.zip` files containing any `.img` files that are needed for installing or updating the ROM zip file (e.g. `boot.img`, `recovery.img`).
3. The Docker image used to make the builds, including the (limited) documentation in the `README.md`.

The ROM zips and other device-specific files are made available in sub-directories on [the download server](https://download.lineage.microg.org/)

The Docker image is pushed to [DockerHub](https://hub.docker.com/r/lineageos4microg/docker-lineage-cicd/)

### Project Scope

The following items are explicitly ***not*** within the scope of the project
- Changes to, or forks of, upstream components, except where necessary for the correct operation of the integrated components. At present, this means only [the signature spoofing patches](https://github.com/lineageos4microg/docker-lineage-cicd/tree/master/src/signature_spoofing_patches) that are needed for the correct operation of the MicroG software components (see Note 1)
- Maintaining, supporting or documenting the tools or binary files, needed for ***installation*** of our ROMs. This is within the scope of the LineageOS upstream, which either builds and makes available the necessary tools and files, or links to other projects (e.g. TWRP) which provide them

### Project Status

The project is currently in a fairly stable state:
- we are (mostly) achieving our objective of delivering monthly builds
- the only essential work that is ongoing is to
- monitor the delivery process, to fix any problems that may occur, and to make any changes that are needed to ensure that the problems do not recur
- to make any changes needed when upstreams make changes. In particular, when LineageOS introduces support for a new Android version and / or drops support for older Android versions

The project is therefore - in the opinion of the currently active maintainers - essentially 'feature complete' and in 'maintenance' mode. The only change that we believe might significantly improve the project is to support other classes of Android devices, specifically
- `Minimal` & `Android TV` devices (see Note 2)
- [`Treble-capable`](https://www.xda-developers.com/list-android-devices-project-treble-support/) devices which are not officially supported by LOS. [As has recently been suggested](https://github.com/lineageos4microg/docker-lineage-cicd/issues/462) building for the `lineage_gsi` target would make our builds available for and usable on these devices.


### Issue Reporting & Tracking

Our public github repos both have issue trackers, where any github user can create new issues. They are primarily intended for
- tracking problems with the components owned by the repos, i.e. the Docker image, and ***our integration of*** the microG components.
- asking questions about how to use the components
- suggesting improvements to those components e.g.
- ways in which the docker image could be changed to make the build process more efficient, or less error-prone
- how our limited documentation (primarily the `README.md`) could be improved

They are not intended for
- problems 'owned' by the upstream projects (see Note 3) e.g incorrect functionality, or requests for new or different functionality in
- apps which are 'built-in' to LineageOS
- microG components (unless the incorrect functionality is caused by our integration of those components)
- problems which are out of scope (see above)
- providing support for users of our ROMs (see below)
- requests for new features in our components (see Note 4). As mentioned above, we believe the project is 'feature complete,' and the project does not have the time and / or resources to expand its scope, even if we thought such expansion was desirable. We will consider any such feature requests (when / if we have the time to do so), but the answer is likely to be negative.

One area where we know improvements can be made is in showing the progress (or lack of progress) in addressing reported issues:
- currently an issue is either 'Open' or 'Closed'
- no indication of whether 'Open' issues will be fixed or not
- no visibility of the priority of open issues, or when or in what order they will be addressed
- no indication of whether 'Closed' issues were fixed or not before closure

Some gradual changes are in hand to address this

### User Support

The project and the currently active maintainers do not have the time or resources to provide 'official' support for users of our ROMs. Fortunately, support and 'self-help' is available from the user community, in particular in the [LineageOS for microG' XDA Forums thread](https://forum.xda-developers.com/t/lineageos-for-microg.3700997/).

Upstream projects have their own channels for supporting users.

### Notes
1. ***If*** such changes are needed, we will try to provide patches or Pull Requests to the upsteam components. We will only maintain our changes ourselves if the upstreams will not accept our changes
2. L4M ***does not*** currently support building for `Minimal` or `Android TV` devices, even when those devices are supported by LOS
3. This class of problem usually includes ***device-specific*** issues: we have no device-specific code, it all comes from upstream
4. Any new issues or feature requests are more likely to be received positively if they are accompanied by code changes (in patches or - preferred - in Pull Requests) to fix the issue or implement the change. However, such changes will not be accepted just ***because*** code changes are provided.


[docker-ubuntu]: https://docs.docker.com/install/linux/docker-ce/ubuntu/
[docker-debian]: https://docs.docker.com/install/linux/docker-ce/debian/
Expand Down

0 comments on commit 5a043a4

Please sign in to comment.