Hi Jody,
On Tue, Mar 21, 2023 at 1:06 PM Jody Garnett <jody.garnett@anonymised.com> wrote:
Your proposal is straightforward and to the point, some feedback for discussion:
- I would title the proposal “GeoServer ACL project” (as the important part is a new project; rather than the repository where it is located).
Done. Good advice.
- One thing I would like addressed in the proposal is indicating how to keep the project in sync with the geoserver update cycle? I do not wish to be in the situation where an “official” geoserver project is running against an unsupported version of geoserver.
I’ve been thinking deeply about this, follow up below.
- The proposal covers publishing maven artifacts which would be done from build.geoserver.org (as I do not wish to see credentials scattered across systems).
Sounds good to me.
Suggest that “GeoServer ACL” main branch track GeoServer main branch in order to stay in sync and releasable? Taking the geoserver acl client community module to an extension would also meet this goal.
My concern goes beyond version matching.
For the plugin, as a community module, and at least until it becomes an extension, the chances
to get a good test coverage from the CI builds are very few.
Besides compatibility with the server part API, concerns are limited to the stability of GeoServer’s ResourceAccessManager interface and the Wicket libraries.
For the server part, the important thing is the REST API version/compatibility with the plugin, may it evolve over time.
Making GeoServer ACL’s version follow GeoServer’s main branch version doesn’t make a lot of sense, as we’d either be forced to release new versions that have no changes, or be unable to, or forced to do additional work, if a new GeoServer ACL version is released and it needs to be backported to stable geoserver versions.
If both the plugin and the server stay on the same git repository, it’s easier to ensure they stay compatible, as the CI build can run the necessary integration tests, and avoid situations like GeoFence’s plugin (not embedded) where integration tests are never run, and I couldn’t make them pass by setting up a standalone instance as indicated in the tests comments.
So, being a separate product, having its own life cycle make the most sense, and moreover, the CI builds could run plugin integration tests against several geoserver versions for a single GeoServer ACL version. e.g.
mvn verify -Dgs.version=2.24-SNAPSHOT
mvn verify -Dgs.version=2.23.0
mvn verify -Dgs.version=2.22.2
Then the GeoServer plugin’s community module itself could be a practically empty jar with pure dependencies, on a specific gs-acl version.
To exemplify, gs-acl 1.0 is released, the geoserver community module depends on gs-acl-plugin:1.0 for the main branch, and all the stable branches.
When gs-acl 1.1 is released, we change the dependency of geoserver’s main branch community module to gs-acl-plugin:1.1.
Gabe
–
Jody Garnett
On Tue, Mar 21, 2023 at 6:23 AM Gabriel Roldan <gabriel.roldan@anonymised.com> wrote:
Hi all,
as discussed in the “GSIP-216 GeoFence 4.0.x” email thread, I’ve created a new GSIP to request hosting the GeoFence fork, called GeoServer ACL, as a sibling project to GeoServer, GeoFence, and GeoServer Cloud, under the /geoserver Github organization.
Please see https://github.com/geoserver/geoserver/wiki/GSIP-217 for details, comment back and vote.
Best regards,
Gabriel.
camptocamp
INNOVATIVE SOLUTIONS
BY OPEN SOURCE EXPERTS
Gabriel Roldan
Geospatial Developer
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel