Nov 4, 2021 3:03:15 PM Thomas Dumont avatar

Project management with GitHub

GitHub

Since December 2014, the source code of generic plugins (old branch / portal / trunk of SVN) is migrated on the GitHub platform: https://github.com/lutece-platform

Each plugin or module has its own repository in GitHub. The name of the repository is constructed as follows:

lutece - [ category ] - [plugin | module | library] - [ plugin name ]

So there is no tree like in SVN.

Local organization and tools

It is suggested to create a local directory: ~ / java / github / lutece or c: \ java \ github \ lutece which we will designate by the variable LUTECE_GITHUB_HOME.

Utility scripts are available at the following address: https://github.com/lutece-platform/git-scripts Download them with the Download Zip and install them in the LUTECE_GITHUB_HOME directory

  • For a first installation of the repositories: start the script init_projects.sh . This script will create a directory for each repository and make a local copy of it ( git clone )
  • For an update of all projects: run the update_projects.sh script. This script will update the local repository for all projects ( git pull ).

For more information on using these scripts please refer to the Synchronizing GitHub repositories page

Work in multi-projects

To work in multi-projects, copy the main pom.xml in the LUTECE_GITHUB_HOME directory and in the profile definition multi-project modify the list of projects

<Profile>
        <Id> multi-project </id>
        <Modules>
<Module> Lutece-core </module>
            <Module> Lutece-search-library-lucene </module>
            <Module> Lutece-cms-plugin-paper </module>
            ...
        </Modules>
  </Profile>

Migration of SVN components to GIT

  • To migrate the generic components of the old SVN (/ portal / trunk /): Start the import_svn_project.sh script with the following parameters:
    • the name of the category in SVN
    • the name of the component
    • the name of the category in GiHub

Ex: import_project.sh cms plugin-document cms