Clean markdown files and fix typos (#5248)

Only show in develop changelog
This commit is contained in:
supertree-wook
2023-04-20 23:22:46 +09:00
committed by GitHub
parent c712ab3163
commit 21a87daf64
25 changed files with 123 additions and 111 deletions
+4
View File
@@ -8,12 +8,15 @@ assignees: ''
---
## Describe the bug
A clear and concise description of what the bug is.
Please double check that the bug is not already reported in the issues list.
## To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
@@ -23,6 +26,7 @@ Steps to reproduce the behavior:
* If applicable, add screenshots to help explain your problem.
## Other details
* Include any OS/browser version/smartphone that you're using
* Which version of GDevelop are you using? The desktop app or the web-app?
* Add any other context about the problem here.
+1 -1
View File
@@ -1,3 +1,3 @@
This is the directory where native or WebAssembly binaries of the C++ code of GDCore and GDJS are produced.
See GDevelop.js README for the instructions to compile after a change in the C++ source code.
See GDevelop.js README for the instructions to compile after a change in the C++ source code.
+1 -1
View File
@@ -99,7 +99,7 @@ Everything in GDevelop.js is meant to create a "bridge" allowing us to run and u
### I want all the gory details about GDevelop.js 🧐
All the required C++ files are imported into this huge list: https://github.com/4ian/GDevelop/blob/master/GDevelop.js/Bindings/Wrapper.cpp#L1-L79. C++ compilation is done with a "build system" called CMake, which is using [this file](https://github.com/4ian/GDevelop/blob/master/GDevelop.js/CMakeLists.txt#L82-L101) to see what to compile.
All the required C++ files are imported into this huge list: <https://github.com/4ian/GDevelop/blob/master/GDevelop.js/Bindings/Wrapper.cpp#L1-L79>. C++ compilation is done with a "build system" called CMake, which is using [this file](https://github.com/4ian/GDevelop/blob/master/GDevelop.js/CMakeLists.txt#L82-L101) to see what to compile.
> In an ideal world, there would be something to do this automatically, so the GDevelop.js folder would not even exist 😉
> If you're interested and want to know more about GDevelop.js bridging between C++ and JavaScript, look at [this talk from GDevelop original author](https://www.youtube.com/watch?v=6La7jSCnYyk).
+26 -24
View File
@@ -12,31 +12,32 @@ In the example below, we are defining 4 text styles.
```js
let text = new MultiStyleText("Let's make some <ml>multiline</ml>\nand <ms>multistyle</ms> text for\n<pixi>Pixi.js!</pixi>",
{
"default": {
fontFamily: "Arial",
fontSize: "24px",
fill: "#cccccc",
align: "center"
},
"ml": {
fontStyle: "italic",
fill: "#ff8888"
},
"ms": {
fontStyle: "italic",
fill: "#4488ff"
},
"pixi": {
fontSize: "64px",
fill: "#efefef"
}
"default": {
fontFamily: "Arial",
fontSize: "24px",
fill: "#cccccc",
align: "center"
},
"ml": {
fontStyle: "italic",
fill: "#ff8888"
},
"ms": {
fontStyle: "italic",
fill: "#4488ff"
},
"pixi": {
fontSize: "64px",
fill: "#efefef"
}
});
```
## Build instructions
```
$ yarn install
$ yarn build
```bash
yarn install
yarn build
```
## Usage
@@ -46,6 +47,7 @@ $ yarn build
Creates a new `MultiStyleText` with the given text and styles.
#### `textStyles`
Type: `{ [key: string]: ExtendedTextStyle }`
Each key of this dictionary should match with a tag in the text. Use the key `default` for the default style.
@@ -57,10 +59,10 @@ The `align`, `wordWrap`, `wordWrapWidth`, and `breakWord` properties are ignored
If text is rendered without any value assigned to a given parameter, Pixi's defaults are used.
## Demo
```
$ yarn demo
```
```bash
yarn demo
```
## License
+2 -1
View File
@@ -1,11 +1,12 @@
# bondage.js [![Build Status](https://travis-ci.org/jhayley/bondage.js.svg?branch=master)](https://travis-ci.org/jhayley/bondage.js)
[Yarn](https://github.com/InfiniteAmmoInc/Yarn) parser for Javascript, in the same vein as [YarnSpinner](https://github.com/thesecretlab/YarnSpinner).
# Usage
#### As a Web Tool
To run through your yarn files in your browser, go to http://hayley.zone/bondage.js, paste your yarn data in the field, then hit "compile".
To run through your yarn files in your browser, go to <http://hayley.zone/bondage.js>, paste your yarn data in the field, then hit "compile".
#### As a Command Line Tool
Installation: `npm install -g bondage`
+5 -7
View File
@@ -25,6 +25,7 @@ Which means that the character could climb it during 1 frame and then stop.
[![RequestedDeltaX](./diagrams/SlopeFollowingClimbFactorMean.png)](./diagrams/SlopeFollowingClimbFactorMean.svgz)
For further details on the implementation, please take a look at the comments in:
- the function `gdjs.PlatformerObjectRuntimeBehavior._moveX`
- the function `gdjs.PlatformerObjectRuntimeBehavior.OnFloor.beforeMovingY`
@@ -53,6 +54,7 @@ To detect such cases, 2 flags are used:
[![RequestedDeltaX](./diagrams/SlopeFollowingContext.png)](./diagrams/SlopeFollowingContext.svgz)
For further details on the implementation, please take a look at the comments in:
- the function `gdjs.PlatformerObjectRuntimeBehavior._findHighestFloorAndMoveOnTop`
- the class `gdjs.PlatformerObjectRuntimeBehavior.FollowConstraintContext`
@@ -63,6 +65,7 @@ For further details on the implementation, please take a look at the comments in
The engine uses the previous speeds and positions to evaluate the new ones (with Verlet integrations). This is fast for sequential access and it's a good fit for what the engine does.
The model doesn't follow the laws of physics and this is fine because more realism doesn't mean more fun. Internally, it uses 2 independent speeds:
- the current jumping speed `currentJumpSpeed`
- the current falling speed `currentFallSpeed`
@@ -92,11 +95,13 @@ This example of trajectory shows the 4 functions. It has an affine part in the m
![Trajectory with an affine part](./diagrams/WithAffine.png)
The piece-wise function has 3 borders:
- at the end of the jump sustaining (jumpSustainTime)
- when the maximum falling speed is reached (maxFallingTime)
- when the jump speed reach 0 (jumpEndTime)
Depending on the when the maximum falling speed is reached, there can be 3 piece-wise functions:
- after the jump end
- sustain case
- common case
@@ -306,10 +311,3 @@ This is the code used to plot the first graphic of the [Polynomial piece-wise fu
]), 0, 0.8, ymin=0, color='cyan')
)
```
+1 -1
View File
@@ -1 +1 @@
This library sources are located in [SharedLibs/TileMapHelper/](../../../SharedLibs/TileMapHelper/).
This library sources are located in [SharedLibs/TileMapHelper/](../../../SharedLibs/TileMapHelper/).
@@ -1 +1 @@
An example of a basic platformer (Mario-like) game made with GDevelop.
An example of a basic platformer (Mario-like) game made with GDevelop.
@@ -1 +1 @@
An example of a basic platformer (Mario-like) game made with GDevelop.
An example of a basic platformer (Mario-like) game made with GDevelop.
+10 -10
View File
@@ -28,10 +28,10 @@ This is the port of GDevelop core classes to WebAssembly+JavaScript. This allows
- Launch the build from GDevelop.js folder:
```shell
cd GDevelop.js
npm install
npm run build
```bash
cd GDevelop.js
npm install
npm run build
```
> ⚠️ If the npm install fails, relaunch it in a different terminal using a recent Node.js and npm version (to avoid using the old npm version from Emscripten).
@@ -42,18 +42,18 @@ This is the port of GDevelop core classes to WebAssembly+JavaScript. This allows
- You can then launch GDevelop 5 that will use your build of GDevelop.js:
```shell
cd ..
cd newIDE/app
npm install
npm start
```bash
cd ..
cd newIDE/app
npm install
npm start
```
More information in [GDevelop 5 readme](https://github.com/4ian/GD/blob/master/newIDE/README.md).
### Tests
```
```bash
npm test
```
+1 -1
View File
@@ -52,7 +52,7 @@ Status of the tests and builds: [![macOS and Linux build status](https://circlec
- Find more GDevelop games on [gd.games](https://gd.games).
- Suggest your game to be [added to the showcase here](https://docs.google.com/forms/d/e/1FAIpQLSfjiOnkbODuPifSGuzxYY61vB5kyMWdTZSSqkJsv3H6ePRTQA/viewform).
![Some games made with GDevelop](https://raw.githubusercontent.com/4ian/GDevelop/master/newIDE/GDevelop%20games.png "Some games made with GDevelop")
[![Some games made with GDevelop](https://raw.githubusercontent.com/4ian/GDevelop/master/newIDE/GDevelop%20games.png "Some games made with GDevelop")](https://gdevelop.io/games)
## License
+1 -1
View File
@@ -1,3 +1,3 @@
This library sources is used by the [tile map extension](../../Extensions/TileMap/).
The `npm run build` command copy the bundled library at the right place for the extension to use it.
The `npm run build` command copy the bundled library at the right place for the extension to use it.
+39 -38
View File
@@ -60,7 +60,7 @@ Read about [`gdjs.RuntimeScene`](https://docs.gdevelop.io/GDJS%20Runtime%20Docum
##### How to create an asynchronous function
You can make an asynchronous action by making your function return an instance of an AsyncTask (don't forget to also declare your function as async!). You can make an `AsyncTask` yourself by extending the `gdjs.AsyncTask` abstract base class, or, if you are using JavaScript async functions/promises, by instanciating a new `gdjs.PromiseTask` with your promise as argument.
You can make an asynchronous action by making your function return an instance of an AsyncTask (don't forget to also declare your function as async!). You can make an `AsyncTask` yourself by extending the `gdjs.AsyncTask` abstract base class, or, if you are using JavaScript async functions/promises, by instantiating a new `gdjs.PromiseTask` with your promise as argument.
#### How to create a behavior by extending `gdjs.RuntimeBehavior`
@@ -103,10 +103,10 @@ Use [`addAction`](https://docs.gdevelop.io/GDCore%20Documentation/classgd_1_1_pl
- Chain calls to [`addParameter`](https://docs.gdevelop.io/GDCore%20Documentation/classgd_1_1_instruction_metadata.html#a95486188a843f9ac8cdb1b0700c6c7e5) to declare the parameters of your action/condition/expression.
- Call `getCodeExtraInformation()` and then functions like [`setFunctionName` and `setIncludeFile`](https://docs.gdevelop.io/GDCore%20Documentation/classgd_1_1_instruction_metadata_1_1_extra_information.html) to declare the JavaScript function to be called and the file to be included.
- If your function is asynchronous, call `setAsyncFunctionName` instead to tell GDevelop to wait for the returned `Task` to resolve before executing subsequent actions and subevents.
- If you want to be able to toggle the awaiting on and off, make one implementation of the function that returns a `Task` and one that doesn't, and use both `setFunctionName` and `setAsyncFunctionName` respectively to declare both to GDevelop, making the action optionally async.
- If you just want to return a promise to be awaited, you do not need to create your own task. Simply return `new gd.PromiseTask(yourPromise)`.
- Note that, as of now, *only actions can be asynchronous*. Giving other functions an async function name will not have any effect.
- If your function is asynchronous, call `setAsyncFunctionName` instead to tell GDevelop to wait for the returned `Task` to resolve before executing subsequent actions and subevents.
- If you want to be able to toggle the awaiting on and off, make one implementation of the function that returns a `Task` and one that doesn't, and use both `setFunctionName` and `setAsyncFunctionName` respectively to declare both to GDevelop, making the action optionally async.
- If you just want to return a promise to be awaited, you do not need to create your own task. Simply return `new gd.PromiseTask(yourPromise)`.
- Note that, as of now, _only actions can be asynchronous_. Giving other functions an async function name will not have any effect.
> You can call these functions on the `extension` object, or on the objects returned by `extension.addObject` (for objects) or `extension.addBehavior` (for behaviors). See below.
@@ -144,10 +144,10 @@ To declare one, just use `registerProperty`:
```js
// From ExampleJsExtension/JsExtension.js:
extension
.registerProperty("DummyPropertyString")
.setLabel(_("Dummy Property Name"))
.setDescription(_("Type in anything :)"))
.setType("string");
.registerProperty("DummyPropertyString")
.setLabel(_("Dummy Property Name"))
.setDescription(_("Type in anything :)"))
.setType("string");
```
Once declared, you can access the property from JavaScript in the game engine using `getExtensionProperty` method of `gdjs.RuntimeGame`. Pass the extension name and the property name. This would get the AdMobAppId property of the AdMob extension for example:
@@ -166,26 +166,26 @@ You can declare a dependency on an npm package or cordova plugin with `addDepend
```js
// From ExampleJsExtension/JsExtension.js:
extension
.addDependency()
.setName("Thirteen Checker")
.setDependencyType("npm")
.setExportName("is-thirteen")
.setVersion("2.0.0");
.addDependency()
.setName("Thirteen Checker")
.setDependencyType("npm")
.setExportName("is-thirteen")
.setVersion("2.0.0");
```
On cordova you can add plugin variables as extra properties:
```js
extension
.addDependency()
.setName("Some Cordova Extension")
.setDependencyType("cordova")
.setExportName("cordova-some-plugin")
.setVersion("1.0.0")
.setExtraSetting(
"VARIABLE_NAME",
new gd.PropertyDescriptor().setValue("42")
);
.addDependency()
.setName("Some Cordova Extension")
.setDependencyType("cordova")
.setExportName("cordova-some-plugin")
.setVersion("1.0.0")
.setExtraSetting(
"VARIABLE_NAME",
new gd.PropertyDescriptor().setValue("42")
);
```
You can also use an extension property to determine the value of the plugin variable:
@@ -193,23 +193,23 @@ You can also use an extension property to determine the value of the plugin vari
```js
// From AdMob/JsExtension.js:
extension
.registerProperty("AdMobAppId") // Remember Property Name
.setLabel("AdMob App ID")
.setDescription("ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY")
.setType("string");
.registerProperty("AdMobAppId") // Remember Property Name
.setLabel("AdMob App ID")
.setDescription("ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY")
.setType("string");
extension
.addDependency()
.setName("AdMob Cordova Extension")
.setDependencyType("cordova")
.setExportName("cordova-plugin-admob-free")
.setVersion("~0.21.0")
.setExtraSetting(
"ADMOB_APP_ID",
new gd.PropertyDescriptor()
.setType("ExtensionProperty") // Tell the exporter this is an extension property...
.setValue("AdMobAppId") // ... and what property it is (name of the property).
);
.addDependency()
.setName("AdMob Cordova Extension")
.setDependencyType("cordova")
.setExportName("cordova-plugin-admob-free")
.setVersion("~0.21.0")
.setExtraSetting(
"ADMOB_APP_ID",
new gd.PropertyDescriptor()
.setType("ExtensionProperty") // Tell the exporter this is an extension property...
.setValue("AdMobAppId") // ... and what property it is (name of the property).
);
```
#### Declare an object editor
@@ -257,6 +257,7 @@ If you want to start a new extension:
- Remove all the actions/conditions/expressions declarations and tests, run `node import-GDJS-Runtime.js` and reload GDevelop to verify that your extension is loaded.
- Create a file called for example _yourextensionnametools.js_ in the same directory.
- Add back the declarations in your extension. Use `setIncludeFile` when declaring your actions/conditions/expressions and set the name of the ts file that you've created **but with a js extension**, prefixed by the path from the root folder. For example:
```js
.setIncludeFile("Extensions/FacebookInstantGames/facebookinstantgamestools.ts")
```
+12 -9
View File
@@ -5,34 +5,37 @@ Themes are a consistent set of colors and other styles that unify the look and f
## How themes are handled
Theme styles are held in a `theme.json`, which is used to generate:
- A `.css` file, containing the styles as CSS Custom Properties. These properties are set by applying the theme class
to specific sections of the app. To see where the properties are used, see the stylesheets in the `Global` folder.
- A `.css` file, containing the styles as CSS Custom Properties. These properties are set by applying the theme class
to specific sections of the app. To see where the properties are used, see the stylesheets in the `Global` folder.
- A `.json` file, containing the styles as a flat object, where each style is a field. This is imported and used by the Material UI library
as well as custom components
They are created by leveraging (Style Dictionary)[https://amzn.github.io/style-dictionary] to compile them from `theme.json` using
the `build-theme-resources` script, in the scripts folder. There is also an npm script to run it (`build-theme-resources`)
They are created by leveraging [Style Dictionary](https://amzn.github.io/style-dictionary) to compile them from `theme.json` using
the `build-theme-resources` script in the scripts folder. There is also an npm script to run it (`build-theme-resources`).
## Creating new themes
Themes are stored in [this Theme Folder](./app/src/UI/Theme). Each theme has its own subfolder containing
- A javascript file (`index.js`) to generate the object describing the theme that is used by the editor (class names, values to apply to Material-UI) and that also imports the css file.
- The `theme.json` file which stores the theme details (colors, widths, etc.)
To create the necessary files, run the following command:
```bash
npm run create-new-theme "<Theme Name>"
```
This will create the files `index.js`, `theme.json` and the folder to contain them, with the theme name filled in and some default values.
This will create the files `index.js`, `theme.json` and the folder to contain them, with the theme name filled in and some default values.
It will also update files in the root directory, as well as recompile all themes (including the new one).
## Editing a theme
To edit a theme, make any changes in the `theme.json` file, and then run
To edit a theme, make any changes in the `theme.json` file, and then run
```bash
npm run build-theme-resources
```
to compile the styles into the `.css` and `.json` files. This command will need to be run any time changes are made.
```
to compile the styles into the `.css` and `.json` files. This command will need to be run any time changes are made.
+1 -1
View File
@@ -79,7 +79,7 @@ npm run format # or yarn format
It's pretty easy to create new themes. Check the [README about themes](./README-themes.md)
### Development of the game engine or extensions.
### Development of the game engine or extensions
Make sure to have the standalone app running with Electron.
+1 -1
View File
@@ -16,7 +16,7 @@ GDevelop relies on some dependencies that can have special requirements.
## Create React App
We need `"react-error-overlay": "6.0.9"` because of https://github.com/facebook/create-react-app/issues/11773.
We need `"react-error-overlay": "6.0.9"` because of <https://github.com/facebook/create-react-app/issues/11773>.
Can be removed if upgrading create-react-app to v5.
## LinguiJS
+1 -1
View File
@@ -2,4 +2,4 @@ This folder contains third parties editors bundled with GDevelop.
They are usually imported by `import-XXX-editor.js` scripts (See app/scripts folder).
For ES Modules to work, all files must be lower cased. Protocol gdide:// must be used
so that Electron can properly serve the ES modules.
so that Electron can properly serve the ES modules.
+1 -1
View File
@@ -1,7 +1,7 @@
This folder contains sources to embed the Piskel editor (https://www.piskelapp.com/) so that it can
be used directly from GDevelop to edit images.
GD uses an updated version of piskel from https://github.com/blurymind/piskel/tree/piskel-plus
GD uses an updated version of piskel from <https://github.com/blurymind/piskel/tree/piskel-plus>
It contains a number of advanced color manipulation features and improvements to aid artists.
commit number: a300d17eb88d2b9d1fa2bbe3a810ad1bb76f1f81
+1 -1
View File
@@ -1,3 +1,3 @@
This directory contains the extension loader for Node.js/Electron (`LocalJsExtensionsLoader`) or the Browser (`BrowserJsExtensionsLoader`).
`LocalJsExtensionsLoader` is loading extensions from GDJS Runtime folder. Be sure to launch `node import-GDJS-Runtime.js` from `newIDE/app/scripts` if you made any changes in an extension.
`LocalJsExtensionsLoader` is loading extensions from GDJS Runtime folder. Be sure to launch `node import-GDJS-Runtime.js` from `newIDE/app/scripts` if you made any changes in an extension.
@@ -2,4 +2,4 @@ This theme is an implementation of the Rosé Pine colorscheme. (https://rosepine
The theme follows the colors found [here](https://rosepinetheme.com/palette) and usage specification found [here](https://rosepinetheme.com/docs/usage)
The theme is licensed under MIT, although the actual source code is not used, the color specification is used in this theme. (See https://github.com/rose-pine/rose-pine-theme/blob/main/license)
The theme is licensed under MIT, although the actual source code is not used, the color specification is used in this theme. (See <https://github.com/rose-pine/rose-pine-theme/blob/main/license>)
+1 -1
View File
@@ -1 +1 @@
This locale "en" is the source language. Use `ide-messages.po` to update source strings to translate in Crowdin.
This locale "en" is the source language. Use `ide-messages.po` to update source strings to translate in Crowdin.
@@ -1,6 +1,6 @@
# Nightly Builds and continuous deployment
GDevelop is using CircleCI (a continous deployment/integration service) and AppVeyor to automatically build new versions for **every commit on `master`** branch.
GDevelop is using CircleCI (a continuous deployment/integration service) and AppVeyor to automatically build new versions for **every commit on `master`** branch.
You can download these here - **replace XX by the current version number**:
@@ -24,7 +24,7 @@ You can download these here - **replace XX by the current version number**:
## How do I download a "Nightly Build" for a specific commit?
1. Verify that the CircleCI build was done for the commit. Click on the green check or the yellow circle on GitHub next to the commit or checks, and verify that `ci/circleci: build — Your tests passed on CircleCI!` is written - otherwise the build is still being done.
2. Find the hash of the commit. Usually, click on a commit title (in a Pull Requests or in the list of commits of a branch) and read the _hash_ in the URL. For example, for https://github.com/4ian/GDevelop/commit/5c648e3f2b8c444bd99221cea56b92c00cdddddd, the hash is `5c648e3f2b8c444bd99221cea56b92c00cdddddd`.
2. Find the hash of the commit. Usually, click on a commit title (in a Pull Requests or in the list of commits of a branch) and read the _hash_ in the URL. For example, for <https://github.com/4ian/GDevelop/commit/5c648e3f2b8c444bd99221cea56b92c00cdddddd>, the hash is `5c648e3f2b8c444bd99221cea56b92c00cdddddd`.
3. Download the version built for it (replace XX, THE_BRANCH and THE_COMMIT_HASH):
- Windows: `https://gdevelop-releases.s3.amazonaws.com/THE_BRANCH/commit/THE_COMMIT_HASH/GDevelop 5 Setup 5.1.XXX.exe`
@@ -3,6 +3,7 @@
## The need for a concept of "properties"
A lot of elements in GDevelop can have fields which can be edited by the user. For example:
* a behavior has properties that are, for most behaviors, strings, numbers and booleans.
* an object also has properties that are shown in the editor. They are often strings (the text to display in a text object), numbers (the number of particles), booleans (a checkbox to set if a text is displayed in bold or not) and also sometimes can be a resource (for example, the image to be displayed by a tiled sprite object or the font to be used by a text object).
* an instance on a scene also has a bunch of properties: its X and Y coordinates, its angle, etc...
@@ -72,6 +73,7 @@ That's why object and behaviors can have "properties". A property is defined by
return properties;
}
```
* **Behaviors** can also have properties (check example of existing behaviors in `JsExtension.js` or in C++ behaviors)
* **Instances** of objects can also have custom properties.
@@ -8,8 +8,8 @@ GDevelop source code is hosted on GitHub, which is based on the Git version cont
If it's the first time and you have just "forked" GDevelop on GitHub, clone your repository: `git clone git@github.com:your-username/GDevelop.git`. This will download your copy of the repository on your local computer.
* Your own repository is usually called, in git jargon, a "remote" repository, named `origin`. When you do a `git push`, `git pull`, your usually, unless specified otherwise, getting or sending code to your repository.
* The [GDevelop "official repository"](https://github.com/4ian/GDevelop) is also a remote, usually called `upstream`.
- Your own repository is usually called, in git jargon, a "remote" repository, named `origin`. When you do a `git push`, `git pull`, your usually, unless specified otherwise, getting or sending code to your repository.
- The [GDevelop "official repository"](https://github.com/4ian/GDevelop) is also a remote, usually called `upstream`.
By default, when you have just "cloned" your repository, there is only the single remote `origin`. It will be useful later to have the `upstream` remote (to get the latest code from GDevelop). You can do it by entering: `git remote add upstream https://github.com/4ian/GDevelop.git`.
@@ -20,17 +20,18 @@ By default, when you have just "cloned" your repository, there is only the singl
In git, all the code is stored in the repository, and changes are stored in *commits*. The latest version of the source code is in a "branch", which is called `master` (it's an arbitrary convention).
When you'll make new additions to GDevelop, you'll make a new "branch". Imagine a branch like the branch of a tree:
- The source code is in master, which is the trunk of the tree, with tons of commits.
- Your branch will grow from master, adding a few commits.
- You can open a [Pull Request](https://help.github.com/en/articles/creating-a-pull-request) to propose the changes made on your branch.
- If your changes are accepted, they will get *merged* into `master`.
- If your changes are accepted, they will get *merged* into `master`.
At this point, you can discard your branch and go back to master: `git checkout master`.
## 3. Step by step commands for making changes
- Always start from your master branch (`git checkout master`). When you start a new branch (using `git checkout -b branch-name`), you will start this branch **from the previous branch you were on** (read more about this - but most of the time you want to do this when you're on master, not when you're already on a branch).
- Get the latest commits from the "upstream", which is [this repository](https://github.com/4ian/GDevelop).
- Get the latest commits from the "upstream", which is [this repository](https://github.com/4ian/GDevelop).
- To add the "upstream" as a remote repository, if needed, you can do: `git remote add upstream https://github.com/4ian/GDevelop.git`.
- Then, get the latest commits (make sure you're on your master): `git pull upstream master` ("pull the latest commits from master branch of the upstream repository"). If there is a merge, it's fine.
- Then from now, always start branch from master:
@@ -54,7 +55,7 @@ Forget this branch and go back to master (`git checkout master`). Get the latest
⚠️ In other words, don't **stay on your branch once you're done**. Go back to master and get the latest changes from GDevelop "official" repository.
> If you want to, you can delete the branch you made, as it is not useful: `git branch -D my-branch`. **Make sure that your commits are merged into GDevelop before doing so**. Don't do it before a pull request is merged.
> If you want to, you can delete the branch you made, as it is not useful: `git branch -D my-branch`. **Make sure that your commits are merged into GDevelop before doing so**. Don't do it before a pull request is merged.
## Afraid of doing something? 🚩Checkpoint! Make a new branch from your existing branch
+1 -1
View File
@@ -2,4 +2,4 @@
This is the Electron sources to package GDevelop new IDE into a standalone editor.
See [the general README](../README.md) for more information.
See [the general README](../README.md) for more information.