[GeoNode-devel] GNIP-64 Status and Plan

Travis Brundage travislbrundage at gmail.com
Tue Nov 5 11:18:15 PST 2019


Thank you all for your feedback!

Toni: No actually, I am still having that issue. :/ That is a good hint
though - I will debug some more, but if anyone knows why that is happening,
it would be much appreciated...

Alessio: Thanks so much for your feedback. I think your suggestions make
sense. I'll work on that today and update the GNIP main post with the
relevant links and post a shorter notice as a comment about the update.

Cheers,
Travis

On Tue, Nov 5, 2019 at 1:55 AM Toni Schönbuchner <
toni.schoenbuchner at csgis.de> wrote:

> A W E S O M E ~ T R A V I S !
>
> Many many thanks!
>
> (
> Have you already found a solution for the celery path problem? If I
> remember
> corectly there have been some updates on celery-beat (maybe celery as
> well) which might
> cause issues with docker ...
> )
>
> – toni
>
>
> *Von: *Travis Brundage <travislbrundage at gmail.com>
> *Betreff: **[GeoNode-devel] GNIP-64 Status and Plan*
> *Datum: *5. November 2019 um 05:22:59 MEZ
> *An: *geonode-devel at lists.osgeo.org
>
>
> Hi all,
>
> Just wanted to write a status report with regards to GNIP-64. I am excited
> to hear that help is on the way too :)
>
> Most of what Coop wrote in the GNIP is still accurate. Broadly speaking, I
> see this broken down into the following steps:
> 1. Python library analysis
> 2. Test suite improvements
> 3a. Python library updates
> 3b. GeoNode codebase update
> 3c. django-osgeo-importer update
> 4. Testing and release
> 5. Repeat for Django 2
>
> Coop had already started a spreadsheet detailing the libraries GeoNode
> uses and their Python 3 compatibility. I have updated this recently. You
> can find it here:
> https://docs.google.com/spreadsheets/d/1buUuIeGPL8zfv5xFotfGMpxHt2i8njoCEh4Y4kna3rY/edit#gid=0
>
> From this you can see a few categories.
> 1. Some libraries are completely outdated and inactive and require removal
> and if needed, replacement.
> 2. Some libraries do not yet have Python 3 compatibility, but we could
> update them for the community. Otherwise, we’ll need to remove and possibly
> replace them.
> 3. Some libraries do not yet have Python 3 compatibility, but the
> community is working on it or their github still has activity. We could
> save these for last or offer to help their community upgrade.
> 4. Some libraries do not officially support Python 3 or 3.7 specifically,
> but seem to build fine as is in a Python 3.7 environment.
> 5. Some libraries are GeoNode community’s. :)
> 6. Some libraries have newer versions that are Python 3+ compatible, but
> not backwards compatible with Python 2.7. These need to be delayed until
> GeoNode core is updated.
> 7. The majority thankfully - some libraries are fully Python 2.7 and 3.7+
> compatible.
>
> Next is improving GeoNode’s test suite. I don’t have a precise goal here,
> but want to improve the speed and coverage of GeoNode’s tests to prepare
> for the Python 3 upgrade, so we can more easily identify any functionality
> that gets broken. I have already run into a few issues and made another
> thread about this.
>
> For upgrading the codebase, I planned to branch off the next release,
> 2.10.1.
>
> From what I have researched, I don’t know if there’s a “correct” way to
> update a codebase to Python 3, but seems like there are a few strategies.
> My plan was to create a new branch and brute force the 2to3.py script, and
> hopefully with good test coverage, get a useful coverage report to see what
> has broken.
>
> Possibly that is too much and won’t prove fruitful, in which case I would
> start a new branch and do it app by app instead. I have not tested 2to3.py
> in the wild before, so I don’t know how helpful it is, but from what I’ve
> read it is a good starting point usually.
>
> As a side note, it will be helpful to configure your IDE of choice with a
> Python 3 interpreter. I use PyCharm, so some instructions for that here:
> https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html
>
> In general my plan of attack is:
> 1. Run Python 2to3 script
> 2. Clean up anything breaking GeoNode build entirely
> 3. Run tests for coverage report to see what breaks
> 4. Clean up until tests pass
> 5. Check visually in GeoNode that the app seems to function
> 6. Clean up until interactions work as expected
>
> Simultaneously we’ll need to update the remaining Python libraries. This
> will be a bit tricky as some provide Python 3 compatibility on later
> versions, but not with Python 2 compatibility. Also, some still do not have
> Python 3 compatibility at all, so the work is on us or drop those libraries.
>
> We'll also need to make sure GeoNode's libraries are updated, and it was
> planned to do django-osgeo-importer as part of the work too.
>
> If all goes well, we should have a functioning GeoNode running on Python
> 3. :)
> I think Alessio’s testing document will be very helpful again here:
> https://docs.google.com/spreadsheets/d/13aaZ1l_2_SHzdmz9DwExEO_jxwgNuXfMa6oF5eWIv_s/edit#gid=376642658
>
> I don’t know exactly how this work should be merged in (or if it would
> be), as I assume development will continue on GeoNode master, so we will
> need to resolve changes along the way. This won’t be a problem for a little
> while though.
>
> Finally, repeat for Django 2. My hope is this part is easier, as I think
> there are less compatibility conflicts there, but we’ll see.
>
> I think that about wraps it up. Let me know your thoughts or if you have
> any advice for me, and feel free to message me here or on Gitter to
> coordinate on this effort. Thank you all for helping out on this!
>
> Cheers,
> Travis
>
>
>
> *Von: *Alessio Fabiani <alessio.fabiani at geo-solutions.it>
> *Betreff: **Aw: [GeoNode-devel] GNIP-64 Status and Plan*
> *Datum: *5. November 2019 um 10:04:57 MEZ
> *An: *Travis Brundage <travislbrundage at gmail.com>, Travis Brundage <
> tbrundage at boundlessgeo.com>
> *Kopie: *geonode-devel <geonode-devel at lists.osgeo.org>
>
>
> @Travis Brundage <tbrundage at boundlessgeo.com> awesome plan, thanks.
>
> Just a couple of comments, for now:
>
> 1. After the release, the "master" branch will become GeoNode 3.0 and
> officially it will start the Python 3 upgrade.
>
> 2. I would keep the issue (https://github.com/GeoNode/geonode/issues/4276)
> updated with the references to discussions and decisions.
> We should edit the GNIP description and add to the bottom all the links to
> ml discussion also, that can be retrieved from here
> http://osgeo-org.1560.x6.nabble.com/GeoNode-devel-f5185388.html
>
> Also, at a certain point, we would need (at least this is my suggestion)
> to translate the plan into a Google spreadheest and a list of tasks so that
> other people can easily keep them a start working in parallel. What do you
> think?
>
> Thanks again,
> Alessio.
>
>
>
> Il giorno mar 5 nov 2019 alle ore 05:26 Travis Brundage <
> travislbrundage at gmail.com> ha scritto:
>
>> Hi all,
>>
>> Just wanted to write a status report with regards to GNIP-64. I am
>> excited to hear that help is on the way too :)
>>
>> Most of what Coop wrote in the GNIP is still accurate. Broadly speaking,
>> I see this broken down into the following steps:
>> 1. Python library analysis
>> 2. Test suite improvements
>> 3a. Python library updates
>> 3b. GeoNode codebase update
>> 3c. django-osgeo-importer update
>> 4. Testing and release
>> 5. Repeat for Django 2
>>
>> Coop had already started a spreadsheet detailing the libraries GeoNode
>> uses and their Python 3 compatibility. I have updated this recently. You
>> can find it here:
>> https://docs.google.com/spreadsheets/d/1buUuIeGPL8zfv5xFotfGMpxHt2i8njoCEh4Y4kna3rY/edit#gid=0
>>
>> From this you can see a few categories.
>> 1. Some libraries are completely outdated and inactive and require
>> removal and if needed, replacement.
>> 2. Some libraries do not yet have Python 3 compatibility, but we could
>> update them for the community. Otherwise, we’ll need to remove and possibly
>> replace them.
>> 3. Some libraries do not yet have Python 3 compatibility, but the
>> community is working on it or their github still has activity. We could
>> save these for last or offer to help their community upgrade.
>> 4. Some libraries do not officially support Python 3 or 3.7 specifically,
>> but seem to build fine as is in a Python 3.7 environment.
>> 5. Some libraries are GeoNode community’s. :)
>> 6. Some libraries have newer versions that are Python 3+ compatible, but
>> not backwards compatible with Python 2.7. These need to be delayed until
>> GeoNode core is updated.
>> 7. The majority thankfully - some libraries are fully Python 2.7 and 3.7+
>> compatible.
>>
>> Next is improving GeoNode’s test suite. I don’t have a precise goal here,
>> but want to improve the speed and coverage of GeoNode’s tests to prepare
>> for the Python 3 upgrade, so we can more easily identify any functionality
>> that gets broken. I have already run into a few issues and made another
>> thread about this.
>>
>> For upgrading the codebase, I planned to branch off the next release,
>> 2.10.1.
>>
>> From what I have researched, I don’t know if there’s a “correct” way to
>> update a codebase to Python 3, but seems like there are a few strategies.
>> My plan was to create a new branch and brute force the 2to3.py script, and
>> hopefully with good test coverage, get a useful coverage report to see what
>> has broken.
>>
>> Possibly that is too much and won’t prove fruitful, in which case I would
>> start a new branch and do it app by app instead. I have not tested 2to3.py
>> in the wild before, so I don’t know how helpful it is, but from what I’ve
>> read it is a good starting point usually.
>>
>> As a side note, it will be helpful to configure your IDE of choice with a
>> Python 3 interpreter. I use PyCharm, so some instructions for that here:
>> https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html
>>
>> In general my plan of attack is:
>> 1. Run Python 2to3 script
>> 2. Clean up anything breaking GeoNode build entirely
>> 3. Run tests for coverage report to see what breaks
>> 4. Clean up until tests pass
>> 5. Check visually in GeoNode that the app seems to function
>> 6. Clean up until interactions work as expected
>>
>> Simultaneously we’ll need to update the remaining Python libraries. This
>> will be a bit tricky as some provide Python 3 compatibility on later
>> versions, but not with Python 2 compatibility. Also, some still do not have
>> Python 3 compatibility at all, so the work is on us or drop those libraries.
>>
>> We'll also need to make sure GeoNode's libraries are updated, and it was
>> planned to do django-osgeo-importer as part of the work too.
>>
>> If all goes well, we should have a functioning GeoNode running on Python
>> 3. :)
>> I think Alessio’s testing document will be very helpful again here:
>> https://docs.google.com/spreadsheets/d/13aaZ1l_2_SHzdmz9DwExEO_jxwgNuXfMa6oF5eWIv_s/edit#gid=376642658
>>
>> I don’t know exactly how this work should be merged in (or if it would
>> be), as I assume development will continue on GeoNode master, so we will
>> need to resolve changes along the way. This won’t be a problem for a little
>> while though.
>>
>> Finally, repeat for Django 2. My hope is this part is easier, as I think
>> there are less compatibility conflicts there, but we’ll see.
>>
>> I think that about wraps it up. Let me know your thoughts or if you have
>> any advice for me, and feel free to message me here or on Gitter to
>> coordinate on this effort. Thank you all for helping out on this!
>>
>> Cheers,
>> Travis
>> _______________________________________________
>> geonode-devel mailing list
>> geonode-devel at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/geonode-devel
>>
>
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V for more information.
> ==
> Ing. Alessio Fabiani
> @alfa7691
> Founder/Technical Lead
>
> GeoSolutions S.A.S.
> Via di Montramito 3/A - 55054  Massarosa (LU) - Italy
> phone: +39 0584 962313
> fax:     +39 0584 1660272
> mob:   +39 331 6233686
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
> -------------------------------------------------------
> 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.
>
> 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.
>
>
> _______________________________________________
> geonode-devel mailing list
> geonode-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/geonode-devel
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-devel/attachments/20191105/7adf54b9/attachment-0001.html>


More information about the geonode-devel mailing list