09-11-2009, 08:10 PM
Hi there, we've been working on an update protocol, which should assure updating goes correctly. What we've got so far is the following, feel free to give any suggestions. You have 4 days to reply here.
Update Protocol
To assure updating the LVP server goes fine without problems, we will be using an update protocol.
We want to keep the weekly updates, and we want to keep them at Sunday, so people will have some time in the weekend and can do some stuff. However, to make sure everything is welltested, and the gamemode we update to actually works, we’ve made this protocol.
So, let’s start on Friday, people are still developing, in the weekend, and will continue Saturday, they can still commit.
Now to make ourselves ready for the new version, a new branch will be created Sunday around 6.40 GMT. This branch will be created from the trunk folder, and will be used to finish the build.
So make sure all commits are done before Sunday 6.40 GMT, commits done after that will not make it into that week’s build.
After we’ve created the branch, we will compile that version, and upload that to the testserver. We then have a complete day to test the new commits, fix bugs we might find, and create a good final version of the gamemode.
After we’ve made sure the version works, we will compile it as if it was a real build, with the database details of the mainserver, and the defines set to what they would be as a real build. We also include an update to the /changelog command, and to the random announcements found in timers.pwn.
We upload this to the testserver, invite some people to play and test, especially edited things, and will see if everything works. If it does, this will be the final version of that build, and we can upload it to the mainserver.
Use SFTP to connect to the mainserver, goto the /Server/gamemodes/ folder, and rename lvp.amx to lvp.amx.YYYYMMDD, this way we can easily revert back if despite al testing something still crashes. Then upload the new build lvp.amx.
Now that the final build is ready and tested, and is waiting to be released, we can go ingame, and announce a gamemode update when we think the time is ready, for example when it isn’t very busy ingame.
We will then announce a gamemode-update in 5 minutes, we will tell people to save their stuff, start a 300-second countdown. We will keep on announcing that we will be updating the server, and that you should save your money, and be ready for a gmx.
When the countdown reaches 0, we can /rcon gmx, and wait for the server to load the new version. Sometimes the server crashes here, for some weird reasons, in that case, restart it using SSH as soon as possible, that is why there should always be a SSH capable person at an update.
After the server is updated to the new build, you check if any obvious bugs occur, and check if everything still works, which it should if it is tested properly before. If everything works, we can put the branch back into the trunk folder, and develop until a new version will be released.
Bigger updates will ofcourse require longer testing, like 2.91, which will be needed to test for over a week, but the concept stays the same, a branch, testtest, bugfix, testtest, update.
Update Protocol
To assure updating the LVP server goes fine without problems, we will be using an update protocol.
We want to keep the weekly updates, and we want to keep them at Sunday, so people will have some time in the weekend and can do some stuff. However, to make sure everything is welltested, and the gamemode we update to actually works, we’ve made this protocol.
So, let’s start on Friday, people are still developing, in the weekend, and will continue Saturday, they can still commit.
Now to make ourselves ready for the new version, a new branch will be created Sunday around 6.40 GMT. This branch will be created from the trunk folder, and will be used to finish the build.
So make sure all commits are done before Sunday 6.40 GMT, commits done after that will not make it into that week’s build.
After we’ve created the branch, we will compile that version, and upload that to the testserver. We then have a complete day to test the new commits, fix bugs we might find, and create a good final version of the gamemode.
After we’ve made sure the version works, we will compile it as if it was a real build, with the database details of the mainserver, and the defines set to what they would be as a real build. We also include an update to the /changelog command, and to the random announcements found in timers.pwn.
We upload this to the testserver, invite some people to play and test, especially edited things, and will see if everything works. If it does, this will be the final version of that build, and we can upload it to the mainserver.
Use SFTP to connect to the mainserver, goto the /Server/gamemodes/ folder, and rename lvp.amx to lvp.amx.YYYYMMDD, this way we can easily revert back if despite al testing something still crashes. Then upload the new build lvp.amx.
Now that the final build is ready and tested, and is waiting to be released, we can go ingame, and announce a gamemode update when we think the time is ready, for example when it isn’t very busy ingame.
We will then announce a gamemode-update in 5 minutes, we will tell people to save their stuff, start a 300-second countdown. We will keep on announcing that we will be updating the server, and that you should save your money, and be ready for a gmx.
When the countdown reaches 0, we can /rcon gmx, and wait for the server to load the new version. Sometimes the server crashes here, for some weird reasons, in that case, restart it using SSH as soon as possible, that is why there should always be a SSH capable person at an update.
After the server is updated to the new build, you check if any obvious bugs occur, and check if everything still works, which it should if it is tested properly before. If everything works, we can put the branch back into the trunk folder, and develop until a new version will be released.
Bigger updates will ofcourse require longer testing, like 2.91, which will be needed to test for over a week, but the concept stays the same, a branch, testtest, bugfix, testtest, update.