54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
|
The easiest way to get started hacking on `rpm-ostree` is to
|
||
|
use the vagrant machine. This is also the set up used for
|
||
|
our integration tests.
|
||
|
|
||
|
One-time setup
|
||
|
==============
|
||
|
|
||
|
Starting the vagrant machine is as easy as:
|
||
|
|
||
|
```
|
||
|
host$ vagrant up
|
||
|
host$ vagrant ssh
|
||
|
```
|
||
|
|
||
|
The VM for now uses the official
|
||
|
[centos/atomic-host](https://atlas.hashicorp.com/centos/boxes/atomic-host)
|
||
|
box. However, because `rpm-ostree` is tightly coupled with
|
||
|
other projects such as `ostree` and `libhif`, the code in
|
||
|
`HEAD` may require a more recent version than available in
|
||
|
the latest official box.
|
||
|
|
||
|
For this reason, you may want to rebase the VM onto the
|
||
|
[CentOS Atomic Continuous](https://ci.centos.org/job/atomic-rdgo-centos7/)
|
||
|
stream, which will contain the latest `HEAD` versions of
|
||
|
these dependencies (normally within the hour). To rebase,
|
||
|
simply do:
|
||
|
|
||
|
```
|
||
|
vm$ sudo rpm-ostree rebase centos-atomic-continuous:centos-atomic-host/7/x86_64/devel/continuous
|
||
|
vm$ sudo systemctl reboot
|
||
|
```
|
||
|
|
||
|
If you need to test your code with custom `ostree` or
|
||
|
`libhif` builds, you have no choice for now other than
|
||
|
making your own tree (and yum repo for use by the build
|
||
|
container). We're hoping to improve this workflow soon.
|
||
|
|
||
|
Hacking
|
||
|
=======
|
||
|
|
||
|
The `make vmbuild` command will automatically sync the
|
||
|
current files to the VM, build `rpm-ostree` and install it
|
||
|
into a new deployment, and finally reboot the VM to use it.
|
||
|
|
||
|
For convenience, the `make vmshell` command does the same
|
||
|
but additionally places you in a shell, ready to test your
|
||
|
changes.
|
||
|
|
||
|
Testing
|
||
|
=======
|
||
|
|
||
|
The `make vmcheck` command performs the same task as `make
|
||
|
vmbuild`, but additionally starts the integration testsuite.
|