[Geoserver-devel] Version control for local Geoserver Repository

I am building a local geoserver extension which does not have the plan to make it open source, and I only use that extension with geoserver myself. I think this does not breach the GPL License used by Geoserver. If yes, plesae let me know.

The extension started from a tag v2.17.0:

git pull [https://github.com/geoserver/geoserver.git](https://github.com/geoserver/geoserver.git)
git checkout -b local_branch 2.17.0
//coding for the extension

Now once we want to sync with the current stable version of geoserver: 2.18.0, I tried this:

git checkout master
git pull --tags
git checkout local_branch 
git merge 2.18.0

Now there are so many files changed/confliction because of the version changed in the pom.xml:

<groupId>org.geoserver</groupId>
<artifactId>geoserver</artifactId>
<packaging>pom</packaging>
<version>2.18.0</version>
<name>GeoServer</name>

I am afraid this may break the git history.

Then I wonder how does geoserver handle this problem? Since every time a new stable version is released, the version number will be updated too. But I do not find the commits for the version update.

Even though I read the development guide at https://docs.geoserver.org/stable/en/developer/source.html#source-code, I still can not find a solution.

Any suggestions or the best practice for this customization workflow?

Thanks.

You could rebase your changes. Or just move your extension out of the tree.

Its your code - if it isn’t going to be part of GeoServer do it however you like.

Brad.

···

On 13 Oct 2020 3:03 pm, maven apache <apachemaven0@…403…> wrote:

I am building a local geoserver extension which does not have the plan to make it open source, and I only use that extension with geoserver myself. I think this does not breach the GPL License used by Geoserver. If yes, plesae let me know.

The extension started from a tag v2.17.0:

git pull [https://github.com/geoserver/geoserver.git](https://github.com/geoserver/geoserver.git)
git checkout -b local_branch 2.17.0
//coding for the extension

Now once we want to sync with the current stable version of geoserver: 2.18.0, I tried this:

git checkout master
git pull --tags
git checkout local_branch 
git merge 2.18.0

Now there are so many files changed/confliction because of the version changed in the pom.xml:

<groupId>org.geoserver</groupId>
<artifactId>geoserver</artifactId>
<packaging>pom</packaging>
<version>2.18.0</version>
<name>GeoServer</name>

I am afraid this may break the git history.

Then I wonder how does geoserver handle this problem? Since every time a new stable version is released, the version number will be updated too. But I do not find the commits for the version update.

Even though I read the development guide at https://docs.geoserver.org/stable/en/developer/source.html#source-code, I still can not find a solution.

Any suggestions or the best practice for this customization workflow?

Thanks.

If the extension is completely separated from geoserver and modules, I can create a new project, which makes geoserver and the other modules as dependencies,

However when I built the extension, there were some other modifications for the geoserver codebase. That’s why I have to put my extension under a geoserver tree like /src/extension/myext/...

···

On 13 Oct 2020 3:03 pm, maven apache <apachemaven0@anonymised.com> wrote:

I am building a local geoserver extension which does not have the plan to make it open source, and I only use that extension with geoserver myself. I think this does not breach the GPL License used by Geoserver. If yes, plesae let me know.

The extension started from a tag v2.17.0:

git pull [https://github.com/geoserver/geoserver.git](https://github.com/geoserver/geoserver.git)
git checkout -b local_branch 2.17.0
//coding for the extension

Now once we want to sync with the current stable version of geoserver: 2.18.0, I tried this:

git checkout master
git pull --tags
git checkout local_branch 
git merge 2.18.0

Now there are so many files changed/confliction because of the version changed in the pom.xml:

<groupId>org.geoserver</groupId>
<artifactId>geoserver</artifactId>
<packaging>pom</packaging>
<version>2.18.0</version>
<name>GeoServer</name>

I am afraid this may break the git history.

Then I wonder how does geoserver handle this problem? Since every time a new stable version is released, the version number will be updated too. But I do not find the commits for the version update.

Even though I read the development guide at https://docs.geoserver.org/stable/en/developer/source.html#source-code, I still can not find a solution.

Any suggestions or the best practice for this customization workflow?

Thanks.

Technically your extension is still GPL, you have to share the source code with the person running the application, in this case yourself :slight_smile:

When working in isolation on an extension for a customer … I tend to make a separate web-app (via war overlay, or by copying the geoserver web app). This gives me an easy way to try out the change and debug.

···


Jody Garnett

Then just learn about git pull --rebase

Brad

From: maven apache apachemaven0@anonymised.com
Sent: Tuesday, 13 October 2020 6:59 PM
To: bradh@anonymised.com91…
Cc: Geoserver-devel geoserver-devel@anonymised.comet
Subject: Re: [Geoserver-devel] Version control for local Geoserver Repository

If the extension is completely separated from geoserver and modules, I can create a new project, which makes geoserver and the other modules as dependencies,

However when I built the extension, there were some other modifications for the geoserver codebase. That’s why I have to put my extension under a geoserver tree like /src/extension/myext/...

On Tue, Oct 13, 2020 at 2:53 PM <bradh@anonymised.com…> wrote:

You could rebase your changes. Or just move your extension out of the tree.

Its your code - if it isn’t going to be part of GeoServer do it however you like.

Brad.

On 13 Oct 2020 3:03 pm, maven apache <apachemaven0@anonymised.com> wrote:

I am building a local geoserver extension which does not have the plan to make it open source, and I only use that extension with geoserver myself. I think this does not breach the GPL License used by Geoserver. If yes, plesae let me know.

The extension started from a tag v2.17.0:

git pull [https://github.com/geoserver/geoserver.git](https://github.com/geoserver/geoserver.git)
git checkout -b local_branch 2.17.0
//coding for the extension

Now once we want to sync with the current stable version of geoserver: 2.18.0, I tried this:

git checkout master
git pull --tags
git checkout local_branch 
git merge 2.18.0

Now there are so many files changed/confliction because of the version changed in the pom.xml:

<groupId>org.geoserver</groupId>
<artifactId>geoserver</artifactId>
<packaging>pom</packaging>
<version>2.18.0</version>
<name>GeoServer</name>

I am afraid this may break the git history.

Then I wonder how does geoserver handle this problem? Since every time a new stable version is released, the version number will be updated too. But I do not find the commits for the version update.

Even though I read the development guide at https://docs.geoserver.org/stable/en/developer/source.html#source-code, I still can not find a solution.

Any suggestions or the best practice for this customization workflow?

Thanks.