-
Notifications
You must be signed in to change notification settings - Fork 0
Migration Roadmap
A brief roadmap to the future of the Early Detection Research Network (EDRN) portal, and for data-centric portals in general.
Plone is incredibly secure which is fantastic but it's also incredibly challenging to use. Major hurdles exist today for the EDRN portal:
-
Integration of data-rich statistical graphics.
- There are plenty of off-the-shell visualization and interactivity libraries, notably Plotly Dash. These can be dropped into numerous content management systems but not Plone. Plone has its own, different, incompatible way of handling JavaScript and CSS add-ons.
- We have abused iframes and pre-generated images to get the graphics we want so far, but this isn't an agile approach.
-
Migration to Python 3. Python 2 reached end-of-life over a year ago, and the vulnerability scans are finding more and more problems.
- We are at the point that to continue to make portal releases we can no longer upgrade dependent packages and must surgically excise shared objects and libraries to satisfy the scans.
- If the scan were to find a problem in Python 2 itself, we would have no way to proceed. This is a real possibility: security updates to Python 2 are no longer being published.
- Plone finally supports Python 3, but Plone uses a "no-SQL" hierarchical database that contains serialized Python objects, and the objects are completely incompatible between Python 2 and Python 3. The EDRN portal contains thousands of Python 2 objects.
- In some rare cases it's possible to automate the migration from Python 2 to 3, but that assuredly doesn't apply to us. Why? Because the current Python 2 database contains dozens, perhaps hundreds of objects whose code no longer exists thanks to numerous upgrades over time, and this prevents migrations from proceeding.
Given the hurdles described above, we can at least enumerate some goals in a migration from Plone and reasoning to do so:
Copyright © 2019–2021 California Institute of Technology.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.