diff --git a/docs/source/developer/index.rst b/docs/source/developer/index.rst index 932bf4a2b..0b126c439 100644 --- a/docs/source/developer/index.rst +++ b/docs/source/developer/index.rst @@ -3,9 +3,9 @@ Developer Guide To start using the MapStore geOrchestra project as a developer you need the following: * install the needed requirements: - * NodeJS (>=8) - * JDK (>= 8) - * Maven (>= 3.x) + * NodeJS (>=16) + * JDK (>= 11) + * Maven (>= 3.6) * clone the GitHub repository: @@ -66,9 +66,48 @@ To deploy your local backend you will need to: * properly change the configuration files, in particular to set the database and LDAP repository connection settings -If you don't have a local database and LDAP repository properly configured for geOrchestra you can use remote ones. +If you don't have a local database and LDAP repository properly configured for geOrchestra you can use remote ones, +by configuring their access in ``web/src/main/resources/mapstore.properties`` + Remember: to use a local backend both a PostgreSQL database and LDAP repository needs to be available and properly populated. +If you dont want to have a PostgreSQL database, you can fallback to h2 using this diff: + +.. code-block:: diff + :caption: web/src/main/resources/applicationContext.xml.diff + @@ -127,15 +127,8 @@ + + + + - + - + - + - + - + - + - + - + - + + + + + + + @@ -155,7 +148,7 @@ + + + + - + + + + + + +running the local backend with ``npm run backend:dev`` will create a new ``test.h2.db`` database in the tomcat root. + +if you start the local backend outside of an existing tomcat instance, you should also set the ``georchestra.datadir`` +property in the ``properties`` `section of web/pom.xml `_, pointing at the full path of your local datadir. + Developing the frontend ----------------------- @@ -80,6 +119,23 @@ To start the frontend locally, just run: Your application will be available at http://localhost:8081 +If developing remotely, you can tell webpack to serve the files at a given hostname/ip, eg in `package.json `_: + +.. code-block:: diff + :caption: package.json.diff + + - "start": "webpack serve --progress --color --port 8081 --hot --inline --content-base .", + + "start": "webpack serve --progress --color --public my.georchestra.org --host 0.0.0.0 --port 8081 --hot --inline --content-base .", + +will make it available at http://my.georchestra.org:8081 + +When doing modifications on the frontend code, ``webpack`` will automatically +rebundle the source and reload the page, no need to do that manually. + +The only way to get *unminified* javascript debugguable via the browser console is to use ``npm start`` which uses the `debug configuration for webpack `_. + +The `production configuration `_ minimises the javascript. + Mocking security ---------------- @@ -143,3 +199,19 @@ Next, to change the default theme you have to open the ``localConfig.json`` and } } } + +Managing the branches +--------------------- + +When developing a feature or upgrading a local installation, one often switches branches from ``master`` to other stable branches. + +in all cases, it is **strongly** advised to run the following when switching branches: + + .. code-block:: shell + + git checkout + git submodule update + rm -Rf package-lock.json node_modules/ MapStore2/node_modules # clean up + npm install + +otherwise you might run into conflicts between various version of the javascript libraries