Difference between revisions of "User:Alvonruff"

From ISFDB
Jump to navigation Jump to search
Line 3: Line 3:
 
== Large Projects ==
 
== Large Projects ==
 
* 2022: Update LAMP stack to latest version (except Python) and enable HTTPS. [https://isfdb.org/wiki/index.php/User:Alvonruff#System_Upgrade_Notes DONE]
 
* 2022: Update LAMP stack to latest version (except Python) and enable HTTPS. [https://isfdb.org/wiki/index.php/User:Alvonruff#System_Upgrade_Notes DONE]
* 2023: Update site to Python3. [https://isfdb.org/wiki/index.php/User:Alvonruff#Python3_Notes Underway]. This is a larger project than the LAMP update, and will take a few months.
+
* 2023: Update site to Python3. [https://isfdb.org/wiki/index.php/User:Alvonruff#Python3_Notes Underway]. This is a larger project than the LAMP update, and will take a few months. Steps
 +
** Do a blunt-force port to python3 on isfdb2.org. This will discover the porting patterns we need to worry about.
 +
** Integrate tab/spaces changes in small bundles. This should be invisible to isfdb.org.
 +
** Integrate print changes with futurize imports in small bundles. This should be invisible to isfdb.org.
 +
** Integrate string changes in small bundles. This should be invisible to isfdb.org.
 +
** Integrate mysql connector class in small bundles. This should be invisible to isfdb.org.
 +
** I reserve writing down the next steps until I get further along and can diff the python2 and python3 versions.
 
* 2024: Update charset to UTF-8.
 
* 2024: Update charset to UTF-8.
  

Revision as of 15:42, 17 May 2023

Founder of the ISFDB.

Large Projects

  • 2022: Update LAMP stack to latest version (except Python) and enable HTTPS. DONE
  • 2023: Update site to Python3. Underway. This is a larger project than the LAMP update, and will take a few months. Steps
    • Do a blunt-force port to python3 on isfdb2.org. This will discover the porting patterns we need to worry about.
    • Integrate tab/spaces changes in small bundles. This should be invisible to isfdb.org.
    • Integrate print changes with futurize imports in small bundles. This should be invisible to isfdb.org.
    • Integrate string changes in small bundles. This should be invisible to isfdb.org.
    • Integrate mysql connector class in small bundles. This should be invisible to isfdb.org.
    • I reserve writing down the next steps until I get further along and can diff the python2 and python3 versions.
  • 2024: Update charset to UTF-8.

Python3 Notes

The primary difficulty with a python3 conversion project is trying to avoid a massive rewrite of the website, and then checkin all those changes with a single big bang integration. That said, the primary function of the scripts is to read data from MySQL, and then organize and print that information to the browser. But the two things that change with python3 is the MySQL connector (which requires a rewrite of all code interfacing with MySQL), and the way print statements work (which requires a rewrite of all code outputting information). So the first goal is to find a way for the ISFDB to exist simultaneously in Python2 and Python3 format. General outline of steps to move to Python3:

  1. Python3 does not tolerate mixed tabs and spaces. There needs to be a project to convert the tabs in all files to 8 spaces. This change works on either Python2 or Python3
  2. Introduce a MySQL connector class, which hides the differences between MySQLdb (which only works on Python2) and mysql.connector (which only works on Python3).
  3. Convert all MySQL code to use the new connector class. This is a large project in itself, with details listed here.
  4. futurize all print statements. This can be done by running futurize, and then keeping only the print() syntax changes. These will run fine under python2.
  5. Perform the Python3 Conversion, and follow up on the numerous porting issues.
  6. Update all character sets. Final procedure still TBD.
  7. Change the default charset in MySQL
  8. Repair strings which have URL encodings in MySQL

Status Trackers

System Upgrade Notes

Details on how to bring up a LAMP stack (on two different OSs), and how to setup https:

User:Alvonruff/Test Page

Other Loose Notes

Obituary Sources

Reading List