 I'm actually going to touch on a few Paz things as well as Saz things. Anyone who's not doing any Paz or Saz may find a lot of the stuff. Hopefully it'll at least be quirky, if anything. So what I'm going to do is I'm going to present and I'm just going to jump into it. So it is going to jump from thing to thing. I've got half an hour to present. I might end up using that up a bit early and then have some questions. Let's have a look at it. So I'm not going to do background. I'm just going to jump into it. If you do have questions, please ask those questions into the chat. I'll try and read that as I go along. So okay, first thing is this presentation mode is not going to work. So I'm going to jump around. So key places I want to tell you about with GovCMS. And a lot of this stuff is like new people who come on. Where do I go? What do I do? The key places that I think for GovCMS for a new project. GitLab is at projects.govcms. Lagoon is dashboard.govcms. And freshdesk is govcms.support. So that's the help desk. But in addition to those places, there's also all the repositories on github.com. And then there's a couple of the URLs that I'm going to drop these here because if you might in two months time think, there's logs somewhere and you might go back to the presentation and look at some of these links throughout the thing. So even though I wouldn't recommend anyone going to Kibana because you really need to know how to use it to make anything of it. I'm going to leave some links here in my presentation. So your key places if you find yourself on GovCMS. So where are the best docs for GovCMS? I personally think, having had a hand in this, that the best docs for GovCMS are this URL. So what is this URL? This URL is actually a wiki for one of the GovCMS repositories. So this is the original GovCMS repository. It's now the GovCMS 7 distribution as opposed to the GovCMS 8 distribution. But it happens to be where wiki documentation is kept for Drupal 7 and Drupal 8 versions of GovCMS. The wiki actually breaks it down into a few things. It's a good place to start in that it has... The distribution is in Chapter 2 essentially. Some generalized things around developing are in Chapter 1. And then there's also things like finding resources page that tries to be like a who's who of links to all the different things in GovCMS. Because GovCMS does have a lot of repositories, there's a lot of resources that you might want to access. Just make sure that I'm not screwing up and I'm just going to check my... See if anyone's left me any comments. No, I think everyone's happy, it seems. So that would be the main place that I would recommend anyone who's starting with GovCMS to go and to scan through all these pages and see. There's some really good... For example, in terms of Google-able stuff, you might find that this troubleshooting thing is just a hodgepodge of lots of different things that might happen to you on GovCMS. So this is where I go, where I get a weird docker things, because they're like, I need to maybe log into the docker thing on GitLab again because it might give you weird messages. So I'll often come back here and Google for things or search through these documents to see if I've done something silly. But there's a couple other places to be considered. There's the GovCMS training and the problem with that is it's stale. So it's like, if you wanted someone to train someone in GovCMS on web forms or something like that, there's not really anything in there. So hopefully that's something... It's in a Git repository, so hopefully that's going to come along at some point. Because there are some downsides to this Wiki as well, like I've noticed having been involved in them. The GitHub for Wikis isn't ideal, so it would be really nice to see that as the central place at some point. At the moment it's just got two training documents. Then there's Fresh Desk, which is great if you're on Fresh Desk. It's got a lot of duplication because it's like a world garden, so there's a lot of duplication between things in the Wiki and things on Fresh Desk. Then there are some other Wikis that are mostly being consolidated into that Wiki that I just showed you. That's a big thing you'll notice when you're talking to people about GovCMS is like the documentation. It's very difficult to negotiate, so hopefully that's just a really quick intro to the documentation for you. Connecting to other people. The places to go, I would recommend for anyone who's starting would be the GovCMS Slack. So if you are looking for access to that, someone can invite you, so you can always jump in the Drupal Slack and ask someone about that. Then there's community.gov.cms.gov.au. I'm not sure offhand. I think that's a self-sign up, but I would say that they're the two best kind of developer-y things, places to go with the GovCMS Slack probably being the best resource. There's lots of chatter about GovCMS, but there's also a couple of other places that I would recommend for different reasons. If you really can't be bothered joining a million Slack, you can just come into GovCMS in the Drupal Slack. There's a few people in there. There's also GovTeams, and if you've got a client who's only in GovTeams, or you want to interact with some of the GovCMS people, there's a GovCMS team, but that's like a really fringe thing. You're only going to be in there if there's a reason, and someone adds you from the government, essentially. But I would say that they're the main two places to connect as far as GovCMS goes. This is where I'm going to just jump into a whole bunch of different things. I might even come back to this one. I don't like the order of it. I want to introduce you really briefly to the GovCMS Dashboard because I want to do one of the questions that comes up when I'm working with people who are new to GovCMS. What happened to my build? Did my build run? I have no idea if it failed or if it succeeded. I'm going to give you a really quick example of what a build looks like in GovCMS. You'll have been given access to this dashboard, which is the Lagoon interface. You're going to go to a project and the branch and the project and deployments and then you're going to scroll to the bottom. I'm just going to show you what a deployment looks like in GovCMS because it looks like it's useless in that there's too much information that's been involved for a long time. We've basically got a deployment here of a demo site and what I want to point out is that it's not like most of it you don't care about but I want to show you the bits that you would care about. The easiest thing to do is to do a search of something that you know is going to have happened at some point such as a Drush command. If I start searching for the right word, Drush I get a couple of hits in the document and you'll see on you notice these build steps and things like that but this is just highlighting the fact that it's right at the very bottom which is what you really want to see when you're wondering what happened to your build because at the very bottom of every GovCMS build after all of the containers have been built and so forth then it starts getting into good stuff where it decides whether you've got a production environment and whether it should import your database or import config and then if there's going to be an area in your build like there is in this one that I've pulled up then you'll be able to see that here and that's right at the very bottom of your last deployment on GovCMS. So this is basically this is just a demo site and you've got your deployments here on the left and you're going to go into the last deployment and then you're going to scroll all the way to the bottom to find that. Okay, so that's a common one I see. So I've got here what happened to my build so you're going to go into your thing you're going to see your deployment scroll all the way down to the very bottom and it does, like I said it does help search for something like Drush that helps highlight where in that log you're going to find things. Something I wanted to pick up while I'm on that note is that something that's up and coming and this is probably more for past users that's Lagoon CLI and I'm sort of excited about this because it's going to make it possible to not have to do what I just did in terms of going into the deployment. So this is going to be one of those ones that if you have to do this you might want to refer back to this because I worked it out this afternoon but basically I've got a CLI I've configured that to point to the GovCMS Lagoon using this command here and then once I've done that I can start running commands that people on Pantheon and Platform will be more familiar with where you can start running commands against an environment in order to in order to see some results So we're running deployment against a project and then a branch that's not specific and there we go Now I don't use this CLI but I just wanted to flag that because it's coming through and particularly because at the moment it's not documented how to connect so maybe this is going to be something we see more of in the future where we can connect to Lagoon we can start running commands against Lagoon for our projects and that would be cool and that's all I'm going to say about that Now I want to talk about code bases Am I in the right spot? Yes I want to talk about the difference between Paz and SAS So let's talk first about doing a SAS project and the question is if you've got a project where you're not quite sure whether it's going to be Paz or SAS what is it what does it look like the difference between those two things? I'm going to start off by talking about what it might look like to have a SAS site and then convert that into a Paz site So essentially the difference between Paz and SAS is these two locations in your code base So I've got on the left I've got a repository that is a SAS site and on the right I've got a repository that's a Paz site If all things are the same between those two repositories in that they're both just the GovCMS profile then the only thing that's custom to those projects is the config directory and the themes directory in that you would be able to convert a site from a SAS site to a Paz site by simply moving those folders or copying those folders from one site to another with caveats around whether you're using config for your deployment and so forth But I think this is a really good one because I think there's a little bit of hang-up about I've got to build a SAS site but we don't know when we're going on the platform it could be another six months You might have some really good build process and so forth and it's really good to understand what it is that is being expected of you for your SAS site So I find like these slides are a little bit out of order from where I want to go I want to just skip those two couple of slides and jump to this one What I want to talk about is something that's dear to my heart which is if you're not on the platform yet but you've got a SAS project in your pipeline what's the best way to start developing that and so what I'm going to do is I'm going to pitch to you that the best way to develop that is to use one of the GovCMS scaffolds called the Scaffold Paz which might seem counterintuitive If we go back to the this image before though you'll see that all we really need to do to develop a site is to maintain this compatibility with a SAS site which is just our custom themes and our config directory and generally speaking as long as all the dependencies for our themes and the configs are being met in our Paz site and not gone past that it's going to be compatible with a SAS site So why would you... I'll bring up the GovCMS Scaffold Paz So just to differentiate what this is from a few other things there are a few scaffolds that GovCMS has there's the one that allows you to build a new SAS site and then there's this scaffold that allows you to do a new Paz site there's also a GovCMS I think it's the directory URL is GovCMS project or correct project or something like that that's used a lot less This is the one that I... This is my go-to scaffold and I want to explain to you why So say if I have a SAS site I will start the project using that scaffold and these are the benefits of it So these are the risks I'll actually start with So the thing is if you're going to build a site not on using SAS and you're going to use it with another scaffold you have to remember to keep these things correct You have to be really mindful that you're not going to add modules that aren't in SAS You're not going to add libraries that aren't in SAS because you wouldn't be able to add them to SAS later You're not going to be adding custom code You're not going to be overriding things in your settings not PHP You're not going to be adding patches and so forth So if we look at the benefits of the pass scaffold the first benefit is that the pass scaffold is actually completely compatible with the SAS site out of the box So if you are if you're running and if you've got a SAS site in your pipeline you can basically run a more traditional Drupal Composer build and retain the benefits of that prior to actually migrating that into a SAS scaffold Any customisations that you might do in the meantime it helps you to do them in a way that keeps them completely separate so that it's very easy to do your conversion to a SAS site later and it's ready to go for pass or SAS or any other ultimate hosting platform So for example one thing that you can do and your pass scaffold is something that happened to me was there was an upstream patch on GovCMS which I needed I wanted in a SAS site and that patch was approved for GovCMS so running the SAS scaffold there's a lot more mucking around in terms of having that patch but with the pass scaffold I'm able to put that patch into a custom patches file and when I build that scaffold it uses that patch So that's instead of being in the ComposerJSON file so I want to keep my ComposerJSON file kind of generic and not change it and that allows me to put all my patches in that separate file What I have to be mindful of for when my site transfers into a SAS site is I want to be able to run that the site needs to be able to run without that patch If there's any risk that that patch is not going to be there and really once I deploy to the GovCMS platform then that's going to be a problem and so I want to make sure that patch is being committed upstream In some cases your patch might be a patch to just help with your editing process in which case it doesn't it's actually completely unnecessary to have that patch committed upstream you're just having that patch for convenience so that certain things work in the UI in the short term So another example of that is say if you wanted to chuck in a bunch of development modules that you're not going to be using in the production site but in the short term they give you a lot more control An example might be if you're doing a lot of work with menus so you're throwing the big menu module you know that later you're going to remove that module it's not actually going to impact the site when it's the SAS site So the past scaffold lets you put all those modules in a composer.json file and you can verify all this against the scaffold itself If you go to the scaffold you see there's a custom directory and you can check out the composer.json file in that custom directory where you can add additional modules So yeah so it just allows you to define additional modules in the composer.json file and for SAS compatibility you're saying to yourself well can I run that my site without that module and obviously once you're ready to move your site over you need to be potentially exporting all of your config without the module which means uninstalling the module exporting your config and then copying the config file which has been provisioned for you So another benefit of that is one thing that I find frustrating with the Hoi commands is they don't always match the common workflows that we do as a team so the past scaffold has the ability to customize an Hoi YAML so you can just keep all of your custom Hoi commands all in a separate file you're not touching the GovCMS ones that sit in that Hoi YAML so you can set up your own then the only risk with your SAS site is loss of convenience there's the ability as well again just to have a separate project settings file where you can put all your settings that you want to override and again you're keeping that completely separate from the past scaffold and the beautiful thing about keeping all these files separate is later down the track if your site ends up being a past site you're ready for both one way or the other you can just simply go turns out that this is past site got mogged whatever you're ready to go you're ready to push it one way or the other and so probably the biggest thing to remember when you are like doing a past site then you might want to be using a separate development toolkit so personally I use a lot of Lando myself so if I'm doing development GovCMS development locally I'm using Lando locally but I have to be mindful of the fact that if I'm doing solar then my Lando solar it wants to match the GovCMS solar at least you know pretty closely otherwise you're basically you're taking that on yourself the more your own development environment differs from GovCMS but in my experience all of the development tools that people use for Drupal are all none of those websites that's incompatible with GovCMS so that's what I tell people to consider doing that okay so that is probably a big chunk of things I've got a few other things or a few other tips and things that I want to throw at you I want to throw at you that yes you can use the GovCMS UI UI kit start a theme if you'd like to but you don't have to and don't use it as a base theme so if you read the GovCMS UI kit starter info yaml it says you should use it you should copy it to your project and yes you can use it as a base theme in your project but don't use the base theme in the profile because the problem is that when changes to that base theme happen it's very often that causes regressions in your site because it affects the theme that depends on that base theme so a big thing I say to people is really consider your options when you're starting a theme for example I will always use a stable in core as my base theme and I find that that's a lot less regressions to do that it's just triple core out of the box and it can do it the way I want to do it that's something that people often start on your GovCMS site and they're straight out of the blocks they're using the starter kit and they're like deciding should I rename everything it's a very complex theme to be working with if you don't need to it's great if you're doing the vanilla content model that the profile comes with because a lot of things will be integrated out of the box it just really depends on your project and similar to that I really tell people to consider setting up right at the very starter custom admin theme because what we tend to do is when there's a glitch in the UI for editors we just want to throw a bit of CSS in there we commonly wrap the admin in a custom theme wrapper and it just means we can chuck in a few little things like preprocessors and stuff for like paragraphs previews and things for editors and then what you're using as a base theme you can point a different admin theme from Drupal.org if you want where you find admin works really well with GovCMS and just so you know the new Drupal core admin theme is not really ready to be used with GovCMS there's just sort of too much going on there and it's sort of not stable enough at this point so just on the right I've just got an example of an admin info theme might look like and using admin or theme as a base theme find that works really well and then I just want to talk about the content model for the profile GovCMS sites the big in theory part of it is that you like if they're all brochure websites because you know you can do a lot with what's out of the box with content types and things like that and they're sort of ready to go upstream they're being improved but what I see go wrong is when people are getting a build that's differing from that and they're not using any of the content types out of the box with GovCMS so they're getting a lot of entity types and things like that in their configuration that may never get used so I really want to say it's not a crime to remove stuff like taxonomy types and kind of types from GovCMS actually the balance of the equation is that you'll have potentially less issues and you'll never get that situation where developers you ask them why they created a new image style when there were three image styles they could use and they say I wasn't sure what they were being used for and it turns out they weren't even being used so something I do recommend GovCMS to you if I do recommend is consider consolidating your entity types how might you do that you can just delete stuff that you know you're not going to use you can always recreate them not a problem you might want to uninstall heavy UI modules like panels if you're not going to use them because they do add a lot of steps when you're debugging a site to go how is this being presented is it display split, is it panels is it custom preprocessor so just try and have the things you're going to use installed if possible I'll say it's not easy to do that something that will because there's dependencies that can be quite difficult to unpick with the profile something we sometimes do is we install the minimal profile for GovCMS and then change it so that it's the GovCMS profile so that we do get some of the core GovCMS profile stuff but it's a little bit tricky there's a couple of little tricks to it but just saying that that works quite well as well GovCMS as a platform the SAS site as a platform SAS platform does allow you to build very simple Drupal sites they don't have to have a lot of content types they can have one content type and they can have a couple of displays and you can do that all with what's in Drupal core out of the box and just use your own very simple very simple theme so don't forget that GovCMS is something on top of Drupal don't forget that it's Drupal underneath that is much simpler and much more robust and free of regressions so I think that time wise that's pretty good that's a whole bunch of stuff whole bunch of things that you might want to consider potentially hopefully didn't bore anyone a few other things I just want to say a couple of modules in Drupal core that you might not know are there schedule transitions personally that's been fantastic entity reference displays is a nice little one that lets people control how their entity references are being output from the editor UI you can now replace files in GovCMS there's something that people have been wanting for a long time another weird one is the context module which people don't realise is there because you don't turn on the context unless you've turned on the context UI module but that's really great for simple fixes you might want to do like setting active menus and adding blocks if you've got a couple of different block layouts and you think your block UI is going to be a bit full on context module can work really well for that so that's my final tip and that's about me half an hour