Hosting and Distribution of Linaro Builds
This topic will focus on building and distributing Linaro Android builds.
Topics:
1. Binary and source distribution
2. Source and binary overlays (proprietary components and blobs from TI, Samsung, etc)
3. License click-through
4. Build and distribution location or method (host images and/or support on-demand image builds)
5. Release tagging and naming
6. Benchmark distribution and hosting
7. Release notes
8. Easy communication of build differences
9. Cloud based incremental builds
The Android platform team is aiming for releases every month.
See https:/
Possible Action Items from the discussion:
1. Mirror the binaries/source to snapshot and releases.linaro.
1.1 Create a "make this build a release" feature.
1.2 Create stable links for each build.
1.3 Modify the manifest to list the specific commit id of a Linaro hosted git that can be used to recreate the build.
1.4 Create tarball snapshots.
2. Check each build for legally acceptable code as part of the continuous integration loop.
2.1 Investigate the use of www.spdx.org from <email address hidden> to track licenses.
2.2 Add all legal meta info to the build.
3. Review the appropriateness of source overlays.
3.1 Create a way to facilitate source overlays pending review.
4. Create a way to facilitate binary overlays (copying binary blobs to media) from vendor's websites.
5. Implement click-through licenses for all proprietary components through license display or through a key based mechanism.
6. Tag and name each release.
7. Distribute benchmarks and benchmark results.
8. Generate release notes for each release.
9. Create a way to easily communicate source differences between builds.
10. Create a cloud-based incremental build mechanism that allows cloning and hacking on released builds - in the cloud.
11. Promote the build site.
-Zach
Session notes: http://
Blueprint information
- Status:
- Not started
- Approver:
- Zach Pfeffer
- Priority:
- Essential
- Drafter:
- Zach Pfeffer
- Direction:
- Needs approval
- Assignee:
- Zach Pfeffer
- Definition:
- New
- Series goal:
- Accepted for 2011q2
- Implementation:
- Unknown
- Milestone target:
- connect-q2.11
- Started by
- Completed by
Whiteboard
[zpfeffer]
Talk about hosting Android builds on snapshots.
[zpfeffer]
Some user stories (As a <role> I want <to complete some task> so that <the value it brings>)?
[jeremychang May 20, 2011]: As the user and validation tool, I want the android dailybuild image can be host on snapshots.
Overview:
The overall goal of this blueprint is to improve hosting and distribution of Linaro Android builds. The general themes are:
1. Make the build system more flexible
2. Make old build recreation possible (for bug triage)
3. Tighten up software licensing
4. Increase documentation
5. Enable better and easier local building
6. Communicate benchmarks and test results.
Linaro has an opportunity to really shine here. Most community distributions simply throw a Wiki page together with build instructions. Linaro can provide first-class build support and hosting to enable people to use our builds effectively.
User Stories
-------------------
Supporting: https:/
TR - P1.1, Android LEB, Essential, Provide a Linaro optimised build of Android, Android
-------
An an Android developer I would like an LEB
Implement click-through licenses for all proprietary components through license display or through a key based mechanism (long task - split out): TODO
As an Android developer I would like a fully enabled LEB on Panda
linaro-
As an Android developer I would like a fully enabled LEB on Snowball
linaro-
As an Android release engineer I would like to easily mark a build for release so that users can easily find it and be able to refer to the release location in the future.
linaro-
Create a 'make this build a release' feature for https:/
Create stable links for each build: TODO
Mirror releases to http://
Create a snapshot manifest that explicitly lists the commit ids of each head for local build duplication: TODO
Tag and record the tag for each build release: TODO
Distribute benchmark/test results with each build: TODO
As an Android developer I would like a place to download the latest archive and all previous archives.
linaro-
Mirror daily builds to http://
As an Android developer I would like to be able to easily work with an LEB locally so I can easily contribute.
linaro-
Create monthly releases that contain all the builds we create, all the tools used to create those builds, release notes about them and instructions for building locally: TODO
Create a script for people to sync and build Linaro Android builds locally: TODO
Automate local build test validation (long task - split out): TODO
linaro-
Write, test and publish steps to recreate the generic Android build: TODO
Write, and publish with each build, release notes for the generic Android build: TODO
linaro-
Write, test and publish steps to recreate the Linaro hosted Pandroid build: TODO
Write, and publish with each build, release notes for the Linaro hosted Pandroid build: TODO
linaro-
Write, test and publish steps to recreate the Linaro hosted Panda-LEB build: TODO
Write, and publish with each build, release notes for the Linaro hosted Panda-LEB build: TODO
linaro-
Write, test and publish steps to recreate the Linaro hosted Snowball-LEB build: TODO
Write, and publish with each build, release notes for the Linaro hosted Snowball-LEB build: TODO
As a lawyer I would like to know what licenses all the components of a distribution are under so that I can ensure that Linaro's build are legal to distrubute.
Publish SPDX licensing info with builds: TODO
linaro-
Write or generate www.spdx.org compliant license spread sheets for Panda-LEB build (long task - split out): TODO
linaro-
Write or generate www.spdx.org compliant license spread sheets for Android generic build (long task - will split out): TODO
As a integration engineer I would like to be able to easily find the difference between two Android trees so that I can find implementations that can be consolidated.
linaro-
Write a tool to generate and communicate differences between two Android trees (long task - split out): TODO
TR - P1.2, Android Toolchain packages, High, Provide Linaro Toolchain and Platform code ready for consumption by android product builders, Android
-------
As an Android developer I would like to be able to integrate proprietary components into a Linaro build to enable features that I may have a license for but Linaro does not.
Document and/or implement tools to enable binary overlays (long task - split out): TODO
Document and/or implement tools to enable source overlays (long task - split out): TODO
TR - Need one, requirement fulfills: P1, Linaro for product builders and innovators, focus on making Linaro Evaluation Builds and developer images a quick starting point for product builders that want full member board enablement as well as Linaro improvements in one shot.
-------
As an Android engineer I would like to rebuild components in the cloud to work with and test builds remotely.
linaro-
Modify the build system to retain build products: TODO
Implement build system rebuild: TODO
Open cloud builds up for browsing and modification: TODO
TR - Need one, marketing related
-------
linaro-
Start working our build system into IRC conversations on #android, #android-dev and the android-platfrom mailing lists: TODO
Post out benchmark results to various websites (slashdot, ars technica, toms hardware): TODO
TR - Need one about benchmarking LEBs and promoting Linaro. We need to define a TR here that says, support external build hosting to make benchmarking external builds easiy and promotes linaro's build infrastructure.
-------
As an Android developer I would like to use the Linaro build system to create non-linaro builds so that I can easily work with all types of builds.
linaro-
Extend build system to skip tarball creation: TODO
Enable users to download the out directory directly: TODO
Mirror all components of a released build on a Linaro server: TODO
Work Items
Dependency tree
* Blueprints in grey have been implemented.