Baserock 10 is released
by Richard Maw
Baserock 10 is released
=======================
The [Baserock team], and [Codethink Limited] are proud to announce the
release of version 10 of the Baserock system.
What is new in this version?
============================
The focus for the Baserock 10 release was workflow. In addition,
non-user-facing improvements were made to the infrastructural parts of the
codebase.
Branch and merge
----------------
The branch and merge commands had a large refactoring effort spent on
them during the Baserock 10 cycle. This was focussed on improving the
core morphlib classes such that cleaner implementations of the branch
and merge functionality could be implemented and better tested.
This work is not yet complete, so there is a mix of old commands and
new commands being available. As such, if the new version has unexpected
issues, the old version is available as a fallback.
The init, branch, checkout, workspace and show-branch-root subcommands
were rewritten, and the new implementation has become the default. The
old commands are still available as old-init etc.
The work to refactor `morph edit` is incomplete, but present. The old
edit code remains the default, but new-edit is available for you to try
if you wish.
Deployment
----------
`morph deploy` now has a new syntax. We made it a clean cut because
very few people are actively using the old syntax and it was brittle,
complex, and did not lend itself to tracking in git in a structured and
pleasant manner
Deployment now involves a new morphology kind: `cluster`.
A more detailed description of how it works and an example are available
in `morph help deploy`, though it is a known issue with Morph's help
output that the example formatting is not cleanly preserved.
The example from the help is:
name: cluster-foo
kind: cluster
systems:
- morph: devel-system-x86_64-generic
deploy:
cluster-foo-x86_64-1:
type: kvm
location: kvm+ssh://user@host/x86_64-1/x86_64-1.img
HOSTNAME: cluster-foo-x86_64-1
DISK_SIZE: 4G
RAM_SIZE: 4G
VCPUS: 2
- morph: devel-system-armv7-highbank
deploy-defaults:
type: nfsboot
location: cluster-foo-nfsboot-server
deploy:
cluster-foo-armv7-1:
HOSTNAME: cluster-foo-armv7-1
cluster-foo-armv7-2:
HOSTNAME: cluster-foo-armv7-2
This is deployed with `morph deploy cluster-foo`.
It is possible to override values from the command line with commands
such as `morph deploy cluster-foo cluster-foo-x86_64-1.VCPUS=1`
While there seems to be more typing involved in deploying a single, one-off,
system; the new cluster morphology makes it much easier to keep track of
changes to deployments and also improves the experience of deploying multiple
systems at once.
Cluster morphologies will feature more heavily in the Baserock workflow in
coming releases.
Cross bootstrap
---------------
One of the aims of the Baserock project is to be Baserock all the way
down to the metal. To this end, we need to be able to bootstrap new
architectures from Baserock systems.
This work was done during the port to armv7b but, since it required unusual
changes to morph, the work was not merged immediately.
It has now been merged. The result of a cross bootstrap is a tarball,
which contains a cross-built environment and scripts to build the rest
of the system, so it can be run on the target device to provide a system
that is able to build other Baserock systems.
There are known issues with the generated cross-bootstrap scripts and they
shall be refined during the Baserock 11 cycle.
Devel systems
-------------
There is no longer a separate GENIVI devel system.
All development systems carry everything we have put into the GENIVI
related strata. This means that development systems are closer to being
self-hosted graphical environments with all the necessary sound, tools
etc to be useful to an engineer.
Other changes
=============
* Fixed trovectl to work with the sshkey command
* deploy extensions now abort on the first failure.
* Updated a few things
* Updated cmdtest for the yarn scenario test tool to use in Morph.
* Wrote yarns for morph
* Added a sanity check for building a stratum with no build dependencies.
* Added a sanity check in `morph checkout` to check there are any systems
- It's easy to accidentally checkout the baserock:baserock/morph.
* The openssh chunk now provides the ssh-copy-id command
* lzo now builds shared libraries
How do I get started?
=====================
You can find a [quick start] guide on the [Baserock wiki] and also
a short guide on [developing with Baserock] which follows on from
the quick start guide and shows you how to get to the point of proving
you can build Baserock within Baserock.
>From that point on, your imagination is the limit. You can follow our
development in the [Git repositories] we publish.
How do I get in contact?
========================
The Baserock project has an [IRC channel] and [mailing list] for
developers to gather and discuss anything associated with
Baserock. It is strongly recommended that you use the IRC and
lists to contact the team for anything associated with the public
development of Baserock. We also have a mailing list for
[announcements] which will be notified of any new releases or big
developments in Baserock.
If you manage to find a bug in Baserock, we'd like to hear
from you. You can find our [bug reporting guidelines] on the
Baserock wiki and we will do our best to help.
We hope you enjoy experimenting with Baserock and look forward to
hearing about any cool things you do with our work.
[Codethink limited]: http://www.codethink.co.uk/
[Baserock wiki]: http://wiki.baserock.org/
[Baserock team]: http://wiki.baserock.org/team/
[Git repositories]: http://git.baserock.org/cgi-bin/cgit.cgi
[IRC Channel]: http://wiki.baserock.org/irc-channel/
[mailing list]: http://wiki.baserock.org/mailinglist/
[announcements]: http://wiki.baserock.org/mailinglist/
[download page]: http://wiki.baserock.org/download/
[quick start]: http://wiki.baserock.org/quick-start/
[developing with Baserock]: http://wiki.baserock.org/devel-with/
[bug reporting guidelines]: http://wiki.baserock.org/bug-reporting/
[Baserock GENIVI Baseline]: http://projects.genivi.org/GENIVI_Baselines/genivi-baserock/
9 years, 9 months