Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: archivematica-storage-service does not use Python 3 #806

Closed
sallain opened this issue Jul 19, 2019 · 8 comments
Closed

Problem: archivematica-storage-service does not use Python 3 #806

sallain opened this issue Jul 19, 2019 · 8 comments

Comments

@sallain
Copy link
Member

sallain commented Jul 19, 2019

Please describe the problem you'd like to be solved.
archivematica-storage-service needs to use Python 3 as per the Python 3 ADR.

Describe the solution you'd like to see implemented.
Refactor archivematica-storage-service to use Python 3.

Additional context

Python 2.7 final release in July 2020: here
Ubuntu 20.04 (LTS) and Python 2.7: here
Python3 may be default in CentOS8/RHEL8: here


For Artefactual use:
Please make sure these steps are taken before moving this issue from Review to Done:

  • All PRs related to this issue are properly linked 👍
  • All PRs related to this issue have been merged 👍
  • Test plan for this issue has been implemented and passed 👍
  • Documentation regarding this issue has been written and it has been added to the release notes, if needed 👍
@sallain sallain added this to the 2.0.0 milestone Jul 25, 2019
@sallain sallain added Status: refining The issue needs additional details to ensure that requirements are clear. Status: ready The issue is sufficiently described/scoped to be picked up by a developer. and removed Status: refining The issue needs additional details to ensure that requirements are clear. labels Jul 31, 2019
@replaceafill replaceafill self-assigned this Jul 31, 2019
@replaceafill replaceafill added Status: in progress Issue that is currently being worked on. and removed Status: ready The issue is sufficiently described/scoped to be picked up by a developer. labels Jul 31, 2019
@ross-spencer
Copy link
Contributor

 

@ross-spencer
Copy link
Contributor

SWORD2 issue logged with the repo maintainers: swordapp/python-client-sword2#16

NB. I left #806 (comment) blank in-case this ticket becomes its own epic so codetree can modify that field as it needs.

@sallain sallain added the Status: blocked Work on the issue is not possible until the blocking condition is removed. label Aug 20, 2019
@sallain sallain removed this from the 2.0.0 milestone Nov 26, 2019
@sromkey sromkey added this to the 1.11.0 milestone Dec 2, 2019
@sromkey sromkey removed this from the 1.11.0 milestone Dec 2, 2019
@replaceafill replaceafill removed their assignment Dec 12, 2019
@ross-spencer
Copy link
Contributor

From internal discussions we have the following gaps in the Py3 migration of the Storage Service:

  • Sword2 client library,
  • LOCKSS-o-matic model,
  • DSpace model.

As such, for 1.11 we will attempt to cherry-pick and merge the pieces of the Storage Service migration that are compatible with both Python 2 and Python 3, and we will continue to run the Storage Service as Python 2 in 1.11. and try and plug the gaps for 1.12.

Notes on Python 2.7 in 2020:

Python 2.7 final release in July 2020: here
Ubuntu 20.04 (LTS) and Python 2.7: here
Python3 may be default in CentOS8/RHEL8: here

@sromkey sromkey added this to the 1.11.0 milestone Jan 27, 2020
@replaceafill replaceafill added Status: review The issue's code has been merged and is ready for testing/review. and removed Status: in progress Issue that is currently being worked on. labels Feb 11, 2020
@sallain
Copy link
Member Author

sallain commented Feb 11, 2020

@ross-spencer I don't think this needs any testing, right? SS in Python 3 is not ready to be run in production, we plan to get it finished and test for the next release.

@ross-spencer
Copy link
Contributor

Good question @sallain. Definitely nothing we can do around Python 3 here. Where the changes we've made are across the code-base, I don't think there is anything specific. I think some of the more important aspects will be tested through our regression testing. Check-marks below represent things I tested and know Douglas was thinking about as we worked on this, + things we get for free from Travis):

  • Storage service can be deployed and migrations are run: ✔️
  • Storage service unit tests run: ✔️
  • The range of AMAUAT tests run as anticipated (these test both the UI interaction + API): ✔️
  • Transfers and integrations work as anticipated: ✔️ (looking promising)

We'll see pretty quickly (imo) if anything strange has been introduced.

With regards to Github/Kanban mechanics/process, do you want to create a new ticket for that final tranche of storage service work and we can add notes etc. about remaining work? Or keep this open post 1.11?

@sallain
Copy link
Member Author

sallain commented Feb 12, 2020

@ross-spencer Okay, perfect - then from a manual tester's perspective, there's nothing specific to do here.

I think it would be best to open a new ticket, so that we can close this one as part of the release; otherwise we'd need to de-milestone which seems odd since work has been done and merged on this issue.

@sromkey sromkey added Status: in progress Issue that is currently being worked on. Status: review The issue's code has been merged and is ready for testing/review. and removed Status: review The issue's code has been merged and is ready for testing/review. Status: in progress Issue that is currently being worked on. labels Feb 18, 2020
@ross-spencer
Copy link
Contributor

Closing with note from Slack re: PY3 readiness:

I think given the extensive use through testing, and the fact anything works on any of the servers, they can be signed-off. As working baby-steps to Py3 🐍.

And to answer your question -- Dashboard: unfortunately not because of Gearman. But once the Gearman problem is solved, then theoretically yes. But it's a moving goalpost for now until we commit to making a Py3 virtual environment available (or docker image) in a future release + Gearman 3.

Storage Service - we'd need to fill in those storage service specific gaps first. But it's looking good so far.

@ross-spencer ross-spencer removed Status: blocked Work on the issue is not possible until the blocking condition is removed. Status: review The issue's code has been merged and is ready for testing/review. labels Mar 23, 2020
@ross-spencer
Copy link
Contributor

ross-spencer commented Mar 23, 2020

NB. Complete Py3 readiness will need to be handled in a separate Issue per #806 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants