Okay. All right. So we will pray first and then we will get into our time of study. So we would just like to request someone to lead us in a word of prayer. Anybody? Yes. Yes, Siddhkanu. Go ahead. Father, we come to the throne of grace, Lord. Thank you for this day. Thank you for the session, Lord. Whatever we are going to learn this prayer and the session class, Lord. Let it be used for the kingdom expansion and our faith to be built up strong, Lord. Whatever you have kept or whatever future plans you have, Lord, let it be fulfilled. We did not in our way, but in your way, Lord. Thank you for this hour, Lord. We are going to spend a lot. Thank you for this time, Lord. Wonderful time. Thank you for all the privileges you have given to us in Jesus' name. We pray, Amen. Amen. Amen. Thank you, Siddhkanu. So in the last session, we talked about the people who are lost and praying for them. We focused more on that in the last two sessions, in fact. And today we are going to look at praying for the city and why that is important. Praying over cities, regions and nations. So we kind of, you know, build on that aspect of prayer. And apart from, you know, learning these new things, a session, my first section of what we had dealt with in prayer and intercession was more about developing ourselves personally in prayer. And I really hope that, you know, we are able to do that and we're able to grow, set aside time. Also, now that we've understood, what are all the things that God wants us to pray for? Why are we praying in a certain manner? What is the basis? What is the scriptural basis? How can we engage in prophetic prayer? Go ahead and practice it. Go ahead and, you know, spend time with God, apply and really develop yourself in that. Because it's very valuable. It's really, really valuable. Something that we learn in this journey and we can continue using it throughout our walk with the Lord. So I want to encourage us to not take it as a theoretical class where we know, okay, why? Why should we intercede? Yeah, God wants a person to stand in the gap and intercede. Yeah, but then to really know that we are that one person who can stand in the gap and pray for people. We can pray for others. We can pray for our family. So whatever we are learning as children of God and also ministers, I'm sure we'll serve in some way or the other, you know, the kingdom of God. So when we apply it and we incorporate it into our lives, it really bears fruit, it really strengthens us. So I just want to encourage us to not leave it as theory, but to truly apply it. Now going to chapter 18, which is on page 67, we are talking about praying over cities, regions and nations. Why should we pray over cities now increasingly? We are noticing that a lot of people are choosing to live in cities and this is a pattern throughout the world. There are studies about how cities are expanding, how cities are becoming crowded as people from villages and smaller towns are coming in to find work, more people are getting educated, the suitable jobs are available in cities. So there's a lot about growth of cities, you know, migration to cities that we will learn about everywhere, you know, even if it's not just in terms of missions, but even generally, you know, when we talk about marketing or like I come from a health background. So we used to talk about cities, this is how you plan your public health measures and all that because it's very important. What's happening in the cities is very, very important. It affects a lot of people and there are influential people there. They can take it back to wherever they came from. So cities in that way are a key for many things that go on in the world. Even in the word of God, we see that, you know, God speaks to cities. God considers cities a lot of work which was done, particularly in the book of Acts. You will see that Paul and his team, they will try to choose cities. They'll go there, they'll preach the gospel, they'll establish churches because the impact was large. So that's a little bit about cities and why they are important and all. Now, God looks not just at us as individuals. We've seen that he considers families, you know, Abraham, Isaac, Jacob. He's a God of families. He's a God of generations. Okay. So in God's way of looking at us, all these things come in. He will look at us as individuals, deal with us as individuals, deal with us as families, deal with us as generations. He also deals with us as city. Okay. When we belong to a city, he looks at us as that community. We are belonging to the city. So God's dealings have to be understood. God has a heart for cities and nations. He wants people. In other words, what does it mean to have a heart for the city? God wants people to know him. God wants people to experience of the blessings that Jesus has bought for us through his work on the cross. So everybody must experience it, isn't it? And it's not to say that, oh, God wants only the city people to be saved and not people from other places. It's not like that. But you notice that there is a special focus on the cities because it tends to influence a larger population. And there is greater opportunity for things to move out of the city and impact villages and all that rather than the other way around. So God has a heart for cities. God has a heart for, you could also say communities. God has a heart for regions. God has a heart for nations. Now, the things that go on in a city, it's not like God is not aware. God is very much aware. The first incident where God is talking about cities is seen in Genesis chapter 18 when Sodom and Gomorrah. They were cities that allowed homosexuality, sexual immorality. All those things were going on. There was sin basically in the cities. And it really hurt God's heart that people were living whichever way they wanted. They did not honor him. They did not live for God. And that came up before God. And then God has this conversation with Abraham. When God reveals to Abraham that he's going to destroy the sinful cities. And we know, we learned about intercession from there, right? The way Abraham talks on behalf of Sodom and Gomorrah to God to not destroy them. So he intercedes for these places. But unfortunately, even the minimum that Abraham comes to and says, Okay, if there are so many people, then I hope you won't destroy the city. It was very unfortunate because God, though he agreed, there was no option. The place was so sinful that he had to go ahead and judge these cities. So that's where we study about the dealings of God with a particular set of cities. Then later on, there are many such instances. Only a few we are looking at right now. Nineveh is another place in Jonah and the book of Jonah where God talks to Jonah and asks him to go to this place called Nineveh. Again, what was the issue with Nineveh? Their hearts were far away from God. Their lives were far away from God. So God cared about them, isn't it? Even in Genesis 18, God cared. That's why he listened to Abraham when Abraham was trying to negotiate to protect the city. God cared about Nineveh. People who are far away from God and yet God wanted to send a man. He wanted to send Jonah and said, Jonah, you go there. Jonah knew how evil these people were and yet look at this God. He wants me to go and he wants me to minister to such people. Jonah was the one who was resisting it. But did God have a heart for the city? Did God have a heart for the evil, sinful city? Very much. In fact, God, the moment they repented, we see that Jonah goes, he preaches the message, they repent. And God changes his mind towards the people. The judgment is not the way he told Jonah. Jonah is very upset. He says, what is this God? One moment you say you will judge the city and the next moment you are blessing these people.  So Jonah takes it personally and he gets upset with God. But then you look at the way God is dealing with the city, the sinful city. He cares about the people. And God talks to Jonah and he says, look, these people, they don't know their right hand from the left hand. Why should I not care for such people? They don't know what they are doing. So they need to hear the message that I have saved them. And that is why I have sent you here. So of course, at that time he was not preaching Jesus, but he was preaching about them repenting and turning their hearts towards God. But we know ultimately God was trying to draw the people to himself. So we see that God has a caring heart for the cities. God sees the sin. He notices the sin. It upsets sin. And yet does God really want to protect the city? Does he want to forgive the city? Yes, he wants to. So he is trying to make a way in every instance here to save the people. One more passage we can look at is Luke 19 when he looks at Jerusalem and he feels so bad. And he says, you know, Jerusalem, you did not even understand the day of your visitation. So all these things will happen. He faced the consequences of not yielding to me. So what was God's heart for Jerusalem? He was upset. He was sad that these people are not responding. So God has a heart for cities. He's looking at every city. Does he know what's going on? Yeah, does he know about the sins, some of the terrible sins that are taking place in these cities? Yeah, he already knows. Is he making a way? Is he raising up men and women to minister to cities and towns? He is. He is. Does he feel bad if cities don't respond? He does. So, you know, we see that God has a heart for the people. Okay. And in scripture, we are also encouraged as God's people to pray. Pray for, in Jeremiah 29-7, we have seen this verse earlier too, where God told the people, pray for the city where I have taken you. You pray for them. Why? When we pray for the city, what happens? God's blessings. We want the blessings of God to be released on the city. So God wants us to pray for the city. Right? And we are God's people. We are His representatives. We are the ones who exercise that authority. Right? We open up our mouths. We bless. We release those prophetic words. We speak the declarations of God. And what are we really doing? You know, we are bringing that blessing upon the city. So God told the people, you pray so that you can bless the land where you are living. And we are the agents who can do that because we carry His spirit and His authority. And God told that whenever we turn to God and when we seek Him, no matter how the land is, you know, 2 Chronicles 7, 14. Again, a very familiar passage which a lot of people use for prayer, for intercession, for fasting. Where God says, you know, if my people who are called by my name, if you would humble yourselves and seek my face, turn from your wicked ways, I will hear from heaven, I will heal your land or I will heal your city.  So what does it mean, bless the land? It means blessing on the lives of the people. It means blessing in our economy. It means blessing on, you know, anything that we are engaged in. If it is, you know, agriculture, yeah, there is a blessing on that. There is a blessing on the families, blessing on their education. In every way, God's blessing will come upon our land. Diseases will be removed. So God is saying, look, I really want to bless. And similar to what we said Ezekiel, if you stand in the gap, if you seek me for, you know, whoever, you're standing in the gap for your city, I will bless you. That's what I want to do. And I'm telling you to pray so that I can do it. So God wants to bless the entire land. He wants to bless the entire city. You could say He wants to bless the entire city. That is God's heart.  It says, you know, even the boundaries of nations, they are kind of, they are known by God. Okay. And God is aware which kingdom rises and which kingdom comes down. He's aware about everything. So we see that God is aware about all things. And at the same time, you know, God has a heart to draw people to himself. But unfortunately, when the cities move into, you know, they move away from God, people live however they like. And it's so sad, right? Like when we talk about certain cities, we can also recognize what are the things that go wrong in that city. Okay. There are the places in that city where you should never go because evil things take place there. So it's very unfortunate, but this is how, you know, some places have become and that is like opening up the door for, you know, the consequences that a city might face. But on the other hand, if we pray and if we see city transformation, then, you know, we can trust that the blessing of God will be real in each and every city. So these are just some insights for us to understand about cities, about God's heart for cities and how, you know, he really wants to work with them. So now that, you know, we are part of a city, is it okay to, see till now we said pray for your family, pray for the church, pray for the set of believers, which is all biblical. Is it biblical to pray for the city? If we take time, you know, one prayer point, we say, okay, I'm going to pray for God to bless Bangalore. That's the city that I am from. Is it biblical? Very much, right? I can pray for the city. I can pray for the needs of the city. I can pray for the community, communities that exist in the city, you know, so on and so forth. So I remember there is this program. It's called the secret place. Okay, the secret place. I think APC in Bangalore, they did it for some time where there used to be intercession and worship in the night and also particularly for the city. There will be many prayer points that people will pray through. And then later on it was adopted into the missions program where we would also go and pray in other cities. So I was part of a few of these sessions. One was in Mysore. I remember one whole night we prayed for Mysore. And there were a lot of points which we had worked on for Mysore. So basically things like, you know, what are the areas that are doing well? Okay, let's continue, pray that it will continue to do well. And what are some of the challenges in the city?  But yeah, you understand, right? So whatever issues are there in the city, those were listed out. So specifically we prayed. Okay, these things are happening. So let us pray that God will change this and people's hearts will turn around. And I remember once we had this all night prayer in Varanasi, where we had listed out. Okay, these are all the specifics to do with Varanasi and, you know, that region. Let us pray. Okay, let us ask God to intervene in these matters. So it was very, very focused to bless the city and for God to move upon the city. So in that way, you know, we can engage in prayer. God might also reveal to us that are all, I'm sure when you study about missions, you would have come across a lot of resources that are organizations that also map cities. Okay, where they can help us understand what are the different communities that are dwelling over there. What is their belief system like. And you know how to pray for these communities. So all that we can understand mainly to pray because the scripture does tell us that we must pray for our city, the groups that live in our city, the communities that dwell in our city. And, you know, just go ahead and trust that God will do a mighty work in our city. Yeah, so there's an encouragement in our notes here where it says that as God puts the city on our hearts, maybe God might say something like, okay, I am also more specifically calling you to pray for your own workplace. Or it could be, you know, your own set of friends in college, or it could be, you know, you're working in an IT park. Maybe that entire IT park God just gives you a burden and says, okay, you pray for all the people who work here. So just be sensitive to that. You know, how do we, how we want to, we want to bless the whole city, you know, we want to preach the gospel to the whole city. We want revival to touch the whole city. Yeah, that's true.  Okay, and that is something we can all do. Maybe our apartment complex, God says, okay, why don't you start praying that, you know, people will come to know, come to know me, that there will be those who come and sow the seed of God's word in their hearts, people will be healed, they will see the glory of God. So whatever God puts on our hearts, even if it is for like a small group, we can begin to start there. And God might show you, I've heard of testimonies where people just start with prayer. And then later God opens doors where they have, they've had Bible studies.  So we don't know, we don't know which way God will lead, but we are only here to obey what God is telling us to do. So if God puts a small community or a group or a unit on our hearts, the right thing to do would be to start praying. Okay, for that. And then God to lead us further. So in this manner, you know, God works on all of our hearts. And you know, as we pray, God's desire for the city will be fulfilled. Yeah, so that's a little bit more that we've understood about the city. One more aspect that I want us to understand is like in scripture, we see that some cities responded to what God was doing. Like Nineveh, we just saw that when Jonah went, he preached, they responded. But God was so upset with Jerusalem. And he said, Jerusalem, you did not recognize the day of your visitation. You were so caught up in your own life that you did not recognize what I was trying to do in your midst. So we see that, you know, there is a response required from cities. There were certain cities that responded really well. Even when you read the book of Acts, you know, Ephesus, there is all kinds of worship going on. But when Paul goes, he does the ministry.  But they all came, they burnt them. And you know, there was a revival basically in that city where the hearts of the people were turned towards God. So that's what we call a revival. So a city like Ephesus, it's all a revival. And there are other such places we can look at whenever the word of God went there, there was a response required. And some cities had that response where they put their trust in God. But then there were others, they did not really care about it. God wanted to do a work, but they were resistant. It's unfortunate, you know, when Jesus was also doing his work ministering. He went to some towns and he said, I can't do here because of their unbelief. He could not do much because of their unbelief and he just left that place. So collectively, what's happening in that place, in that region, people's hearts are far away from God. Okay, so the response is not a right response, which the city is giving. So God expects a response from the cities and wherever there was good response, there was repentance and turning towards God. We know that there was a revival or God's blessing came upon that land. Then we also noticed that God sent people to prophesy over cities. Even today, you might hear certain people bring a word from God over a city or over a region. It's there in scripture. You read Jeremiah, he says, okay, Jerusalem, talking to God's people. So God has a word for the city. God has a word for cities. And that also is something that we observe. So I know it's not connecting. Everything is not flowing as such what I'm sharing with us. But I'm just giving us a picture about what cities are like and what God's heart is for the cities. What and all we see in scripture with regard to cities. So there were prophets who prophesied over cities. Now that also tells us cities and also nations that tells us that God has a plan. Okay, God has a purpose for the nation. God has a plan and a purpose for the city. So when a word comes, this is what I'm going to do in you in your midst. It tells us that there is an intention for us to pray a line to for us to work in line with. So God has a plan and a purpose just like he has a plan for an individual also for families. He told David, I'm going to do this. You will not lack someone on the throne. So he had a plan and a purpose through David and his lineage, his generations, his families. He had a plan in the same way for cities, for communities, for nations. God has a plan. God has a purpose. So there are prophecies that are made over cities and nations. Then those cities that responded even though they were sinful, if they responded, they were forgiven. So Ninevah again is a good example where, you know, there was a positive result. But those that did not respond to God, PC judgment. So going back to Sodom and Gomorrah, they did not and they lived on in their sin and they were judged. So that is also something we can keep in mind. So if our city does not respond, what will be the end result? Obviously, we don't want judgment, which is why as God's people, you and I, we can pray and we can ask God for his mercy. We can ask God for him to open up the hearts. You remember in the last session when we said that God, we want people to be saved. How to pray for them? One of the ways is that we say, God, you know, you work in their hearts. You let the father draw them to himself so we can pray all these prayers and say, Lord, you do a work. You change the hearts of the people so that Lord, the sin which is there in our city, it will be taken away and that your blessing will come upon us. Now, about the sins in the city, again, you know, there is so much we can discuss. Noticeably, right, there are things that get God's attention. You know, every sin is a sin for sure. But then, you know, like when you talk about Sodom and Gomorrah, we see that sexual immorality, something that God, he was like, I just have to destroy. That's it. It's so corrupted, the hearts and the lives of the people. Judgment was like, okay, wipe it out. Wipe out those cities. So, you know, there are these sins that we can see God dealing with as you study about cities. So today, for us, right, we're all from, I think, most of us are from cities here. And we are aware of the sins of our city, right? So what should it do to us?  It's normal. Things are functioning normally in the city. What can go wrong? Nothing can go wrong. But in the spiritual realm, you know, the way God looks at the city, it's not that these things are going unnoticed. It is coming up to God's knowledge. But we as God's people, we have to pray and we have to cry out for mercy and say, God, we know. We know all these evil things are going on. But we pray that there will be repentance, that you will open up the hearts of the people and Lord, instead of judgment, that we will receive a visitation from you. So in all these ways, right? We just invite God to work in our hearts and help us, you know, seek for the blessings upon the city. So cities and nations, based on the response they're either forgiven or they go through judgment. And that is kind of scary for us. Now, another thing that we can notice is that cities and nations, we will see in the kingdom of Satan, you know what he does? Do the natural kingdoms that exist, okay? On the earth we have nations. What he does is, parallely, he establishes his hierarchy. So if there is a Persia, he has a prince of Persia to interfere in the things of Persia, right? So basically what is it? Basically demonic interference and regional, territorial demonic influences are set up in the kingdom of Satan because he wants to bring destruction in the cities. Just as much as God has a heart for the cities, Satan has a heart for the cities. God has a heart to bless, he has a heart to destroy. So he knows, okay, through these spirits, these are the territorial spirits and if he has open doors, if he has a crack to come through, then he's more than happy to come in and cause damage, cause destruction in the cities. So we notice that there are demonic principalities and principalities are like the rulers, okay? They are in charge of cities. But there are, again, other spirits under them whom they will employ to cause destruction in the cities. So what kind of things happen? They can cause addictions, they can cause immorality, they can cause disobedience, they can cause violence, they can cause poverty, they can cause diseases. So all kinds of things, oppression, mental issues, any form of oppression they can cause, right? So that's their job. What is the job of Satan? Steal, kill and destroy. So that is the assignment which these principalities have over cities, over regions, over communities. So they are just out to destroy and we see that in the book of Daniel, Daniel chapter 10, when Daniel prayed, remember when we talked about persistence, persevering in prayer, it took 21 days for the answer to come to Daniel. God had sent it, the very moment he prayed, the answer was sent. But what was stopping the answer from reaching Daniel? It was the principality over that region. So the angel comes to Daniel later after 21 days with the answer and says, who stopped me? It was the principality. But the prayers of Daniel, the intercession of Daniel, kind of, you could say, allowed the angel to fight with these principalities. So there are demonic principalities over regions. We are also told in Revelation 213 of Pergamos, just a moment, let me just quickly check that reference. Yeah, it's about a place called Pergamos where we are told that the Satan has his throne, as if it was not good enough to know that there are principalities over cities. In this place called Pergamos, Satan always tries to gain ground and he has gained so much ground, we are told that he's sitting on a throne in the city. So what kind of a city was it? How destructive? How sinful? We don't know the details but we are pretty clear that Satan is ruling and reigning over that land of Pergamos. So do we have demonic interference over cities? Yep, we do and we should not ignore that. So while we are headed towards bringing the kingdom of God, towards praying for revival, towards praying for God's spirit to be poured out, for hearts to turn towards God, repentance. We are crying out for all these things but at the same time Satan is very proactive. That's what we read in scriptures. He's going about like a roaring lion, waiting, watching. Whom can I devour? So he's actively working against cities. He's working against groups of people. He's working against communities to destroy. So similar to what we said when we pray for the lost, there are two aspects. One is we pray and we say, okay, God, you touch their lives.  At the same time, the other thing that we do is spiritual warfare because there is interference. So I like to look at it like this. When we are watering the plants in our garden, if you're using a pipe, we water them. So that's like prayer. We have to pray. Then the growth will come. The results will come. But if there are holes in the pipe, we have to block that. Otherwise, what will happen? We are praying. No doubt. We are doing our part. But what is Satan doing? He has punched holes in the pipe. So that is spiritual warfare where we recognize, hey, there is interference here. I have to block it. How do you block it? You have to go against the enemy. How do you go against the enemy? Use your weapons of spiritual warfare. Take up your authority. Take up all the parts of the armor. Put on your armor. Engage in battle. And in that way, we are plugging all those leaks. So two aspects. You pray and you also do spiritual warfare. Similarly, coming to the cities, when we are praying for the cities, there is a very definite demonic influence. Later on, we will see that while praying for cities, can we pray at an individual level? Yes, we can pray. But it is better to pray in a collective way for the city. That might mean that a couple of churches come together or many churches come together. Many church leaders come together and you pray. That is very effective because there is the power of agreement in the hearts of the people, which is incredible. Especially when there is demonic interference. When we pray collectively, as the body of Christ in the city, it is extremely powerful. So these are all aspects that we have to understand when we are talking about cities and how to pray for cities. So the point I was making so far is that Satan has an interference. He can have a small interference or he can have a huge interference like Pergamos, which is a stronghold. So I just want to also share one city that I had gone to. It is here in India only, South India. I had gone to one city and I was told that they engage in a lot of certain kind of worship. It is a holiday destination. But there is also all these centers where they practice a certain form of worship. So when we went there with my family, when I went there, it was so real that I could sense something about that place where you know that there is a demonic influence over the place. So I am just giving you an example, not that it should worry us or anything, but it's real. And for us, it's not, as believers, we know our authority. And I already shared how Satan has been defeated. He has been destroyed. He has been evicted. So he has been dethroned. So we are fighting a defeated enemy. And again, I shared how God and Satan are not equals. God is self-existent, eternal God. Satan is a finite created being. So there is actually no comparison between God and Satan in that way. So as believers, when we understand all these truths and we notice demonic influence or interference, we shouldn't get scared. In fact, we should be the ones who say, hey, I am carrying, like you know how Paul and the missionaries, they went to different cities, wherever they went, they were the ones who shown the light of God and they preached the gospel and people were saved and the glory of God came upon that city. It came upon the land. So we can, in that way, God, Jesus will build the church and the gates of hell will not prevail against it.  But I am just telling you, the strongholds of the enemy do exist. And we must not ignore it. You know, Satan, he will be happy if we ignore it because then he knows that we will not engage in the second aspect, which is spiritual warfare. We will only pray and forget about it. But there is demonic influence and we have to just be aware, basically be aware of it. So I remember that particular place and thinking that, wow, everything that I have learned in theory, these things are true, these things are real and I must really pray for this place. So yeah, that was from my personal experience. Now, God wants us, his people to stand in the gap. We've looked at so many Old Testament references where God said, I am looking for one person to stand in the gap. If my people who are called by my name seek my face, pray, and all of that, we've seen all that. I pray for the city where I've planted you. There's also some to it which says, ask of me and I will give the nations. And I'll give you the people for your inheritance. So God is giving us that privilege, opportunity, and authority to ask so that we can influence. It could be spiritual influence. Remember we talked about intercessors and we said intercessors have a ministry which is important just because we may not know intercessors and it's a very quiet sort of a ministry that God calls people to. We should not think that they are insignificant, but we have a very wonderful role to play. So in prayer God is saying, ask of me and I will give you the nations. Wow, what a privilege we have as intercessors. Again, it takes me back when I see Sam 2.8. It takes me back to years ago as a child in school when I was born again. I remember listening to this and thinking, is it really possible that God can take us to the nations that we can minister to the nations? And that day I was listening to a song. Those days you had the tape recorder in which you put it and I had some of those tapes.  So one of those tapes and one of the nice songs which says ask of me, I will give you the nations. And I was thinking and I got like a picture in my mind like a vision where God was showing, yeah, it's possible. And it was as if I'm seeing people from different countries. And that God is able to give opportunities to minister to people from different countries.  So when I just like now when I look back, right, those days, we never even knew that certain things are possible. Just think about it now. We are here with the internet and this class, online class and people are connecting from different nations. So it's all too amazing the way God works. And just for me in a personal way, I feel like one prayer, God, yeah, we're asking for the nations. We're asking for India. We're asking for some of the nations maybe listed here, represented here, Ghana, different nations. God takes all these prayers very seriously. And that's the point I wanted to make. I sense that in my own life in my own journey that it's all serious. We think that how will it happen? But God has a way of doing these things. We just have to be sincere and he says, okay, pray for your city, pray for the nation. He can make us an influence. Now, I don't know in which way maybe some of us will end up being preachers and teachers and all, but even if it's not out there before the people, just that ministry of intercession, it's so powerful. In that we are able to see God's work upon the nation. In that way, God can give the nation to us, isn't it? One more incident I remember this was a group of people who pray for the nation, pray for India. And they've been praying for many, many years. And I had the opportunity to be a part of a conference where the leader of that ministry, like he came to preach in one of the sessions. And he talked about the nation, he talked about the burden for the nation, praying for the nation along the lines of his ministry only. But the way the presence of God took, it was a large gathering. There were thousands of people in that gathering. But when he began to minister, we could sense the presence of God, right? And what was his, one of the primary things, intercession. And we wouldn't think that, okay, you know, he will, like you get what I'm saying, right? Even as an intercessor, like we could just sense the presence of God upon his life and that ministry that was praying for the nation for years. So basically, I'm just trying to say whether it is in a notable way or public way or even if nobody ever comes to know that we are praying. God has called us for this ministry of intercession. Don't doubt the influence that we can have through our prayers over groups of people, communities of people, you know, over cities, over regions. And it is a great blessing. So pray and ask God, if He burdens you for a region, you say, God, I don't know how you're going to use me, but I'm saying, yes, ask of me. I'll give you the nations. I'm just asking God, my job is to have a heart like a child and say, okay, God, you do it. That's all, just do it.  So why are we still here on the earth? Believers, children of God, to bring the kingdom of God on the earth in our city. We can pray and we can say, Lord, let your kingdom come. You remember when we prayed for the family, we said, okay, Lord, let your kingdom come in my spouse's life. Let it come in my child's life in my family. We can also say, God, let your kingdom come in my city. Let it overtake everything, the sin that is happening in my city, the injustice that is happening in my city. Lord, Jesus taught us to pray, thy kingdom come, thy will be done.  He wants us to pray for our city. He wants us to pray for our region. So, you know, this is a really beautiful study. What we will do is we will continue with it tomorrow. We'll touch some more on, you know, how to pray for the city and all that. So let me just pause here and leave this time open. Anything you want to add or testimony you want to share or a comment, question, feel free, feel free to do that. Yeah, I hope it's, you know, you're getting something out of this. Yeah, sure. Yes. Yes, Nicholson, go ahead. Yeah, thank you. Thank you, Klaas. Hello, Pastor Naiti. You have a few questions. One is, I'm sorry to put you in this spot, but I just wanted to know after that trip in Mysore, did you all follow up and know if there was any change in the city? And that is one question. The other one is you had mentioned last time that fasting and prayers to build faith. Okay, I just wanted to, like, what we fast and pray for deliverance of cities also and people, so is that correct as well? Yes, yes, sure, Nicholson. Thank you for the two questions here. Yeah, the first one, did we follow up and did we see a change? In fact, we'll talk about it later. When it comes to cities, I think it was a good beginning, Nicholson. I know that since, like after that, people were just open to this kind of intercession. And in that particular meeting, many pastors and leaders had come together. So it was one of its kind. That wouldn't happen in the city a lot. So by itself as an event and a program, it broke ground. But to go back and check on the specifics of whether something changed, I'm just simply saying if there is a crime in the city, if crime went down, we haven't followed up in that manner. And also, when it comes to cities and praying for cities, sometimes for us to see the impact, it takes a while. We have to engage for a certain period of time. So yeah, definite change, like notable change. I can't tell you that we have seen that or we have checked for that. But we know from the testimonies we heard, we know that people were awakened to this kind of prayer and intercession. So that much information I have. Okay, so I hope that helps. Yeah, thank you. Yeah, sure. The second one. So you're saying that fasting, does fasting help? And is it required? Yes, yes. Yeah, sure, for interceding for anything that God burdens us with, when we want to pray with greater faith, fasting always helps. And not right now, but in the next class, I'll try to share some examples from the world around us where people have fasted and prayed. And they have seen an impact. Even when we talked about Father Nash, you remember in Charles Finney's ministry, they would go and travel in prayer. Many of those teams that went out to pray for cities and regions, they would engage in fasting. And a lot of revivals also, if you study the revivals, there is definitely an element of fasting in many of them. Now fasting by itself, we are going to study it and understand what is it and all. Yeah, it's not to say that only if you fast, you're going to see a revival. No, it doesn't work like that. But is fasting associated with praying for the city and the breakthroughs that come very much? And I'll give you some specific examples in the next class. Thank you so much. Yeah, sure. No problem. Thank you so much. Good questions there. Anything, any other questions? All right. So what we can do is just mull over these things. And if you have the time, go through the notes. We'll continue from here. And if you have anything to clarify on the same topic, we can do that tomorrow. So let's close right now. We will close with a word of prayer. I would like to request someone to lead us in prayer. Anyone, please feel free, jump in and pray. Yes, yes. He opened it and you're closing it. That's great. Yeah, I really appreciate your enthusiasm. Yeah, go ahead, please. Father, we come to the throne of grace. Thank you for this day, Lord. Thank you for the session, Lord. As we have learned about praying for our city, Lord, all the students who are here, Lord, we are surrendering our cities in your hand, Lord. Do whatever as you have planned for our cities, Lord. We pray for the city of Bangalore. We pray for the city of Delhi. And whatever and whichever places you're, Lord, we are from Lord. We give it into your hand, Lord. Do as you have planned for the city, Lord. Do as you have planned, Lord, in our lives, Lord.  Thank you for this day, Lord. Whatever we have learned that it should be visible to us and we should make an example for others to believe in, Lord. In Jesus' name, we pray, amen. Amen, amen. Thank you, Sudkano. Thank you, everyone. God bless you. Have a wonderful day. We meet again tomorrow. Take care. Bye for now. Praise the Lord, ma'am. Thank you. Thank you. Praise the Lord. Praise the Lord. Thank you. Bye. God bless you.


So how many of you know what Simply Test Me is? How many of you use it? Okay, cool, cool. So we're going to talk today about Simply Test Me and, you know, all of you are our target audience because the whole goal is to lower the barrier to Drupal, contributions and the learning curve and that kind of thing. We did recently change the way our website works. So we're going to talk a little bit about the future of the project, what we're currently doing, and then a road map moving forward. There's three of us. There's Matt, there's Adam, there's me, Amy June, title, camel case, always one word. Amy June, please. No, not my first time. So I am a community person. I work on Drupal contributions, but I am not to be reductive. I am not a coder and I'm not a programmer. So when I got into Drupal in 2016, I worked for an agency where I audited modules and I did simple tests on the code and stuff like that, but I could never figure out how to get a local environment going and I discovered the Simply Test Me project. So I am passionate about the Simply Test Me project from a non-code or non-programmer point of view. Not only because, oh, well this is what we're going to talk about today. I'm going forward. You can see where new mission, the history, Drupal 9, our new framework tugboat, future directions, and then plenty of questions at the end. But going on about the vision and the mission is because I'm really excited about Simply Test Me because Drupal is hard and creating a local environment six years ago was even harder than it is today. So having this framework built where I didn't have to have an environment on my machine, I could have a browser-based URL that I could spin up in five minutes, test, make some configuration changes, share it with the team, it really helped me get into Drupal development. So the idea behind Simply Test Me is to create this browser-based environment not only to evaluate and install and test out these Drupal instances and modules and installations, but also it works in the issue queue. So you could spin up an issue or spin up a site, paste a patch, and be able to test a patch and know whether or not it worked within five minutes. And that's spectacular for someone who doesn't spin up local environments, you know? So the last thing I want to comment, and this isn't something that's maintained, there's a project called Dreadator, and you can use it sometimes in Firefox and sometimes in Chrome depending on the day of the week and how the internet is feeling, but you can download this extension and it injects some buttons into the issue queue. So if you don't have Simply Test Me or Dreadator installed, it looks a little bit different, but you can see that now we have the Simply Test Me button in our issue queue thanks to Dreadator. And this is a really nice thing because, you know, I mentor and I help people get involved in Drupal contributions, and they don't have a lot of time, you know, they have five minutes, they have a couple hours a month, that kind of thing. They go into the issue queue, they find something with a patch, they can hit this button and would five minutes be able to test it. It's like a really spectacular thing. The review button and the embed button are Dreadator-related things that don't have to do with Simply Test Me, but that button makes wonders. So, you know, Adam took over the project and he's going to talk a little bit about when you took over the project and how some of the values changed, but really it comes down to, and I say this a lot, lowering the barriers to entry. Drupal is hard. So, not only for contributions, but the learning curve, you know, to be able to spin up and understand how to use a contributed module, figure out some of the configuration in the admin UI on a throwaway site. So, it definitely, you know, the learning curve goes up and then the barrier, because some people don't have a machine that is capable of having a local Docker environment, you know, so there's all kinds of reasons why people can't have these local environments. So, it actually increases the inclusivity of people who can write code for Drupal, who can contribute code for Drupal. And then it's a community project, you know. So, we have this project that all of us in the community can use. We use it at Drupal cons. We use it at Contribution days. We have teams of marketers that can put together landing pages and show a URL across the world. And then, most importantly, you know, it's that tenet of being free, you know. It's open source. You can see the code. You can look at it. You can look at the framework if you want. You can do something new with it, you know. And I'm the contribution community person, so I want to talk a little bit about how we all can contribute, because it's very exciting, because you don't have to be a coder to contribute to SimplyTestMe. Anyone can contribute to SimplyTestMe. We have a community project on Drupal.org, where we give people community credits and incentivize the contribution process. We have a dedicated Slack channel in Drupal Slack, SimplyTest. We are in there every day. People report issues. People are, you know, we have an issue queue for issues, but sometimes they're just like, hey, is this really happening right now? So, there's a lot of conversations in there. We talk about what we're doing moving forward. In Contrib workshops, you know, we are promoting the get pod and the merge request stuff, but there's a lot of patching still going on. So, it's a tool we utilize when we mentor people, because again, first time contributor workshops, do we want to spend three hours setting people up with a local environment, or do we want to set them up for success and have a five minute spin up and test a patch? And then Google Summer of Code is something we've done in the past. Not sure if that's going to be something we work on in the future, but that was something that, you know, we helped elevate and we reached out and made sure that we had different sorts of people contributing to the project. And that's another really important lesson in our community is when we did this new framework, you know, we utilized the skills of marketers, designers, programmers, and people who use the product. And it's really that case use of everything in open source and Drupal that everyone has something to contribute and everyone has something to learn. So, we can talk more about that at the end, or you can like ping me and figure out how you can contribute more. But Adam and Matt are going to talk about the future and where we are and what's going to be next. Okay, so we're going to talk a little bit of a history lesson here. And it has been a long road for this project and we'll get into it, but I think we are in a really good place now. So, for some of you history buffs, at least some of you have been around in the community for a long time. This project really came to be very shortly after Drush was launched. Just to give you a kind of a, you know, a benchmark. And it dates back to 2012. I had to go to the Wayback machine to find the dates. You know, always love doing that. And we found some good gems like you could see a screenshot from you know, I think it was like late in 2012 when SimplyTest was launching. You could see it had a very minimal set of features. There was no patching. There was no anything like that. But it had its basic search capability and the ability to launch a sandbox. It was created by Patrick D, Patrick Drautloff. And to give you a kind of a benchmark also, it was released kind of between like the Drupal 6 and Drupal 7 days. So roughly in that space and time frame. And it was really kind of before a lot of like the DevOps movement started and automation and things like that. So in my opinion it was actually way ahead of its time when it was launched. It was a really valuable resource I think to help community members really hit some of the goals that Amy June was covering. So, this is a pretty technical slide but the flow kind of makes sense and when we look at the early architecture, again, there wasn't a lot of infrastructure as code. There wasn't any DevOps. There wasn't virtualization. There wasn't cloud computing. These were kind of really, really, really early days of when those things were kind of coming about, right? So, SimplyTest.me basically was a fully custom built system. And it had multiple servers. They were bare metal servers. One was for the web server and then we had what we called back end servers. We pulled information from Drupal.org from some of their APIs back when some of the XML feeds were created on Drupal.org as an example. Again, we're really dating ourselves here. But we had this web server front end that ran at Drupal's site. We had these worker servers that were on the back end. They were load balanced with this custom logic and this Nginx routing and all kinds of fun stuff. And we made use of it in the really early days before containers were really kind of taking off. SimplyTest.me actually used LXC, which was a precursor of Docker, and was routed with HA proxy. So again, when this was created this was very much ahead of its curve, okay? An extremely modern and extremely innovative. And it worked out really, I think it was great for the time. But times change. As the system went on, the technology and the community, cloud computing, virtualization, containers, Docker even came about, Docker Hub came about, all kinds of things changed and it evolved. The whole technology space that this played in evolved, including DevOps, right? So SimplyTest.me became very fragile and very dated by the time I took it over, basically. And when I took over the project Patrick was ready to move on. Systems hadn't been updated. New versions of Drupal hadn't been installed on SimplyTest.me. Lots of bugs, lots of problems going on with it. But it had an extremely heavy maintenance burden. When you're having bare metal servers that haven't been updated in several years, those systems were going down all the time. Logs were filling up. It was really crazy. And SimplyTest.me is not just an open source project. It's a service. So we had a very heavy footprint of actually running and maintaining that for the customer service, believe it or not, right? People would ping us and say like, hey, this is down or hey, this isn't working and this thing isn't going. And it was pretty chaotic. And there was lots of system administration and lots of updates. It wasn't keeping up with some of the newer Drupal versions and some of the newer tooling. So it was a little bit crazy. I love the image in this, by the way, because it was perfectly summarizing kind of like the state of my mental world at that point when I took over the project. It's like, hey, keep this system running but it needs to be fixed. And I'm like, no, I'll just keep fixing it. But I knew deep down that we needed to do something much more drastic and modernize it far more than it was. Another major limitation back then was we actually had no development servers. So anytime that we were changing stuff or building stuff, there was a very high likelihood we were taking down the systems as we were doing it, which is really wild. We also had no contributors in the whole ecosystem of SimplyTest.me except for me. And we had no money. So it was about the worst kind of circumstances that you can kind of take over. But we tried to make the most of it, right? So then a new maintainer came and that's me. And Patrick D decided, hey, it's my time to move on. I'm ready to do other things. But for me I talked to Patrick and I said, hey, I really want to preserve the community aspect of this. I want to make sure that it continues to be open source driven that it's maintained. I have a vision for where I want to go in the future with this. And in 2018 I took it over and my goal was to continue to honor what he set up at the beginning of the project and try to make it better and improve upon it. So I set on this course for, I call it revitalization, right? Like we will build a new, you know, chart a new course. And so I had a lot of goals. Like I wanted to make sure that it was easier to maintain, more actively maintained. Amy June came in and really started helping with marketing. I set up an open collective so that we could actually raise funds from the community and pay people to do work, which I believe in. Centaro actually paid for a whole new feature called OneClickDemos where you could click on a button right on the UI and it would automatically spin up a site right away. And the folks from Tugboat, which we'll talk a lot more about later, we set up our ability to completely remove all of our worker servers behind the scenes that were extremely fragile and replace it with an ephemeral container driven infrastructure, which was awesome. So that was the kind of initial scoping of this revitalization and even since then we've done significantly more. So this section I call our new Simply Test. I'll start with a few and then I'll pass it over to Matt who is going to get into all of the technical weeds. The great news here is I want to start by leading with this is about six to eight months ago I think. How long has it been now? Someone help me out. Last one. Okay, so I was wrong. All right. So it's been over a year we launched an entirely rebuilt Simply Test me from the ground up completely. And this was I remember the day that we felt it was ready enough to launch, right? And I like pushed the button to switch over the DNS from, you know, the old servers to the new one and it was like this huge sigh of relief. It was like, yes we did it. And so this image of like the ship it, I'm like, yes we shipped it. It was so cool. So some of the tenants though that we were looking at with where we went is we really wanted to kind of get more into the agile space and leverage a lot of the new and modern DevOps philosophies as part of this, right? So if you kind of look at what Simply Test is doing, it is kind of like a CI CD system, right? It's automating deployments. It's, you know, you define what you want it's using a lot of infrastructure as code. But it's very similar in practice and in principle to what a DevOps system is doing and it's using now a lot of ephemeral infrastructure with a tugboat and everything like that. And Matt really came in to help establish this like really good microservices architecture that helped kind of build a lot of interoperability between our front end and our back end systems. And so it was a really, really good fit as we were going forward. But the main goal that we set out to do whenever we built the new version was we wanted to completely eliminate all of the nonsense maintenance that we were doing because we believe we can add more value for the community if we only focus on the application, right? If we hit that and everything else is automated under the hood, all the maintenance all the, you know, systems, all the servers, etc. This would actually position us to focus only on adding value for the community through the Simply Test Me application, right? So this was our like mantle as we were going through this exercise. We had a lot of, and I know Anna Laura is here. I don't think she's in the room, but she's at Drupalcon.  She did a whole new design for us and specked out a whole refresh visually from where we were. And if you remember the screenshots early on, when you saw on the slide, this looks a lot different, right? And she really cleaned it up. She did an excellent job. She did like mobile mocks and everything like that. And kind of cleaned everything up in this. And we have a whole new design. An entirely new theme. Fresh look and feel. We actually added features even with the new theme. We did a usability test at mid-camp like years ago on this design. We added a couple things that we thought people wanted. And so major props go to Iris of Beckway. She works at Civic Actions. And Anna Laura, who is definitely you'll see her around the conference. And then what we did, so we do honor our open source roots. And we're doing that a lot through the application. All the code is open source and everything like that. But I think one thing that we always kind of juggle in our minds is like, well, we know that vendors and they're kind of offering things that we could benefit from as a service. And so we opened up an RFP to basically allow any community partner to bid on our pass web server. Because we didn't want to maintain the underlying servers, right? So we opened that up. We expected it to be a sponsored thing. We had a committee. We reviewed all the submissions from the people, the companies that submitted for that, right? And we chose AMAZEE, Lagoon. It hit all of our needs with CICD and a lot of the maintenance things. They also have a really cool edge layer and a good logging feature that we just are kind of gradually turning things on. So it's been a really nice thing for us to do because it allowed us to completely replace a legacy server that we were maintaining by hand. It offered some really good features for our own development to be able to spin things up in more of a rapid development approach. And then it also helps too because it's a standard, right? Like many people have used the system before. So it actually helps to kind of lower the barrier for anybody that might want to help us or configure us that part of the system. So it worked out really well. And we got things like SSL certificates and edge balancing and logging, which were major gaps of what we had to do manually before. And we kind of get it a little bit more for free with this type of an offering. So it was a good win for us. Even though, you know, again, we do try to focus a lot on open source, but this is an example where we felt pretty strongly, we didn't want to reinvent the wheel. Alright, I'm going to be turning things over to Matt. When we did a lot of this, we set up a Drupal 9 system. So I'm going to give it to Matt to take over here. And he's going to talk a lot more about the technical bit. Hey everybody, I also wanted to mention about Lagoon. What's cool is they are now, I believe, Amazes Lagoon is part of the CNCF, the cloud network, whatever, whatever that is. It's like the cloud foundation, which is really cool. So it's like about Drupal 9 in the new front end. It drastically reduced the architecture because we could use OOP in Drupal 9. And we also decoupled the logic for the form into React. I don't know if anybody has ever gone down the rabbit hole of nested forms. My work with Drupal Commerce and Checkout, I have been to the seventh layer of Form API. And being able to move that logic out of Drupal's Form API into a JavaScript framework, which is reactive, it helps improve that. We could write just a back end code there. And also leveraging tugboat. So one thing I want to mention, like with tugboat, honestly, simply test at its core isn't that hard of a piece of software on paper. Take inputs, build, run file, push it to service that runs it. And if anybody here has used Kubernetes or cloud run with like modern DevOps, right, Docker file, boom, runs it. But as you start going down and down and down, running that is quite hard. Okay, so the Drupal 9. So let's go into the more technical bits and I'll expand on some of that. So I said Form API is very verbose. It has limits. I said with like the address module. I don't know if many, most people have experienced working with the address module. But right, you pick a country and then you get the address format and all that. Now imagine that form three layers deep and Drupal Ajax has certain limitations that you just cannot bypass. For instance a select list in Ajax can refresh your form but does not update form state it must be triggered by a button otherwise Drupal forgets itself it has a little bit of amnesia and your form breaks. So to be able to build a form that lets you pick your main project additional projects apply patches what version of Drupal core is the umami demo supported because before it wasn't an 8.5. And what if you want to patch your additional projects and then we need to add merge requests. That's a lot that we have to manage. So being an abstract that into a JavaScript application just made it more well it's still hard to manage but it's separated from Drupal's form API which has its own complexities. So it allows it to have that robust form with all the nested options and just the business logic. So if somebody is a JavaScript like expert well they're just managing state right this form needs to build this object and send it to an API request. That's the contract. And then the PHP site says I receive this and I transform that into a run file in this case it's a tugboat QA build form and I mean it could be like a Docker file it could be anything but the front end doesn't care it just knows it needs to build this payload. So that has made it more maintainable. Having a reactive front end was critical for this project because of the experience it offers you know all of our customers right. So if you pick Drupal 10 you don't want to see things that are not related to Drupal 10. You don't want to be able to select options that aren't there. You don't want to be able to pick projects that aren't supported. That's one thing we reinvented Composer. Well we didn't reinvent Composer but the front end if you pick a module that doesn't have support for Drupal 10 you can't pick Drupal 10 as a version. If there's a module like let's go back a year that didn't support Drupal 9 this let us have an endpoint that said given project in this branch what compatible versions of Drupal core can I run with. So we have that additional projects too there might be a bug but technically you shouldn't be able to add an additional project if it does not have a compatible version with the version of Drupal core you've picked. So we have all that kind of semantic versioning resolving in our APIs as well which the JavaScript made a lot easier to handle. Benefits of the company. So this is the cool part too. So launching the sandbox is now just a data definition contract so I don't know who here knows about the type data API in Drupal core. Who likes to play with it and has gone down deep and used it beyond the entity API. Alright I know you have. So I'm a big nerd about the low level APIs in Drupal it's pretty amazing and essentially just the type data API if you use the REST module you might have seen it. So this lets you say this is the schema of an object or of an item. Think of it how like we have primitive types of string. You can have a string data definition and that allows you to attach constraints to it such as the symphony validation or symphony validator package that says hey this string is actually a URL and it must come from HTTPS Drupal.org or Drupal code.org so we can have a validation on patch URLs to make sure they come from a trusted source. And that we don't have to write custom code well it's custom code but we don't have giant if statements that say if this payload is here we build it in the data definition and we let Drupal just roll with it. So that has streamlined the validation. The original code before I jumped in so I was wrong about a year and four months ago is when I jumped in and we launched it about six months ago it was in the fall I think. So when I jumped in like there was some port for the D8 code but it was a lot of if this I'll stat. So moving it to a data definition reduced the whole incoming payload to just take the JSON request decoded to JSON pass it to the type data manager validate it if there's an error tell the front end hey 400 bad request if not send it to tugboat and complete the request. So type data is pretty cool if you're ever interested in it talk to me I'm a type data nut. It's a very low level API that does power everything in Drupal and it's one of the unique parts of it. Here's an example of that so hopefully simply test me as an open project can help show you use cases of these more obscure parts of Drupal core. So here this creates a property definition for the payload. So we have the project which is actually a project info definition the Drupal version which is a string the install profile manual install and additional projects which is actually a list of project value so you can get really nitty gritty in here like I have issues that say Drupal version should also check our database of Drupal versions to make sure that you didn't pass in like fake values same with like the install profile is your Drupal core version one that supports umami those are still some hard coded pieces of logic that we have in JavaScript in the back end because it was just printed but eventually I'd like to consolidate or you can help contribute to consolidate I should say and then this is the response so we get to decode we pass it to the type data manager we validate it and if there's issues we kick it back so it's if you are writing APIs in Drupal please use this as an example like let's say JSON API is not working need something custom use this as a reference like that's one reason I was really excited to write this as there isn't much of this in the wild so optimizing and refactoring so tugboat had some really great when Adam took it over and set up tugboat tugboat reads from a repo and that repo has to have a commit that pushes so in the back end there's a github repo that had 450,000 branches that I've finally proven down to 79,000 so it would make a branch it had the github SDK and it would go call the github API to make it a branch the commit of the file that would trigger tugboat and like all these extra steps but tugboat had API improvements that we're able to leverage we don't need to do that anymore we can say here's our base ref here's our config in the API request send it we don't have to make a commit on github anymore that was like thousand lines of code removed it was like one of those happy pull requests like we deleted a lot of stuff and there's even more that we haven't taken advantage of we use base previews think of it if you're used to docker how there's like a base image that has the cache of all the things those still needed a branch to exist that would be based off of in github now we can actually make a request for that so this hidden repo that you all don't have access to to contribute these base can now live in simply test so like hey the base images need to have zip this is actually an issue right now we don't have the zip extension so we can merge request that says all base previews should have the zip extension and on the next cron run once it's deployed we'll update our base images and it'll be all good to go so what the heck is tugboat so tugboat is a pre-production infrastructures code IAC it's a CI CD tool so you make a commit it builds it and then you have you have an ephemeral environment develops for all sorts of projects as a personal plug for I did a year on my own and every client I included this with their project because I don't believe in merging code until it's been signed off like you should have feature branches and this way I can send it to the customer and be like hey how does this look they give thumbs up QA boom production on Friday and have a have a mind time so to learn more you could say you could email them at hello at tugboat.qa or Jeremy's at James at the Lullabot booth right so Lullabot booth you can talk to him about tugboat tugboat was created at Lullabot and then is his own MST the tugboat preview configuration so I mentioned like docker files it's not like writing docker files it's more like writing like your github actions workflow yet manifest or circle CI, Travis CI it's like writing that you have steps to install things so we are working to standardize the generation into like a config generator right now to make it easier to maintain it's a giant array of random commands that get kind of squashed together I want to find ways to make that experience easier so that way it's easier to contribute to that build step as well so little little hairy but it's slowly getting there and one of the good things is it helps unifies custom builds and the one click demos because they were very separated before so now the one click demos are actually plugins in the back end and I want all builds to be based on plugins that just override the setup commands or the install commands so we are able to just use the same infrastructure the same build steps for those so the new tugboat API capabilities I did go ahead of the sense so we can create the API we can create previews over the API without making commits remove the whole bunch of code like I said now our base previews can be generated that way and one thing that is neat and something that Amy June brought up is technically tugbo it's not open source so the project is open source but integrates with the closed source project with how this is being built let's say a company wanted to run it internally you could write it's not there yet but it could be made to swap the back end that runs the preview environments that says hey launch manager or we created our preview or rather like hey launch manager I invoke this submission you could write your own code that says oh hey here's to build the docker file and launch it in my kubernetes cluster so the work with tugboat helped decouple a lot of that from the legacy application so that way you could write your own back end host if you wanted to improve build process tracking oh who hit this 113% weird error whenever something failed because it went on for a while so what happened is the old system would actually ping back to simply test me and create like an entry in a log table of the status of what was going on and in tugboat that was happening but when something went really weird it would like spam pings and end up at 113% because there's more records in the database so now what we've changed is we only have it at four steps so it's less granular but we actually just output data to the log and then read the log as it comes in so as it's building we try to give you a live preview of what's being returned from tugboat it doesn't track yet it's got improvements to go but it reads for our markers and then updates the status bar like oh are we at the installing step are we at the downloading or patching all that so the logs are streamed from tugboat and again if you're interested in this your that our api keys actually aren't exposed over that because we proxy it through Drupal and combine two api requests and like the responses into one so it's kind of like acts as an api gateway to tugboat in that regard um little relatable code base I said so work to be done it's working to become more relatable we have this weird dance where it's an install profile so it's on Drupal.org but we need a website composer template that's on github um so that's where it's still a little weird to contribute to but it's Drupal 9 it's oop it's javascript it should be somewhat familiar and we're working on improving that contributor experience and then the future with Adam again alright thanks Matt always good to dive into the technical bits he cleaned up a lot of the stuff that I was working on so I'm very grateful for him so one really cool thing is before DrupalCon we wanted to put on our best face for all of you we did a pretty big sprint in the last couple weeks right and we launched a whole bunch of new features and cleaned some things up so that it would be ready for all of your contribution here at DrupalCon we fixed a whole number of bugs that were open some project import things some UI things that weren't quite clicking we now offer Drupal 10 support which is awesome and that can be ready for you all to get Drupal 10 ready and core and everything like that we now have more projects so we can actually see a lot easier when things are not going well on SimplyTest so we can get some insights and start to prioritize things a little bit better based on what we're seeing in the logs and the error messages and we're pretty close to launching I think or getting close to it working towards it some better theming support where you can more readily install themes and have them kind of work more naturally on SimplyTest modules kind of work and themes have a lot more challenges behind it it's not quite as straightforward as a module but we're actually working to get better about that and I would expect that fairly soon and what do we want to do kind of looking for well Matt hit on a few with like the config generation stuff we want to work to get more like base preview support better cleanup better automation better abstractions to make the code a little easier to contribute to we also have a lot of cleanup we want to do I mean we really jammed on trying to get it kind of going but we want to refactor it to actually make it a little bit cleaner a little simpler better documentation in the code and that's stuff we're kind of doing very iteratively as we go but one thing that I also want to do is I want to start being able to report out analytics from SimplyTest me where anybody in the community could see how many projects are installed if it's you know if people are installing Drupal 7, Drupal 8, Drupal 9, Drupal 10 and also like be able to say okay these are the top projects these are the top patches in these projects etc and kind of report out like all of the information that is being used by SimplyTest which I think would be really cool for people to see like oh wow like this thing is this project is the number one project used on SimplyTest right it's good to submit things like hey you know in an idea queue you could say well maybe this module should be in court because it's like the number one module that's used in SimplyTest right so I want to expose that information same with patching because I think you know when you have a patch if it's not merged in yet it could give you some good insights of like what SimplyTest is seeing in terms of what people are trying to test and as I mentioned we do want to have some more automated management with base previews because we want to make everything more efficient we want to store as much as possible and then have that drive most of the logic of what happens behind the scenes with the infrastructure and a lot of that will be really helpful for ongoing automation things like you know new versions of Apache comes out a new version of PHP comes out we can run our tests we can do all of our automatic deployment you know break if things break we fix it we can clean it up so we have all of that in place basically and so it should be a much more streamlined and kind of automated system moving forward cool I want to thank all of you for coming that was basically what we prepared and if you have any questions I'd be happy to take them we all would yeah that's our yeah this business is being recorded I'll reiterate the question is about issue merge requests issue forks and merge requests so right now we don't have a native way to say oh given this issue select what merge requests are available but what you can do is go to the merge request in the URL type dot diff and that will create a generated patch for you that you can then copy paste into the simply test UI it is on the list there's just you know that's a decent work around it's not documented so take that knowledge with you and share until we get it documented but it's one of we need to decide like what is the interaction is it you paste an issue and then you select for the merge request or do we just let you copy a merge request URL and we'll slap a dot diff on it for you but for right now just go to the merge request type dot diff get the generated patch that comes in paste on the simply test and it'll should work so maybe that could be a good thing to test right now it does work when you do that I think one other thing that and props to the DA for you know adopting GitLab and things like that right we actually have a lot of APIs that we have metadata we can pull from which is great because like if we do want to make that experience a little bit better moving forward we have the ability to get the data that we might want right it's a little bit tricky as Matt said like there's kind of like nuance to it and so we're kind of trying to iron that out and it's very much in like an idea phase but we would love to talk to people to see if there's ways we can bring that home good question really good question I love that idea what other questions do you have yeah so it's extremely extensible right it's Matt kind of used the analogy of like a GitHub action right where you could basically run anything that you can on a standard terminal at certain events or certain times right and simply test me the whole system the Drupal application basically just writes out what it is intended to do like if a user selects a project or a version or a patch it writes the commands into that tugboat file that it produces its definition right and we have pretty much full control over it you know we have like base images kind of like the Docker construct right we pull from that and then we script those on an individual basis outside of that so in my opinion and I don't know if this directly answers your question but it's highly configurable we can basically write anything that we want into that okay yeah so we don't have this right now but let's say you're testing the Redis module we this would be hard coded I think we'd have to hard code this but say you picked Redis add a Redis service and install that extension for you say with memcached or solar so we by default only run in my SQL service but we could say hey have solar in it like I said my clients that I had before I had the tugboat run solar in my SQL and Redis so we could see production so we don't have that yet I don't even think there's an issue for it yet but technically we could even do that given these you know service integration modules Redis is the proper extension so that way when you install it you can verify that works I'm going to open that issue right now okay I think it would be a little hard to support everything you know and like from from me being the pragmatist and all of this I was like we could write any service we want yeah technically we can but it's one thing that to also support it and I'm a little bit leery of that but we can we can debate it I think some room to improve upon that and one very relatable you know thing that we struggle with perpetually is distributions okay that's why we created the one-click demo feature inside of simply test because it has its own definitions right and every distribution kind of has its own ways and means of doing things right like some use different parts of composers some don't like it's a little bit of the wild west honestly so it's there's no way for us to like universally support a feature like that in Drupal right so we made the one-click demos which actually can also imply to the core install profiles like umami and things like that so that's the construct that we use to implement that but there's many things that are kind of like you know more complexities inside of some of these things like the modules or the themes like we don't have to give an example right we don't have like native npm support to compile a theme right so we're actually like looking into some of that type of stuff to make the theming experience a little bit easier but it might only like if we launch it at first it might only support a few set of frameworks that are more predictable like hey we're gonna install npm and just look for certain heuristics like a package json file and run that right so like there's ways we're trying to ideate on making that a little bit smoother but no we're not like our goal is not to hit every edge case we want to make sure we're getting the big ones we want to make sure that we're hitting the most popular cases but it is extremely hard to get every single thing because Drupal is highly configurable the theming the modules you know the libraries etc and it can be a little bit of the Wild West but it's something that we're trying to just make sure we get a lot of the basics down right but this is we're defining this as a library so that I don't even know whether it's going to match up with a module but we're going to add some javascripts library and it's going to run up to the composer's kind of build the composer in the library that is that is native to some of Drupal's module like composer json type stuff as well right especially for Drupal 8, 9 and 10 so like we respect that like if you go and load the module right using composer like composer require Drupal slash whatever it can go and pull down all of its code libraries and dependencies and we're not doing anything that's off the reservation in that so if it's using those conventions it works fine now there are other things that I think are less common cases that no simply test me is not like looking for some more bespoke features in that regard that would make a make file that then simply test me can pick up on and pull everything into if you guys have a standard way that you're doing through the composer or something go to a module doing the module and say hey if you put this in your composer file then it will work and we do have that yeah so for 8, 9 and 10 yeah everything that's composer supported is usually fairly good and it can be not just Drupal dependencies it can be libraries or you know third party libraries Drupal make or drush make was also what we looked for foundation for Drupal 7 especially when we were trying to do distribution support in Drupal 7 a little bit easier in 7 than it was for 8, 9 and 10 but we did have some support for that as well if you go back and look at some of our old code from our old system you can see a lot of like these conditions looking for like the Drupal.org make and like the project.make file like there was all these like conventions that were wired in but we're really trying to move away from you know kind of supporting that in a legacy construct but you know I would say like the Composer Avenue covers many of those edge cases that drush make was intended to do before but is doing it really for you know more of the Drupal 8, 9 and 10 stuff hopefully that answers your question what other questions do y'all have? well thank you so much we will be here today, tomorrow so thank you for coming and have a great day