<div dir="ltr">Toni, would you mind opening a <a href="https://github.com/GeoNode/geonode-project/discussions">Discussion</a> inside the geonode-project repo?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 8, 2023 at 9:56 AM Toni Schönbuchner <<a href="mailto:toni.schoenbuchner@csgis.de">toni.schoenbuchner@csgis.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div>Dear Giovanni,</div><div><br></div><div>this sounds like a great idea.</div><div>As you saying this will not solve all problems on updating like in case one needs to change or extend settings.py</div><div>However. The .env file might be a good starting point.</div><div><br></div><div>There is something similar for docker:</div><div><a href="https://github.com/Rillke/Docker-env-file-update/tree/master" target="_blank">https://github.com/Rillke/Docker-env-file-update/tree/master</a></div><div><br></div><div>Some time ago I’ve translated the provided bash script to python that I can share:</div><div><a href="https://gist.github.com/t-book/bfeaaa3b550558797b3c16567f8a5c88" target="_blank">https://gist.github.com/t-book/bfeaaa3b550558797b3c16567f8a5c88</a></div><div><br></div><div><br></div><div><b>Given a fresh .env_template like</b></div><div><br></div><div><div># This is a comment that should be copied as is</div><div># This is a comment that should be copied as is</div><div># This is a comment that should be copied as is</div><div><br></div><div><br></div><div>COMPOSE_PROJECT_NAME=geonode</div><div>DOCKERHOST=123.123.124</div><div>DOCKER_HOST_IP=</div><div># See <a href="https://github.com/containers/podman/issues/13889" target="_blank">https://github.com/containers/podman/issues/13889</a></div><div># DOCKER_BUILDKIT=0</div><div>DOCKER_ENV=production</div><div>ALLOWED_HOSTS=["*“]</div><div><br></div><div><b>A custom_local_env like:</b></div><div><br></div><div><div>COMPOSE_PROJECT_NAME=geonode</div><div>DOCKERHOST=</div><div># See <a href="https://github.com/containers/podman/issues/13889" target="_blank">https://github.com/containers/podman/issues/13889</a></div><div>ALLOWED_HOSTS=["localhost", "127.0.0.1“]</div><div>NOT_IN_TEMPLATE=ABC</div><div><br></div><div><br></div><div><b>The generated output would be</b></div><div><br></div><div><div># This is a comment that should be copied as is</div><div># This is a comment that should be copied as is</div><div># This is a comment that should be copied as is</div><div><br></div><div><br></div><div>COMPOSE_PROJECT_NAME=geonode</div><div><br></div><div># Updated by tonischonbuchner on 2023-08-08 09:36:41</div><div>DOCKERHOST=123.123.124</div><div><br></div><div># Added by tonischonbuchner on 2023-08-08 09:36:42</div><div>DOCKER_HOST_IP=</div><div># See <a href="https://github.com/containers/podman/issues/13889" target="_blank">https://github.com/containers/podman/issues/13889</a></div><div><br></div><div># Added by tonischonbuchner on 2023-08-08 09:36:42</div><div># DOCKER_BUILDKIT=0</div><div><br></div><div># Added by tonischonbuchner on 2023-08-08 09:36:44</div><div>DOCKER_ENV=production</div><div><br></div><div># Updated by tonischonbuchner on 2023-08-08 09:36:45</div><div>ALLOWED_HOSTS=["localhost", "127.0.0.1"]</div><div><br></div><div><br></div><div><b>Where the script </b></div><div><ul><li>Creates a new env file based on both files</li><li>Copies lines that do not exist in local file but in the template file as is</li><li>If the var exists in both, it asks to update the value from template to local</li><li>Leaves a comment on changed or added lines </li></ul><div>What is missing is handling vars that exist in the local file but not in the template.</div></div><div>Currently the script informs but does not copy them (should be easy to change).</div><div><br></div><div>This is far from perfect, not once battled tested and more of a POC.</div><div>But maybe can help others to build upon.</div><div><br></div><div>Best regards</div><div><br></div><div>Toni</div></div></div></div><div><br></div><div><br><blockquote type="cite"><div>   1. Re: Practices on maintaining a geonode project, PR: "Align to<br>      GeoNode master 4.2.0" (Giovanni Allegri)<br><br><div style="margin:0px"><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif;color:rgb(127,127,127)"><b>Von: </b></span><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif">Giovanni Allegri <<a href="mailto:giovanni.allegri@geosolutionsgroup.com" target="_blank">giovanni.allegri@geosolutionsgroup.com</a>><br></span></div><div style="margin:0px"><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif;color:rgb(127,127,127)"><b>Betreff: </b></span><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif"><b>Aw: [GeoNode-devel] Practices on maintaining a geonode project, PR: "Align to GeoNode master 4.2.0"</b><br></span></div><div style="margin:0px"><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif;color:rgb(127,127,127)"><b>Datum: </b></span><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif">7. August 2023 um 14:31:46 MESZ<br></span></div><div style="margin:0px"><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif;color:rgb(127,127,127)"><b>An: </b></span><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif">Florian Hoedt <<a href="mailto:florian.hoedt@thuenen.de" target="_blank">florian.hoedt@thuenen.de</a>><br></span></div><div style="margin:0px"><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif;color:rgb(127,127,127)"><b>Kopie: </b></span><span style="font-family:-webkit-system-font,"Helvetica Neue",Helvetica,sans-serif">Toni Schönbuchner <<a href="mailto:toni.schoenbuchner@csgis.de" target="_blank">toni.schoenbuchner@csgis.de</a>>,  geonode-devel <<a href="mailto:geonode-devel@lists.osgeo.org" target="_blank">geonode-devel@lists.osgeo.org</a>><br></span></div><br><br><div dir="ltr"><div dir="auto">Thanks for raising this point, and for sharing your solutions.<div dir="auto"><br></div><div dir="auto">Keeping a project aligned to GeoNode (and the GeoNode-project itself) can be really troublesome. We also don't have a one-fits-all solution.</div><div dir="auto"><br></div><div dir="auto">The idea of the create_env.py command was to start creating a set of utilities to help with the creation and the upgrade of downstream projects. It was only the first step, and the PR from Alessio improves it.<br></div><div dir="auto">The next step wanted to be a utility that could track changes and guide the user in the procedure of updating an existing project, starting from the .env file which is the principal target of most of the changes.</div><div>A very rough idea would be:</div><div><br></div><div><ol><li>when a new project is created the commit for the geonode-project template is written to the .env file by the create_env.py utility</li><li>the upgrade utility retrieves the commit </li><li>it compares the .env.sample commit with the target branch to which you want to upgrade the project</li><li>it tries to extend the current .env file with any new env var, and marks them with a specific comment (similar to the fuzzy translation strings)</li><li>any var in the existing .env file that doesn't match the new .env.sample will be marked with a specific comment</li></ol><div>The same utility could generate the list of changed files between the original commit and the target branch.</div></div><div><br></div><div dir="auto">I'm aware that this doesn't solve all the issues, but it would help a lot. What do you think?</div><div>Hey, I'm not saying that we will do it! :) That would be a nice feature, but at the moment we don't have plans for it.</div><div><br></div><div>Giovanni</div></div></div></div></blockquote></div></div>_______________________________________________<br>
geonode-devel mailing list<br>
<a href="mailto:geonode-devel@lists.osgeo.org" target="_blank">geonode-devel@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/geonode-devel" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/geonode-devel</a><br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="color:rgb(34,34,34);font-family:Arial;font-size:11pt;white-space:pre-wrap">==</span><br></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">GeoServer Professional Services from the experts!</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">Visit </span><a href="http://bit.ly/gs-services-us" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);vertical-align:baseline;white-space:pre-wrap">http://bit.ly/gs-services-us</span></a><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"> for more information.</span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">==</span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">Dott. Giovanni Allegri</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">Technical Lead / Project Manager</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">GeoSolutions Group</span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">phone: +39 0584 962313</span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">cell:      +39 345 2815774</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><span><span style="font-size:11pt;vertical-align:baseline">fax:      +39 0584 1660272</span></span><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><a href="https://www.geosolutionsgroup.com/" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);vertical-align:baseline;white-space:pre-wrap">https://www.geosolutionsgroup.com/</span></a><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><a href="http://twitter.com/geosolutions_it" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);vertical-align:baseline;white-space:pre-wrap">http://twitter.com/geosolutions_it</span></a><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">-------------------------------------------------------</span></p><span style="font-size:11pt;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;vertical-align:baseline;white-space:pre-wrap">Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.</span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;vertical-align:baseline;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;vertical-align:baseline;white-space:pre-wrap">This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.</span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;vertical-align:baseline;white-space:pre-wrap"><br></span></span></div></div>