You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This guide will give a brief overview of how to get started developing LinuxGSM by running through some of the basics of using GitHub and the tools you need. This is not a comprehensive guide to GitHub but should help with getting started. There are plenty of resources available online such as the [GitHub help documentation](https://help.github.com/en/github) and [guides](https://guides.github.com/) that will help you learn more.
6
8
7
9
## Choosing an Issue to Develop
8
10
9
-
Whenever someone raises a new feature request or bug is done on the [GitHub Issues](https://github.com/GameServerManagers/LinuxGSM/issues) page. There is a raft of issues with different levels of complexity. Choosing an issue to work on is down to you as an individual, however, it is important you enjoy working on it. It is recommended that a simple issue is picked first and more complex issues are attempted as you get used to LinuxGSM. Popular issues to attempt are [type:Server Requests](https://github.com/GameServerManagers/LinuxGSM/issues?q=is%3Aissue+is%3Aopen+label%3A%22type%3A+server+request%22) as often developers want to have a game server added to the project. Be warned however some game servers can be more difficult than others to develop.
11
+
Whenever someone raises a new feature request or bug is done on the [GitHub Issues](https://github.com/GameServerManagers/LinuxGSM/issues) page. There is a raft of issues with different levels of complexity. Choosing an issue to work on is down to you as an individual, however, it is important you enjoy working on it. 
10
12
11
-
To help filter issues GitHub uses [labels](https://help.github.com/en/github/managing-your-work-on-github/about-labels) to help identify the types of issues. Common labels include `type:bug`, `type:feature`, `command:monitor`, `game: 7 Days to Die`. Labels are split into label types such as type, command, game, info etc to assist in triage.
13
+
When reviewing an issue it is a good idea to look at factors such as complexity, scope, and time to develop. 
12
14
13
-
## Starting Development
15
+
It is recommended that a simple issue is picked first as they are more likley to be merged quickly.
16
+
17
+
Popular issues to attempt are [type:Server Requests](https://github.com/GameServerManagers/LinuxGSM/issues?q=is%3Aissue+is%3Aopen+label%3A%22type%3A+server+request%22) as often developers want to have a game server added to the project. Be warned however some game servers can be more difficult than others to develop.
14
18
15
-
To begin working on LinuxGSM you need to [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the LinuxGSM repository once forked you will need to [clone](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository-from-github) your new repository to your local machine using your chosen git client. Once cloned it is possible to edit the code on your local machine using your text editor of choice.
19
+
To help filter issues GitHub uses [labels](https://help.github.com/en/github/managing-your-work-on-github/about-labels) to help identify the types of issues. Common labels include `type:bug`, `type:feature`, `command:monitor`, `game: 7 Days to Die`. Labels are split into label types such as type, command, game, and info to aid in prioritising and managing them.
20
+
21
+
## Starting Development
16
22
17
-
It is recommended you create a [branch](/@linuxgsm/s/linuxgsm-dev/branching)to develop your code. The branch should use the Gitflow methodology and should be named `feature/[featurename]`.
23
+
To begin working on LinuxGSM you need to [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the LinuxGSM repository once forked you will need to [clone](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository-from-github) your new repository to your local machine using your chosen git client. Once cloned it is possible to edit the code on your local machine using your text editor of choice.
18
24
19
-
Once a change has been made and saved the change will need to be committed to your local repo. When using commit it is important to leave a useful message to describe the change, this is covered in [Conventional Commits](/@linuxgsm/s/linuxgsm-dev/conventional-commits). When you are ready to send your commits to your remote fork you will need to [push ](https://help.github.com/en/github/using-git/pushing-commits-to-a-remote-repository)the updates.
25
+
It is recommended you create a [branch](../@linuxgsm/s/linuxgsm-dev/branching/) to develop your code. The branch should use the Gitflow methodology and should be named `feature/[featurename]`.
20
26
21
-
##
27
+
Once a change has been made and saved the change will need to be committed to your local repo. When using commit it is important to leave a useful message to describe the change, this is covered in [Conventional Commits](../@linuxgsm/s/linuxgsm-dev/conventional-commits/). When you are ready to send your commits to your remote fork you will need to [push ](https://help.github.com/en/github/using-git/pushing-commits-to-a-remote-repository)the updates.
Copy file name to clipboardExpand all lines: getting-started/test-environment.md
+24-22Lines changed: 24 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -1,59 +1,62 @@
1
1
# Test Environment
2
2
3
-
LinuxGSM runs on Linux \(obviously\) and as such requires a Linux test environment to test game servers and code. If you are running a LInux desktop then you can run LinuxGSM using your desktop. However, Most developers will be running Windows but there are multiple ways to create a Linux test environment.
3
+
LinuxGSM is designed to run on Linux, and therefore, a Linux test environment is essential for testing game servers and code changes. Whether you're already using a Linux desktop or primarily work on Windows, there are multiple ways to create a suitable Linux test environment. Additionally, if you are using Windows, you can leverage Windows Subsystem for Linux (WSL) to streamline your development process.
4
+
5
+
## Distro
6
+
7
+
LinuxGSM is primarily developed on Debian-based distros but is also tested to work on RedHat-based distros. Keep in mind that different distributions and versions may have varying versions of BASH and other dependencies. Ensure that your chosen distribution is still officially supported by the vendor and that it's compatible with the game server you intend to work with.
4
8
5
9
## Selecting a Test Environment
6
10
7
-
There are mulitple ways to setup a test enviroment.
11
+
### **Using a Linux Desktop**
8
12
9
-
### Distro
13
+
If you're already using a Linux desktop, you can run LinuxGSM directly on your desktop environment. This approach simplifies the setup process since LinuxGSM is natively compatible with Linux distributions.
10
14
11
-
LinuxGSM is primarily developed on Ubuntu but also tested to work on CentOS and Debian. Different versions of a distro will also have different versions of BASH etc. So be mindful of newer features that might not be available on older supported distros. In general, LinuxGSM will support distros that are still officially supported by the vendor but is also reliant on if the Game Server also supports the distro. See [distro](https://docs.linuxgsm.com/linux/distro) for more info.
15
+
### **Windows with WSL**
12
16
13
-
### Virtual Machine
17
+
For developers using Windows, Windows Subsystem for Linux (WSL) provides an efficient way to create a Linux test environment without dual-booting or using virtual machines. You can install a Linux distribution of your choice via WSL and then proceed to set up LinuxGSM within that distribution.
14
18
15
-
Creating a virtual machine on a desktop or laptop is a good way to create a development environment. Using Virtual Box and downloading Ubuntu Server iso a test environment can be created quickly. However, to test internet functionality there may be a requirement to open ports on a home router.
19
+
### Virtual Machine
16
20
17
-
If spare computer hardware is available, setting up an ESXi or Xen Server may be a good option for a development environment.
21
+
Creating a virtual machine on your desktop or laptop is a versatile way to create a development environment. You can use tools like VirtualBox to download an Ubuntu Server ISO and quickly set up a test environment. Note that for testing internet functionality, you may need to configure port forwarding on your home router.
VPS and dedicated servers can be rented relatively cheaply and is a good way to test LinuxGSM in the environment it is mostly used \(online\). There are several providers like Linode that provide servers from $5 p/m and allow the quick deployment of servers with different distros. Some game servers do have higher system requires than others so a more powerful VPS may be required.
31
+
Renting a virtual private server (VPS) or dedicated server can be an excellent choice for testing LinuxGSM in an online environment, which closely resembles how it's commonly used. Several providers offer cost-effective server options, making it accessible for testing purposes.
28
32
29
-
There are many providers to choose from but below LinuxGSM developers have used previously.
33
+
Notable providers include:
30
34
31
35
*[Linode](https://linode.com/)
32
36
*[Digital Ocean](https://www.digitalocean.com/)
37
+
*[OVHCloud](https://ovhcloud.com)
33
38
*[Oneprovider](https://oneprovider.com/)
34
39
*[Kimsufi](https://www.kimsufi.com/)
35
40
41
+
## **Testing Your Code**
36
42
37
-
38
-
At some point, you will need to test the code you have worked on. This can be done by downloading LinuxGSM and updating the repo and branch details to match your fork.
39
-
40
-
Login to your development environment and begin installing LinuxGSM
43
+
At some point, you will need to test the code you have worked on. This can be done by downloading LinuxGSM and updating the repo and branch details to match your fork.
41
44
42
45
#### Setup Testing Environment
43
46
44
-
Login to your develop environment and begin installing LinuxGSM.
47
+
Login to your development environment and begin installing LinuxGSM.
45
48
46
-
1. Create a user and log in.
49
+
1. Create a user and log in.
47
50
48
-
```text
51
+
```
49
52
adduser linuxgsm
50
53
```
51
54
52
-
```text
55
+
```
53
56
passwd linuxgsm
54
57
```
55
58
56
-
```text
59
+
```
57
60
su - linuxgsm
58
61
```
59
62
@@ -90,7 +93,7 @@ githubbranch="master"
90
93
91
94
Every time you push to remote it is possible to pull the changes to the test environment. This is done by using the development command `clear-functions`.
92
95
93
-
To use clear-functions activate development mode.
96
+
To use clear-modules activate development mode.
94
97
95
98
```bash
96
99
./gameserver development
@@ -99,6 +102,5 @@ To use clear-functions activate development mode.
0 commit comments