First Time Contributor
Getting Started
Tip
Before reading on, please ensure you have read and understood the licensing agreement that GSXHub operates. Should you have any questions regarding this, please contact us via the GSX Community Discord.
Prerequisites
In order to make contributing straight-forward, we've compiled a list of prerequisites:
- GitHub Desktop - Install and login with GitHub
- A completed GSX Profile
- 15 Minutes of your time 😉
Clone the Repository
- Head over to the GSX Hub Profiles GitHub Repo
-
Fork the repository by selecting
Fork
on the top bar -
Clone your fork by selecting
<> Code -> Open with GitHub Desktop
.
Note
Make sure it says forked from GSX-Hub/Profiles
in the top left-hand corner before cloning it.
- Cloned the repository to your PC
GitHub Desktop
- Choose a suitable location to clone the repository to. We recommend you choose an easily accessible location such as (Documents).
- Select
To contribute to the parent project
- Downloaded and setup the repository
Creating a branch
-
Inside of GitHub Desktop, ensure that the 'Current repository' is
Profiles
, the 'Current branch' ismain
and selectNew Branch
. -
(Optional) Name your branch in accordance with the profile you intend to upload.
Hint
You could use a schema such as: ICAO-Developer-Creator
Now that you have created the branch, we can start to add the profile to the repository.
- Created a branch
Preparing the folder
Now that we have cloned the repository we can now create the folder which our profile will be in.
- Navigate to the folder which you selected back in Clone the Repository step. In my case, this will be
Documents\GitHub\Profiles
.
You should be presented with the repository files such as availprofiles.json
and the Airports
folder.
-
Navigate to the
Template
folder and copy the folder namedICAO (Developer)
to theAirports
folder. Contained withinICAO (Developer)
is all the necessary files required to host on GSXHub. -
Rename the
ICAO (Developer)
you've just copied toAirports
using the standard format.
Examples
✅ EGNX (Pyreegue)
, EDDM (SimWings)
❌ EGPH (Hinshee)
, EIDW (SimonTricks)
- These are the creators' names, not the scenery developer
For this demonstration, we'll use the example EFOU (M'M Simulations)
.
Your folder should look like this:
- Preparing the folder
Uploading Files
With the folder setup, you can now add your profile files.
- Remove the placeholder file
Install Profiles Here.txt
. -
Add your
.ini
and.py
files. -
You must add the following line to all your files indicating the file's current version:
version = X.X
Example
Note the highlighted 'version' lines that have been added.
Modifying profile.json
{
"ProfileICAO": "EGPH", // (1)!
"Scenery": "Pyreegue (v2)", // (2)!
"Creator": "Hinshee", // (3)!
"Version": 1.1, // (4)!
"Configurations": [
{
"ConfigName": "GSX", // (5)!
"Files": [ // (6)!
{
"FileName": "egph-pyreegue-hinshee.ini"
},
{
"FileName": "egph-pyreegue-hinshee.py" // (7)!
}
]
}
],
"Changelog": [
{
"Version": 1.1,
"ChangesURL": "https://github.com/Hinshee/GSX-Profiles/pull/13", // (8)!
"Date": "2024-07-27" // (9)!
},
{
"Version": 1,
"ChangesURL": "",
"ChangesMd": "* Initial release", // (10)!
"Date": "2024-07-19"
}
]
}
The included file is filled out to help. Here is every entry explained and what is required:
- The 4 Letter ICAO code for the profile. Uppercase is preferred.
- Scenery Developer
- Original Creator(s)
- Current version profile number
- Name of the configuration. Example:
GSX
andASVDGS
- List of files that are required for this configuration
- The exact name of the required file.
Case-Sensitive. Must match
Optional
URL for link to changes.- Date of Update. Format: YYYY-MM-DD
- Markdown content for changelog
Main
Entry | Description | Parameters |
---|---|---|
ProfileICAO | The 4 Letter ICAO code for the profile. | Uppercase Preferred |
Scenery | Scenery Developer | -- |
Creator | Original Creator(s) | -- |
Version | Current version profile number | -- |
Configurations
Important section if you have multiple configurations (i.e. multiple .ini or .py files)
Entry | Description | Parameters |
---|---|---|
ConfigName | Name of the configuration | Uppercase Preferred |
Files | List of files that are required for the configuration | -- |
FileName | The exact name of the required file | Case-Sensitive. Must match |
Changelog
Entry | Description | Parameters |
---|---|---|
Version | -- | -- |
ChangesURL | URL for link to changes | Can be empty |
ChangesMD | Markdown content for changelog | -- |
Date | Date of Update | Format: YYYY-MM-DD |
✅ Here is the finished demonstration example:
{
"ProfileICAO": "EFOU",
"Scenery": "M'M Simulations",
"Creator": "Hinshee",
"Version": 1,
"Configurations": [
{
"ConfigName": "GSX",
"Files": [
{
"FileName": "efou-mmsimulations-hinshee.ini"
},
{
"FileName": "efou-mmsimulations-hinshee.py"
}
]
}
],
"Changelog": [
{
"Version": 1,
"ChangesURL": "",
"Date": "2024-12-24"
}
]
}
Multiple Configurations
A good example for multiple configurations is EDDM (SimonTricks)
Modifying Information.md
Information.md
is a markdown file that will display within the application.
Please refer to this file to see what markdown features are supported.
Adding your license
As explained within the licensing agreement you must choose which license you wish your profile to fall under.
You must add one of the following lines to the top of your Markdown file:
<!--- Licensed Under: CC BY-NC 4.0 --->
= Attribution required; noncommercial use only; modifications allowed.<!--- Licensed Under: CC BY-NC-ND 4.0 --->
= Attribution required; noncommercial use only; no modifications or derivative works allowed.
Leave the <!---
and --->
as this will prevent it being shown via the App.
The comment will help GitHub Actions determine if it should allow modifications if they are requested.
Example
<!--- Licensed Under: CC BY-NC 4.0 --->
Available from these retailers:
- Contrail.shop: [Affiliate Link](https://contrail.shop/xoiedo) / [Non-Affiliate Link](https://contrail.shop/products/mm-simulations-efou-oulu-airport-msfs)
...
### Features:
- Custom Vehicle Positioning
- Walk-in gates (Stands 13B, 12A, 11, 10, 9)
- Custom Pushbacks
- Accurate Ground Handling Agents
Ready to Upload?
Feel you've forgotten or messed something up? Don't worry - it will be checked before it goes live.
-
Open GitHub Desktop and notice the list of changes on the left-hand side. You can go through them and check to see if it has detected all your changes. If anything is missing, double check you have saved the file.
-
Name your commit. Since this is your first commit of the profile, I highly recommend naming it
Initial Release
. You may add a description should you wish. -
Once you have selected
Commit to...
you can then selectPublish Branch
at the top. This will push the branch to GitHub and allow your changes to be compared against the main code.
Once published, navigate back to the repository's main page. You should see this notification:
- Click
Compare & Pull Request
. Fill out the PR form like the example below:
Tip
Change the title of the PR to something sensible. You could follow this schema: [ICAO] Developer | Initial Release
Example
[EFOU] M'M Simulations | Initial Release
When you are happy, submit the PR by clicking Create Pull Request
.
- Submit your profile 🎉Whoop! You've submitted your first profile to GSXHub 🎉
Checks
Now you've successfully submitted your first Pull Request with your profile, it requires at least one senior moderator to check and ensure everything complies. They are notified of a new request so there's no need to ping via Discord. If there are any problems, they will contact you within the PR. This can take up to 48 hours depending on their availability.
Questions?
Struggling with something? Please contact us via the GSX Community Discord