 Hello everybody hopefully you're in the right room storyboard not looking for container stuff right now or anything So we're gonna introduce ourselves real quick. I'll go over the agenda, and then we'll just dive right in I'm Kendall Nelson. I work at the open stack foundation and one of my primary Directives right now is to get the community migrated from Launchpad over to storyboard. So Hi, I'm Zary Zymesh. I've been working on storyboard and open stack for a couple of years now as a current storyboard And I'm really boring so I have nothing else to say I'm Adam Kaldrick. I'm a software engineer working a company called code thinking Manchester in the UK I've been a core developer on storyboard for about two years now So basically we're just gonna go through things Why we're migrating? We'll get into how we actually test and make sure that you can migrate and then how we do that And then we'll kind of teach you a little bit about how to use storyboard. So Without further ado Why storyboard? Well, so as we all know Launchpad has its video sync overseas and things we've gotten used to over the years It's not really set up for cross-project collaboration And so storyboard is specifically designed to fit the open stack use case So it's it's much better at cross-project coordination for larger initiatives and stuff Since the repo is in open stack we can more quickly address issues where before we had to go and talk to canonical about getting some things fixed up fixed up and also Storyboard is API first meaning that it's just a Python API at its core It plugs into a database and you can access it from a bunch of different clients So if you don't like the GUI that we have you can write scripts to do your own web clients and Since Launchpad is getting less and less support from canonical we want to you know move over and kind of take control of our own destiny and We'll also it'll help us unify our tools We'll use open stack ID is the authentication service for everything now instead of having to have Ubuntu one and Open stack ID Kind of migration process now So we really have like three questions before we can migrate you at this point The first one is is your project really? Cross-projects with the bugs that you have filed if so We need to migrate you and the other projects you are Beholden to all at once Otherwise we have some issues with the migration process So if you're pretty standalone, we can definitely move you right now Also, if your project is managed by the VMT It's harder because we don't have all of the privacy needs implemented yet for tasks and stories It's an ongoing process. We have a couple patches merged right now It's one of our bigger focuses and so that should be done soon And we can start taking those projects over that are managed by the VMT The third question is we we actually run a test migration into a dump of the production Database just to make sure that there aren't any other smaller bugs. That's our specific to your project We want to get all those addressed before we move you over so we look into that as well And if the answer is no to all of these questions, we can migrate you right now Could even do it later if Jeremy spring if you really wanted to but uh, oh Just give us a email or drop into the storyboard channel And we can definitely talk about that and and get you on the list of interested projects so Okay, so Once you know that we can migrate you we basically set a date to migrate And we're currently kind of trying to organize into groups of like three or four just to save resources in time but At a certain point we'll get to We won't be able to go like one at a time It'll be like the last large group of projects will all have to go at once because they're all interrelated as The first question on the previous slide mentions And so basically the process is really simple. We have to change one thing in project config We just set use a storyboard to true and then at that point We run our migration scripts and it moves all of the bugs over into your new storyboard project At this point, we don't move the blueprints over and it hasn't been a problem for a lot because of the the nature of the work is really similar and what tasks and stories are is Easier way of organizing things and launchpad kind of forced you into using blueprints to kind of keep your work organized So if it's something that you think you would need for your projects You can talk to us and we'll look into adding that into the migration scripts So after that basically there's no more need to use launch pad and you are home free at this point We've migrated ref stack and manasca in the interop working group and we also have shade and infras been using storyboard for Several releases at this point. So there's there's stability there and So now we'll move on to actually using storyboard Thank you So yeah, I'm gonna talk a bit about what the things in storyboard are and how you use it So the main thing is a story a story is a goal or a set of requirements It's a high-level view of why you want to do some piece of work So it can be quite broad and then within a story You have one or more tasks required to complete the story the tasks will be like what you do There's specific units of work and I'll come back to them in a minute But yeah, they're more finely grained a story can be relevant to multiple projects at a time in a lot of task trackers you have Items of work that you place in projects Those would be your stories but in storyboard a storyboard doesn't a story doesn't have a project and you don't put it in a project instead You relate a story to its projects because stories are essentially cross project. We here to promote cross project collaboration So I'm going to go and show you a video now about creating a new story and you can see how they relate So this should be playing when it loads. Cool. I loaded. Um, so you go to the top you click create new and Story and then put a title in for your story as you create the story You'll see it makes a default task below That's automatically filled in with the title matching the story and you select a project for that task That's so you can find which projects the story will affect so that it's indexed of why people have no way of knowing Whether a story is relevant to them projects and open stack tend to correspond to get repositories and then project groups of the related Repositories so that teams can see what things they kind of need to do Because normally yeah approach a repository is kind of under the purview of some specific teams So yeah, that creates a story as you can see it's very broad It's fix a bug I found in search and the task just matches that name for now because We'll make a more finely-grown task later. So onto tasks so Tasks a small specific units of work there what you're doing and a really easy way to think about tasks is that There one kind of git commit each so when you send a patch to Garrett You would like give it a task idea if you want to associate it with the task and then It's yeah a very small specific thing that you can track each task itself is associated with the project because as I said Projects a git repose so then you're sending a task to that specific project in the task being the commit It's yeah related that way different tasks in the same story can be Associated with different projects so that you end up with a story that spans several projects And it's really easy to see which projects it affects And yeah, as we went over in the video you want us with Associated with a project will create be created every time you create a story and you can then edit the details of that later Tasks in storyboard are the things that have statuses So you wouldn't really change a story status You change the tasks status and then the story status is dependent on the tasks so Tasks are the things that are like the statuses here are it to do in review merged again They correspond to the statuses of patches in Garrett and yeah If you put a patch up and you associate it with a task idea or then automatically changes storyboard to say It's in review and then when that patch gets merged it can automatically change be merged You can also change them manually for the cases where a task doesn't perfectly map to a git commit So say you have research this thing and you know roughly what repository need to look it up in and you want to keep track to Make sure that that's happening, but there isn't a commit that's going to be sent once that's researched I mean ideally you'd have a docs commit for that, but if for some reason that's there is no code for that Then that's what would happen there If you want to add extra tasks to a story there are two ways of doing it, and I will show you a video that works so When again it loads? Yeah, you both videos work. Okay, so here we have adding a task in the same project So for storyboard we have two projects the one that's called storyboard and one that's called a storyboard web client because we have both an API and UI so there that's creating a project a task in the same project Which would be the API and it's change a parameter name in the API However, there are two places where we would need to make a change here To make people see it in storyboard and the other one is in the web client So we have a separate repository for the web client So we have a project for that and we can create a task associated with that project So then we have an associated thing update parameter name in the web client as well And you save that task as you can see it's a task affecting this project or effects of the project to Create tasks that affect different projects But you might notice there is you can kind of see on the drop of the video although we didn't demonstrate it There's a little drop down to change the task minute task statuses Either manually and that would also be the place where you would see the test status changing if it changed automatically But there is no priority field and this is intentional There is a very long blog post on why this is the case But the keys that we want multi-dimensional priority and you get right to demonstrate priority in storyboard You put tasks in a work list and I will hand over to Adam who will explain worklists and So worklists are Just ordered lists of tasks and stories Anyone can create a work list anyone can create as many work lists as they want There's no limit on how many work lists someone can make there's no limit on what can go in a work list It can be any task or story in storyboard that you can see and They're not limited to just one person either you can Make your work list available to be used by other people so you can either add someone as a user for the work list which Let's them add new cards to the work list or move things around in the work list or remove things from the work list or you can make someone an owner which Can do all the same things but they can also change the priorities themselves and Manage the title and whether it's private or not which a private workplace can only be seen by The people who are used as our owners and they can make it automatic as well, which we'll talk about in a second So they're very flexible some example use cases you could Anything from a small personal to-do list of the tasks that you hope to get done this week all the way to a Project team making a work list to represent to hold all the stories that they want to get sorted in a certain milestone um we As I said, there's no global priority in storyboard, so We use work lists for that Anyone can make a work list. So this means that anyone can express priority by putting their tasks in a work list Of course, I could make a work list something like Adams priorities and because a work list is ordered then I can Fill it with tasks and put the most important tasks to meet at the top Or the most important few tasks near the top kind of thing and then other folk can Come along and think oh, I really care about Adams priorities and they can come find my work list I can link them to my work list and then they can subscribe to my work list if they subscribe to my work list Then when they go look at a story with a task that's in that work list Or if the story itself is in the work list then They'll be able to see oh this task is in the top position in Adams priorities And they think oh, I should probably care about that and it'll be my friend if I fix this book then So yeah, that's that's just One person's priorities people might care about Multiple people's priorities at once like if they have to wear different hats Or if they have a boss who's got some different priorities to the upstream core team or whatever and so the boss could then make make a work list of Things that they care about and their priorities and you can subscribe to both and then find stories Oh, this is in both people's work list. That's probably a good place to start So we also have automatic work lists, which I mentioned which don't have order Automatic work list automatically populated at runtime with tasks and stories that match filters that you can set on each like Yeah, I'll show a video of how we go about So it's very similar to creating a story just create a work list give it a title You can make it private. You can make it automatic. We'll do that in a sec and safe changes and Well, we have a work list you can populate it with cards by add add a card Or you can edit it which we'll do in a second I had a card you search for tasks by name So we'll find the parameter tasks that we created just a second ago Add the add these items to the work list And now we have a work list with some items in we can drag these up and down We can add other things to the work list pick some random tasks from this test instance of storyboard that I was using Again, we can move the tests up and down So this could represent my priorities for example I could find the web client bug is really important to fix and so we can also add a user to storyboard We'll add that to a work list. We'll add Zara to this one I don't know why I would want to edit Adam's work list, but maybe she does we can remove tasks and Just by clicking the cross on the task card And we can make it automatic We'll make this work list into the like a to-do list for me, so we want it to contain tasks which are assigned to me and also Have the status to do have the status to do and then when we click save It's now populated instead of the manual test. It's now got Automatically populated with things that are assigned to me and have states to do in this instance So we also have boards in storyboard which provide a Kanban board kind of functionality kind of like a Trello board a Bunch of lanes you can put cards in the the cards are basically Tasks or stories very similar to it's almost like a multi-dimensional work list kind of thing you can drag the cars between They have the same permission system as work lists And so you can set for it to be users and they can move cards around or you can send to the owners And they can move lanes around and change the permissions and such like we also have automatic boards So this is done on a lane by lane basis So you can set filters on a lane just the same way as you do with the work list to make this lets you for example make a automated dashboard of a project for example you can have a Board with lanes which are the backlog for a given project and the things that are in progress for a given project the Things that remove you for a given project It lets you get a good quick at a glance overview of things without actually having to bother moving cards around a board and you could also use it just to have like From a project management perspective a list automatically populated with lists of things that certain engineers are doing so you could have a lane Not really Kanban style functionality like Adam's tests and Zara's tests and some engineer 3s tasks kind of thing And so I'll show a video of making a board It's a very similar process to making a work list just add and create a new board Give it a title give it a description if you want a description for your board Again, you can make it private and that can only be means that it can only be seen by people who are owners or users of this board and once you give it some lanes This board would just for an example will have A backlog lane a doing lane review lane and a done lane typical like Kanban style thing when we're finished creating the lanes will save the changes and We have a board We can populate this manually the exact same way we did with the work list by adding a card to each lane as we need to But we'll make this automatic because that's a little bit more interesting So as you can see it's the exact same way of doing things as with a work list You just set some criteria. So we want this lane to be filled with tasks that are in the storyboard project group Which means any projects that are storyboard projects And also tasks status is to do So we save the changes now We have a backlog lane that's filled with the to do tasks that are in this test instance of storyboard And we can do the same with the doing lane the same process again tasks matching Storyboard project group and the status of doing or pretty in progress and This will come out exactly the same or But with different tasks If I ever remember how to type So yeah, just click save and save the changes and Now we have it when we could do the exact same thing with review and done thought there's not really much point doing that I don't think anyone has interest in watching a board be configured So Does anyone have any questions about storyboard? That aren't here Or we can talk about these if you prefer Hi So is there something analogous since this is now the bug interface to what we had in Launchpad where you go to You know lunch pad net slash cinder and could just automatically put a bug towards cinder through that Do we have that kind of organization? Yeah, so there's a project page in storyboard You can search for projects and find the cinder project for example Click on that project and it'll give you a list of all the stories which are in that project You can look at all the active stories Which means there's a test that's not merged or invalid or all the merged stories are invalid stories if you want to And on that page there's a button to add a new story Which will automatically populate the like the default task with cinder as a project Okay, good. Thank you Yeah, I think there wasn't an open story still Outstanding where we've had some requests for Having human readable project IDs as an option. Yeah, so basically if I go to you know storyboard at open stack.org slash cinder Yeah, yeah, then that could take me it probably would just be in a Immediate redirect into the numeric project ID But as a convenience for people who don't like you know want to keep bookmarking all these things So of course we just started a new project and dutifully followed the project creators guide Which makes no mention of storyboard Wishlist request that that should probably be updated something. Maybe you're already planning that. Yeah And we will go ahead looking forward to it Project relationships do we have a plan yet for novice under you know some of these that are gonna have to be the great migration where they flip the big switch and all So the very lofty goal is to have this done by the end of Queens And so somewhere in the last I don't know maybe Milestone or whatever we would go and run the migration scripts and get everybody else moved over we do have Half a dozen things that we want to like get done and polished up in terms of implementation for like the vulnerability and management team stuff Before we do that big last migration But ideally the end of Queens or somewhere in the beginning of Rocky it would be the goal Any plans for project groups Yeah, we do already have project groups in storyboard didn't really mention them very much and start Yeah, so project groups we have you can I think it's in the project config file You can pick a group which yeah Yeah, so for the the ref stack and interop Repos that move recently, you know, there's a ref stack group and a reap an interop group that they're all their Repositories are grouped in in storyboard They mentioned info was the first team to migrate a couple of years ago. In fact, and we put all of our info ref repos like, you know 120 or however many our team has as deliverables Into a group so that you know, we can we can reference those as a project group and storyboard as well Sort of storyboard itself. It's got I think one project for the API one for the web client one for the config So On these statuses are we limited to to do in review and merged? No, that was just the example I think it's yeah, it's I think to do in progress Review merged and invalid for yeah, okay. Yeah A little black and white. Yeah. Thank you. Yeah, the projects have already migrated. What have they done with their launchpad? was it trees were counts You can still stand up here with us So launchpad lets you set bug tracking to Disabled effectively so that the the bugs that are there are still readable But people coming along can't open new bugs on launchpad So for the most part, that's what we've done is you do that and then update like your project description in launchpad That says this is the URL to our bug tracker and that way if people are finding the old launchpad entry for your project Then they know where to go for for bug filing from that point on We've also been trying to send emails out to the like Operators mailing list so that they know that storyboard is coming to and they'll know where to go to file bugs Okay, so that's good. Thanks. Yeah And and also I would say one other thing that That infra has done and I would recommend other projects as they migrate to storyboard to do also is we update the readme files Or you can see the readme or contributing in the top level of all of our repositories I'm you know where you'll mention here links to our contributor workflow and so on and you know We explicitly mention a link to this is where to file bugs for this project so that People know where to go if they're looking directly at the source code as well Another one. Sorry We're doing this for so So you said blueprint migration won't happen automatically, right? Okay, so as we replace that with storyboard our blueprints are now going to be instead new stories and tasks Is there any? Planned way of marking what our new feature requests versus bugs We have talked about like an official set of tags so that you could filter and be like all these are just the bugs Or these are just like the new features. I don't we haven't done a whole lot of work towards that yet But it's definitely like you can make your own tags right now Yeah, but we could make of like official ones So I would think that having something Consistent across all the projects would be helpful there. So yeah, that would be one request So that we can find what's features versus bugs make a story for it Okay I'll get on that Just to follow up to that I am a storyboard user in another community also and there we don't have official tags We simply wrote on a wiki page. These are the tags we use for these purposes and that works for us I don't know that it will necessarily work for open stack like that, but that's one way to do it Until that happens. Yeah, I mean, I think one reason for not Migrating blueprints has been that there's a push towards specs repos for what blueprints were previously doing So that's a reason to maybe maybe it's not the place to do that I think maybe yeah I mean one thing that we did discuss along those lines was the possibility of augmenting the migration script to just also import Open or active or whatever blueprints as new stories as well and I mean like I said a little bit of background mainly blueprints in launch pad are sort of there as a a Solution to the Shortcoming that launch pad bugs have of only being able to have like basically one bug task per project So while I think you mentioned that the launch pad was not really cross project friendly It's cross project friendly as long as as you consider that there's only one task to do in a given Project and branch to fix a bug So storyboard kind of addressed that by letting you have multiple tasks in the same project as well as in different projects within a story and Thus the need for blueprints is kind of obviated But yeah if we can import blueprints as stories then maybe that also solves the use case for the people who are still relying on those Perhaps projects could have separate boards one that's for the bugs tracking and run for For store, you know for new features. So I guess that's also kind of up to each of the projects Yeah, yeah, it's just a new way of thinking about it I think the other thing that didn't get mentioned, but there's a there's a Kind of a synergy in the implementation of the tagging and Worklists or boards as well, right? So you can you can use the existence of one or more tags as a filter for building a work list So you can easily populate a work list by just tagging stories or tasks with the tags that corresponds to that work list Yeah Well, if you have any other questions or any other things come drop in the storyboard channel And we can answer your questions or direct you to the story to add comments if there's a problem you've encountered or Read our wonderful blog posts that we sent out to the mailing list that nobody seems to know about Yeah, all right. Yeah, we're in hash storyboard and I see it's not hash open stack storyboard Yeah, all right. Thank you very much. Thank you. Thank you