Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

English fix #5

Merged
merged 25 commits into from
Aug 11, 2019
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Home.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
_Wiki for chatoverflow version [0.2-prealpha](https://github.com/codeoverflow-org/chatoverflow/releases/tag/0.2-prealpha)_

Welcome to the Chat Overflow wiki!
Please see the menu to find more information.
### Welcome to the Chat Overflow wiki!

Please use the sidebar for navigation.
4 changes: 2 additions & 2 deletions _Footer.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
**We need your help to improve the wiki!**
Head over to [codeoverflow-org/chatoverflow-wiki](https://github.com/codeoverflow-org/chatoverflow-wiki) to edit the wiki and create a pull request.
**We need YOUR help to improve the wiki!**
Found a typo or just want to improve the wiki? Head over to [codeoverflow-org/chatoverflow-wiki](https://github.com/codeoverflow-org/chatoverflow-wiki) to edit the wiki and create a pull request. Your help is highly appreciated!

**You still need help?** Join our [discord server](https://discord.gg/sX2Gjbs).
69 changes: 37 additions & 32 deletions usage/Installation.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,56 @@
This tutorial shows how to install the chat overflow framework. By now, working with the development environment is the only way. Currently, there are **no builds available.**
## Installation
This tutorial shows how to install the chat overflow framework. For now, working with the development environment is the only way. Currently, there are **no builds available.**

### Pro
<!-- ### Pro

1. Clone the main repository. Then clone the api into folder `codeoverflow/api`, the gui into folder `codeoverflow/gui` and public plugins repository into `codeoverflow/plugins-public`.
2. Setup the main repository as imported scala project, e.g. using IntelliJ. Make sure to refresh all sbt content and load the custom run configurations.
3. You're done. Happy coding!
3. You're done. Happy coding! -->

### Not so Pro
### Step by step guide

0. Download and install [git](https://git-scm.com/) (obviously) and [Node.js](https://nodejs.org/en/download/). Make sure that you can run it using the console.
0. Install [git](https://git-scm.com/) and [Node.js](https://nodejs.org/en/download/). Make sure to add them to your PATH. To verify the install, open a console and execute `git --version` and `npm --version`. If the version number is echoed back, the installation is valid.
1. Clone the main repository using `git clone https://github.com/codeoverflow-org/chatoverflow.git`.
2. Navigate to the created chatoverflow-folder, e.g. using `cd chatoverflow`.
3. Clone the [api repository](https://github.com/codeoverflow-org/chatoverflow-api) into a folder named "api". using `git clone https://github.com/codeoverflow-org/chatoverflow-api.git api`.
4. Clone the [gui repository](https://github.com/codeoverflow-org/chatoverflow-gui) into a folder named "gui". using `git clone https://github.com/codeoverflow-org/chatoverflow-gui.git gui`.
5. Clone the [public plugins repository](https://github.com/codeoverflow-org/chatoverflow-plugins) into a folder named "plugins-public" using `git clone https://github.com/codeoverflow-org/chatoverflow-plugins.git plugins-public`.
2. `git` created a folder named `chatoverflow`. Navigate into it using `cd chatoverflow`.
3. Clone the [api repository](https://github.com/codeoverflow-org/chatoverflow-api) into a folder named `api` using `git clone https://github.com/codeoverflow-org/chatoverflow-api.git api`.
4. Clone the [gui repository](https://github.com/codeoverflow-org/chatoverflow-gui) into a folder named `gui` using `git clone https://github.com/codeoverflow-org/chatoverflow-gui.git gui`.
5. Clone the [public plugins repository](https://github.com/codeoverflow-org/chatoverflow-plugins) into a folder named `plugins-public` using `git clone https://github.com/codeoverflow-org/chatoverflow-plugins.git plugins-public`.

Site note: You can name the folders whatever you want. But if you do so, update the names in the main [build-file](https://github.com/codeoverflow-org/chatoverflow/blob/42b9469fe489fe5efeb4aa70f278e3558fccab7d/build.sbt#L64).
Side note: You can rename the folders to your liking, but if you do change their names, update them in the main [build-file](https://github.com/codeoverflow-org/chatoverflow/blob/42b9469fe489fe5efeb4aa70f278e3558fccab7d/build.sbt#L64).

6. Open up your most favorite IDE for java (and scala) development. I recommend using [IntelliJ IDEA](https://www.jetbrains.com/idea/). There is also a free community version available!
7. Make sure, IntelliJ IDEA and the scala plugin are up to date. Every time I open this software, a new update is available...
8. Choose open project and select the freshly cloned `chatoverflow` folder (with the main build.sbt) in it. Make sure, auto-import is NOT enabled.
9. Click on `Refresh sbt project`. Make sure to use a up-to-date java 1.8 SDK, do not change any other settings in the dialog window.
10. Wait for 5.2 years. In the background, 3 projects are build, ressources will be downloaded and a lot of magic happens!
11. When the process finished, you should see the project and its children in the project view. Get to know them (or wait till I introduce them later).
6. Open your favorite IDE for java and scala development. We recommend using [IntelliJ IDEA](https://www.jetbrains.com/idea/). You can use the free community version as well as the ultimate version.

Side note: The next steps assume that you are using IntelliJ IDEA.
<!-- 7. Make sure, IntelliJ IDEA and the scala plugin are up to date. Every time I open this software, a new update is available... -->
7. If there are any updates to either IntelliJ IDEA or the scala plugin, please install them.
8. Open the cloned `chatoverflow` folder. Make sure that IntelliJ's `auto-import` is NOT enabled.
9. Click on `Refresh sbt project`. Make sure to use a up-to-date java 1.8 SDK and do not change any other settings in the dialog window.
10. Please wait for the process to finish. In the background, 3 projects are built, resources will be downloaded and a lot of magic happens!
11. When the process has finished, you should see the project and its children in IntelliJ's project view. <!--Get to know them (or wait till I introduce them later).-->

Site note: The run configurations contain a lot of sbt commands and presets for plugin development. You will probably never need more. Brief documentation can be found in the main build.sbt file.
Side note: The run configurations contain a lot of sbt commands and presets for plugin development. You probably will not need more. Brief documentation can be found in the main build.sbt file.

12. Select the run configuration `Fetch plugins (sbt fetch)` and execute it. A file named `plugins.sbt` should be generated, containing all references to plugins and the api project.
13. Use sbt reload (the refresh icon in the upper left corner of the sbt window, opened e.g. by View -> Tool Windows -> SBT) to reload the whole project. Now, the child projects should be recognized correctly.
14. Have a look at the application run configurations. Do they have an red X? Then they are broken. Click on `Edit configurations` and select `root` as module ("Use classpath as module"). Now, they should be happy.
15. Execute the run configuration `[Advanced] Full Reload and Run ChatOverflow` (and pray). This is only needed for the first startup and when you create a new plugin!
13. Use `sbt reload` (the refresh icon in the upper left corner of the sbt window, opened by View -> Tool Windows -> SBT) to reload the whole project. Now, the child projects should have been recognized correctly.
14. Have a look at the application run configurations. Do they have a red X? Then they are broken. Click on `Edit configurations` and select `root` as module ("Use classpath as module"). Now it should work, .
15. Execute the run configuration `[Advanced] Full Reload and Run ChatOverflow`. This is only needed for the first compilation or if you create a new plugin! Those are the steps that are executed now:

* A lot happens now. First, all target folders and the build environment is cleaned.
* Then, the project is freshly build and all plugins are fetched. The plugins.sbt file is generated. Then, the whole build environment is reloaded.
* First, all target folders and the build environment is cleaned.
* Then the project is built and all plugins are fetched. The `plugins.sbt` file gets generated. After that, the whole build environment gets reloaded.
* Next, all plugin versions and the api version are printed for debug reasons.
* Last, all plugins compiled code is packaged into several .JAR-Archives and copied to the `plugins`-folder.
* Everything is set up, and the chat overflow framework is executed. It checks the plugin folder and tries to load the plugins. Done!
* Finally, the plugin's compiled code gets packaged into several .JAR-Archives and they get copied into the `plugins`-folder.
* Everything is set up and the chat overflow framework gets executed. Now the framework tries to load the plugins from the `plugins`-folder. Done!

Site note: You do not have to repeat this step after each simple change. There is also a `[Simple]` run configuration for this.
<!-- Side note: You do not have to repeat this step after each simple change. There is also a `[Simple]` run configuration for this. -->
Side note: You must not re-execute this run configuration after you have changed something. Now you can just use the `[Simple]` run configuration.

Yet another site note: The projects folder structure is realy easy.
Yet another side note: The projects folder structure is really simple.

* the api folder contains the API-project with all common chat overflow modelling.
* the plugins folder contains packaged plugins. Just leave him alone.
* the plugins-public folder contains all official/public chat overflow plugins. Each plugin has its own sub project.
* the project folder contains build code for the plugin framework.
* the src folder contains the chat overflow framework code.
* the target folder contains the build framework.
* The `api` folder contains the API-project with all common chat overflow modelling.
* The `plugins` folder contains our packaged plugins. Just leave them alone.
* The `plugins-public` folder contains all official/public chat overflow plugins. Each plugin has its own sub project.
* The `project` folder contains build code for the plugin framework.
* The `src` folder contains the chat overflow framework code.
* The `target` folder contains the built framework.

16. You're done. Happy coding!