The Juju Ecosystem team at Canonical (joined remotely by community members) recently had a developer sprint in beautiful Dillon, Colorado to Get Things Done(™).
Here are the highlights:
Automated Charm Testing
Tim Van Steenburgh and Marco Ceppi made a ton of progress with automated charm testing, here’s the prelim state-of-the-world:
Jenkins Jobs Fired off: 22
This enabled us to dedicate hours of block time of getting as many of those red charms to green as possible. The priority for our team over the next few weeks will be fixing these charms, and of course, gating new charms via this method, as well as kicking back broken charms to personal namespaces.
Ben Saller helped out by prototyping “Dockerizing” charm testing so that developers can test their charms in a fully containerized way. This will help CI by giving us isolation, density, and reliability.
Charm Tests are now launched from review queue to help gating based on tests passing.
Thanks to Aaron Bentley for supporting our efforts here!
The Charmers (Marco Ceppi, Charles Butler, and Matt Bruzek) dedicated time to getting through reviews. The whole team spent time creating fixes for the automated test results mentioned above. We’re in great shape to driving this down and not ever letting it get out control again thanks to our new team review guidelines: http://review.juju.solutions/
The goal was to help submitters and reviews know the where they are at in a review, and next steps needed.
Here are the numbers:
- Reviews Performed: 189
- Commits: 228
- Charms Promulgated: 10
- Charms Unpromulgated: 7
- Lines of Code touched: 34109 (artificially high due to SVG icons, heh)
- Reviews Submitted: 84
- Energy Drinks: 80
Some new features:
- Users can now log in with Ubuntu SSO and see what reviews they have submitted, and reviewed
- Ability to query the review system and search/filter reviews based on several metrics (http://review.juju.solutions/search)
- Ability for charmers to fire off an automated test of a charm on demand right from the queue. When an MP is done against a charm, we’ll now automatically reply to the MP with a link to the test results. \o/
- You can now “lock” a review when you’re doing one so that the rest of the community can see when a review is claimed so we don’t duplicate work. (Essential for mass reviews!)
- Queues divided and separated to highlight priority items and items for different teams
- Improving the downloader/packaging story so it’s more reusable
- Cory Johns developed a pattern for charm helpers for CloudFoundry; the CF sub-team feels this will be a useful pattern for other charmers. They’re calling it the “charm services framework”, expect to hear more from them in the future.
- We were able to replicate the Juju/Rails Framework deployment of an application and compare doing the same thing on CF: https://plus.google.com/117270619435440230164/posts/gHgB6k5f7Fv
- Whit concentrated on tracking changes to Pivotal’s build procedures.
Charm Developer Workflow
This involves two things:
“The first 30 minutes of Juju”
This primarily involved finding and fixing issues with our user and developer workflow. This included doing some initial work on what we’re calling “Landing Pages”, which will be topic based landing pages for different places where people can use Juju, so for example, a “Big Data” page with specific solutions for that field. We expect to have these for a bunch of different fields of study.
We have identified the following 5 charms as “flagbearer””: Rails (in progress), elasticsearch, postgresql, meteor, and chamilo. We consider these charms to be excellent examples of quality, integration with other tools, and usage of charm tools. We will be modifying the documentation to highlight these charms as reference points. All these charms have tests now, though some might not have landed yet.
Better tools for Charm Authors:
Ben, Tim, and Whit have a prototype of a fully Dockerized developer environment that contains all of the local developer tools and all of the flagbearer charms. The intention is to also provide a fully bootstrapped local provider. The goal is “test anything in 30 seconds in a container”.
In addition to this, Adam Israel tackled some of our Vagrant development stories, that will allow us to provide better Vagrant developer workflow, thanks to Ben Howard and his team for helping us get these features in our boxes.
We expect both the Docker-based and Vagrant-based approaches to eventually converge. Having both now gives us a nice “spread” to cover developers on multiple operating systems with tools they’re familiar with.
Amir/Chuck worked on the following things:
- Upgrading the ELK stack for Trusty
- Planning out new Landing Pages focused on the Big Data story
- Bringing up existing Big Data (Hortonworks) Stack to Charm Store standards for Trusty, and getting those charms merged
- Pre-planning for next phase of Big Data Workloads (MapR, Apache distributions)
- General familiarity training with MAAS, OpenStack on OBs and NUCs.
- Very fast firehose drinking for new team members, Adam Israel, Randall Ross, and Kevin Monroe have joined the team.
- Special Thanks to Jose Antonio Rey, Sebas, and Josh Strobl, for joining us to help get reviews and fixes in the store and documentation.
- We have a new team blog at: http://juju-solutions.github.io/ (Beta, thanks Whit.)
- Most of the topics here had corresponding fixes/updates to the Juju documentation.