# Development report for 8 May 2017

The eighth weekly development report. Feel free to send PRs if you want to add to these reports (or correct them).

Welcome everyone, looking forward to your contributions and working with you. Please open issues on GitHub if you need help, or ask on #linuxkit in the [Docker community slack](https://community.docker.com/registrations/groups/4316).

## New regression testing repository

We added the [`linuxkit/rtf`](https://github.com/linuxkit/rtf) repo, containing regression testing code. When the tests are added, you will be able to do:
```
go get -u github.com/linuxkit/rtf
cd test
rtf -x run
LABELS: darwin, UNKNOWN, amd64, osx
ID: de502808-ac81-45fa-9368-bb03fd562cf2
[PASS    ] linuxkit.examples.minimal 14.45s
[PASS    ] linuxkit.examples.docker 90.24s
[PASS    ] linuxkit.examples.sshd 48.12s
[PASS    ] linuxkit.examples.redis 21.44s
[PASS    ] linuxkit.examples.swap 33.42s
[PASS    ] linuxkit.examples.exporter 30.40s
[SUMMARY ] LogDir: de502808-ac81-45fa-9368-bb03fd562cf2
[SUMMARY ] Version: UNKNOWN
[SUMMARY ] Passed: 5
[SUMMARY ] Failed: 1
[SUMMARY ] Cancelled: 0
[SUMMARY ] Skipped: 0
[SUMMARY ] Duration: 238.08s
```

## PRs merged

### Core

- The `linuxkit run` options were unified to fix inconsistencies for specifying `disk-size`, `disk` and `fw` [#1758](https://github.com/linuxkit/linuxkit/pull/1758) [#1732](https://github.com/linuxkit/linuxkit/pull/1732) @rneugeba @fntlnz].

### Kernel

- The kernel build Dockerfiles were simplified, debugging symbols were added to the image, and debug builds were fixed and pushed [#1757](https://github.com/linuxkit/linuxkit/pull/1757) [#1746](https://github.com/linuxkit/linuxkit/issues/1746) @rneugeba.
- `kernel-dev.tar` in the kernel build now has all the necessary headers and files to compile kernel modules against a specific kernel [#1765](https://github.com/linuxkit/linuxkit/pull/1765) [#1568](https://github.com/linuxkit/linuxkit/issues/1568) @rneugeba.
- The base kernels were updated to 4.4.66/4.9.26/4.10.14 [#1769](https://github.com/linuxkit/linuxkit/pull/1560) @rneugeba.

### Packages

- There was extensive simplification in how the base packages are built: a new Alpine base package, multi-stage builds, and Git sub-tree hashes. [#1772](https://github.com/linuxkit/linuxkit/pull/1772) @justincormack @rneugeba.
- The new [tools/alpine](tools/alpine/) base image is now the only place where network access is used in building, which takes us one step closes to fully deterministic builds [#1763](https://github.com/linuxkit/linuxkit/pull/1763) @justincormack.
- The Docker CE package was updated to sync it with official images and include tools for other filesystems such as `dm` and `btrfs` [#1754](https://github.com/linuxkit/linuxkit/pull/1754) @justincormack.

### Testing

- The `Makefile` has been enhanced to gather all the build artefacts into one directory [#1764](https://github.com/linuxkit/linuxkit/pull/1764) @dave-tucker.

### Issues

* There is interest in converting Compose files into LinuxKit blueprints, but no firm approach yet [#1690](https://github.com/linuxkit/linuxkit/issues/1690) @rneugeba @deitch @techninja1008.

* Kernel module autoloading doesn't work properly at the moment, so investigating if `udev` is needed [#1742](https://github.com/linuxkit/linuxkit/issues/1742) @rneugeba @justincormack.

* Kubernetes packaging continues to be improved by debugging how to connect to the cluster from different environments [#1767](https://github.com/linuxkit/linuxkit/issues/1767) @errordeveloper @mbruzek @rneugeba @ijc25 @justincormack.

* There is a proposal to add a `linuxkit push vmware` command to push to remote ESXi datastores [#1751](https://github.com/linuxkit/linuxkit/issues/1751) [#1710](https://github.com/linuxkit/linuxkit/issues/1710) @ajeetraina @justincormack.

* Baremetal support planned by adding iDRAC/iLOM media boot capabilities to `linuxkit push` [#1752](https://github.com/linuxkit/linuxkit/issues/1752) @justincormack @thebsdbox @rneugeba @pandrew @ajeetraina]).

* `linuxkit run` needs to be enhanced to handle power saving callbacks, and there is discussion about how to support this on all the targets [#1773](https://github.com/linuxkit/linuxkit/issues/1773) @rneugeba @justincormack.

* Currently a terminal is run on every tty, without access control; this needs to be imrpoved [#1771](https://github.com/linuxkit/linuxkit/issues/1771) @deitch @justincormack @rneugeba.


## Blogs

[Docker's LinuxKit](https://medium.com/contino-io/dockers-linuxkit-2c460769f522) by Jesse White


## Planned changes

Work is starting on rebasing the Docker Editions on the open source version of LinuxKit, rather than the internal version. This will involve adding detailed blueprints for the platforms, porting over missing pieces, and adding testing for each platform. Making multiple architecture support work well, starting with Arm64 is also a priority.

There is ongoing rework on the `moby` tool, making it more modular and suitable for other use cases outside LinuxKit. It will be soon be merged into the `moby/moby` repo.
