NICOLE Create a pathway so that people understand the flow of the talk while it’s in progress
Robbie next slide
ROBBIE As Cam mentioned, we have a Sildo poll running to gauge how comfortable you are will SS4 so far… if you haven’t already then jump onto Slido and answer this question now as we’ll be showing the results in 2 slides time
Before we dive into where modules and recipes could go in the future, let’s have a quick look at the history of SilverStripe CMS, and how we’ve arrived at SilverStripe 4
Quite a rich "in your face" interface, with pretty much every option spread around the outside of the screen.
Cleaner more modern look
Features better organised
Modular approach taken to the code
Mobile first, responsive, accessibility focussed
Even more modular meaning (ROBBIE?)
So that SilverStripe 4 can be widely used, modules need to be upgraded Upgrading modules can often be a thankless task, ideally the features will be exactly the same afterall your effort
Quick transition to next slide
Continual improvement over perfection
As Danae mentioned in her talk earlier….
Sticking to semver as best we can
Example from a code coverage report in the versioned module
Red lines indicate code that doesn't have automated unit tests
Adding tests for this code ensures it won't be changed accidentally in future
Talk about the process of contributing e.g. commit > PR > CI > merge > CI > release
Nicole next slide
NICOLE earlier today Paul gave you a high level overview of what CWP or the Common Web Platform is, so I won’t dwell on that too much but I thought it was important to give some context for how large this has grown and in turn the relationship it has to the wider open source community
NICOLE: There’s now 60 government agencies using the Common Web Platform. 81 digital agencies on the web services panel for CWP. As part of the platform, government agencies contribute to co-funded development hours that are used to develop new features for all government agencies to share, and in turn the wider open source community to benefit from.
47 modules included
NICOLE Each government agency contributes hours each month towards a combined pool of hours which is used to improve and enhance SilverStripe and CWP
This pool has grown with the adoption of CWP. Over 1,200 hours of SilverStripe product development are contributed by CWP every quarter. Some of the key improvements in SilverStripe 4, such as the overhaul of the assets area. Over the past few years, CWP has grown to be a huge driver of open source innovation.
NICOLE In fact this pool has contributed over 10K hours of product development towards silverstripe open source, on top of the code that’s been shared from projects outside co fund
NICOLE These supported modules currently number 47
With CWP supporting the development of SilverStripe 4 we were keen to upgrade the recipe as quickly as possible to allow agencies to upgrade and build new sites using these features.
We timed our work to commence as SilverStripe was in final Beta stages. Our goal is to have a stable recipe release within one quarter of the SS4 Stable release, which means we’re targeting the Feb recipe release (available widely from 1st march)
We are hoping to have a beta recipe release early in the new year, while this won’t have undergone official release processes like independent security testing, we’d still encourage agencies building new sites to use this, as we’ll be in stable before most projects go live. And this avoids launching new sites on an outdated major release and incurring unnecessary upgrade costs early in the project’s life cycle.
We’re working through a process of active development, with the largest 23 modules in the recipe already completed. After development, the modules undergo recession testing before being released under alpha and then beta tags. This will be the core focus of our Creative Commoners team over the coming months.
With 47 modules to upgrade, this is an ambitious task, but an important step in ensuring that developers can get going with SilverStripe 4 quickly and easily.
But obviously it’s not just us working on upgrading modules, so this has been a time to consider modules across the community…
ROBBIE NEXT SLIDEW
Obviously we're an open source company, we want everything to be open by default the fact the everything's in two open source locations (GitHub and GitLab) isn't super helpful
130 modules in SilverStripe's GitHub account (including CWP)
Easy to find things in one place
Easier for non-technical people to find things, e.g. bugs
Opens up via API options for us to expose this sort of information in other ways
SO LETS LOOK AT SOME STATS
45,282 commits made by 560 contributors including core SilverStripe modules representing 240,813 lines of code
Over the entire CWP products (including the core SilverStripe product)
Issues on GitHub at the moment, across all versions e.g. ss3 and ss4
Relatively low number of issues labelled as high or critical impact
TRANSITION TO NICOLE
Now it’s time for the serious half of the talk, where we get into the nitty gritty
INSERT APRON HERE
When you’re cooking something and you want a repeatable and consistent result, a recipe is a pretty good idea. This approach was taken to allow CWP to quickly create government sites with similar requirements.
List of modules at specific versions that have been security tested You can trust that they work together well, like a burger and classic ingredients
The number of features outlined in the RfP quickly meant the recipe was everything you could want, and a little bit more. It’s hard to remove modules, or use newer versions as module development can be faster and out of sync with quarterly CWP recipe releases.
But the approach can be bloated and restrictive
Currently there’s not an easy way to opt out of modules you don’t want to use. You can work around this by hiding things from the CMS, however that’s the equivalent of drowning a burger in sauce to hide a gherkin, it would be easier to remove the gherkin.
Or you can copy the recipe and create it from scratch yourself, but that’s like making a Big Mac at home, it’s just not the same and it’s hard to upgrade so you lose the security and compatible benefits the original recipe concept created
So we’ve started by addressing the problem of removing modules, from the 2.0 recipe it will be easier to opt out of “ingredients”. Not a fan of gherkins - that’s fine! Lactose intolerant - ditch the cheese!
Easier to opt out of individual modulesSplitting the infrastructure/core from additional features
Having one recipe works fine if you’re always cooking the same thing, of course that’s an unlikely scenario in both culinary pursuits and digital projects.
But what if you’re not wanting a burger? When CWP was first created, it was designed for informational brochureware sites, everyone was ordering burgers, but as the community has grown, there’s obviously been a desire for a larger menu.
One recipe for all food doesn’t make sense, so we want to offer more recipes.
Common CWP flavours that are starting to be widely ordered are…
But of course there’s cross over in these options, so in the new approach to recipes we need to consider this
So we want to move to smaller, more flexible recipes, then we also need to consider how they can be used together.
So if you want a burg-izza or a piz-urger, you totally can.
Or more realistically, if you want an intranet with a blog that uses content blocks, you can.
ROBBIE How to recipes technically work now and in the future
Differences between SS3 and SS4, moving towards collections of features in smaller sizes
SilverStripe isn’t the only chefs that can create recipes. And we want the concept to grow beyond the CWP community and the group of commercially supported modules
Recommended modules (commercially supported plus community)
Do a random draw for aprons
Recommended modules (commercially supported plus community)
NICOLE Increase confidence in module quality for developers and business users alike Also allow for easier contributors… PASS TO ROBBIE Allows for team shifts, and confidence in accepting PRs because high quality modules gives assurity out of the box Incremental improvements to this site are planned to support the rollout of these new recipes and to surface the improvements to module quality that Robbie has covered. This is an area that we’re keen to work with the community to improve this site. Make it easier for non technical user to find modules
Some of the ideas we’ve had are adding recipes, allowing others to create or suggest recipes and making addons tastier, and by that I mean updating the overall UX, and also making it appealing to a wider audience. So it becomes a place that can help you sell the benefits of SilverStripe open source to clients more easily.
Points to cover: What these are Everything in CWP is supported
What the standards involves and that we’re going to review it in light of SS4 and web development in 2017 and going forward
BACK TO NICOLE
We’ve shared some great stats today and we’re proud of the way SilverStripe open source continues to grow and evolve. But we’re realistic, we’re not a huge community, so it becomes important to pick our battles.
Look to integrate with other projects rather than always build from scratch, such as the PHP parser we’re using to create easier upgrade pathways between SilverStripe 3 and 4
Bringing together efforts rather than reinventing the wheel.
Content blocks is an example of trying this out, we hope the community will help to expand on the module, sharing extensions and blocks to build on Elemental, in the same way we collectively build on gridfield
ROBBIE START NEXT
ROBBIE: Search for an easy effort tag and help squash bugs on GitHub
NICOLE: Working group
Reminder of poll
Draw for aprons now
StripeCon New Zealand 2017 - Nicole Williams & Robbie Averill - Brewing new modules and recipes for SS4
Head of Product at SilverStripe
Senior Developer at SilverStripe
Brewing new modules and
recipes for SS4
Brewing new modules and recipes
Robbie Averill, Senior Developer, SilverStripe [@robbieaverill]
Nicole Williams, Head of Product, SilverStripe [@envycollect]
1. Upgrading modules
2. CWP 2.0
3. Updating recipes
4. Improving addons
5. How to get involved
What is your