mirror of
				https://github.com/gristlabs/grist-core.git
				synced 2025-06-13 20:53:59 +00:00 
			
		
		
		
	(core) Upgrade to Python 3.11
Summary: Replaced mentions of Python 3.9 with 3.11 Test Plan: this Reviewers: paulfitz, georgegevoian Reviewed By: paulfitz, georgegevoian Subscribers: dsagal, georgegevoian, paulfitz Differential Revision: https://phab.getgrist.com/D3980
This commit is contained in:
		
							parent
							
								
									6416994c22
								
							
						
					
					
						commit
						5dfa9a542c
					
				
							
								
								
									
										14
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Dockerfile
									
									
									
									
									
								
							| @ -39,8 +39,8 @@ RUN yarn run build:prod | ||||
| ## Python collection stage | ||||
| ################################################################################ | ||||
| 
 | ||||
| # Fetch python3.9 and python2.7 | ||||
| FROM python:3.9-slim-buster as collector | ||||
| # Fetch python3.11 and python2.7 | ||||
| FROM python:3.11-slim-buster as collector | ||||
| 
 | ||||
| # Install all python dependencies. | ||||
| ADD sandbox/requirements.txt requirements.txt | ||||
| @ -89,13 +89,13 @@ COPY --from=builder /grist/static /grist/static-built | ||||
| COPY --from=collector /usr/bin/python2.7 /usr/bin/python2.7 | ||||
| COPY --from=collector /usr/lib/python2.7 /usr/lib/python2.7 | ||||
| COPY --from=collector /usr/local/lib/python2.7 /usr/local/lib/python2.7 | ||||
| COPY --from=collector /usr/local/bin/python3.9 /usr/bin/python3.9 | ||||
| COPY --from=collector /usr/local/lib/python3.9 /usr/local/lib/python3.9 | ||||
| COPY --from=collector /usr/local/lib/libpython3.9.* /usr/local/lib/ | ||||
| COPY --from=collector /usr/local/bin/python3.11 /usr/bin/python3.11 | ||||
| COPY --from=collector /usr/local/lib/python3.11 /usr/local/lib/python3.11 | ||||
| COPY --from=collector /usr/local/lib/libpython3.11.* /usr/local/lib/ | ||||
| # Set default to python3 | ||||
| RUN \ | ||||
|   ln -s /usr/bin/python3.9 /usr/bin/python && \ | ||||
|   ln -s /usr/bin/python3.9 /usr/bin/python3 && \ | ||||
|   ln -s /usr/bin/python3.11 /usr/bin/python && \ | ||||
|   ln -s /usr/bin/python3.11 /usr/bin/python3 && \ | ||||
|   ldconfig | ||||
| 
 | ||||
| # Copy runsc. | ||||
|  | ||||
| @ -377,7 +377,7 @@ Then, you can run the main test suite like so: | ||||
| yarn test | ||||
| ``` | ||||
| 
 | ||||
| Python tests may also be run locally. (Note: currently requires Python 3.9.) | ||||
| Python tests may also be run locally. (Note: currently requires Python 3.9 - 3.11.) | ||||
| 
 | ||||
| ``` | ||||
| yarn test:python | ||||
|  | ||||
| @ -1021,9 +1021,13 @@ function findPython(command: string|undefined, preferredVersion?: string) { | ||||
|     } | ||||
|   } | ||||
|   // Fall back on system python.
 | ||||
|   return which.sync(preferredVersion === '2' ? 'python2' : 'python3', {nothrow: true}) | ||||
|     || which.sync(preferredVersion === '2' ? 'python2.7' : 'python3.9', {nothrow: true}) | ||||
|     || which.sync('python'); | ||||
|   const systemPrefs = preferredVersion === '2' ? ['2.7', '2', ''] : ['3.11', '3.10', '3.9', '3', '']; | ||||
|   for (const version of systemPrefs) { | ||||
|     const pythonPath = which.sync(`python${version}`, {nothrow: true}); | ||||
|     if (pythonPath) { | ||||
|       return pythonPath; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  | ||||
| @ -10,8 +10,7 @@ To setup your environment, you would need to install the following dependencies: | ||||
|  - git | ||||
|  - [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md) (recommended) or nodejs installed on your system | ||||
|  - Chromium to run the end-to-end tests | ||||
|  - Python (preferably Python 3.9) and virtualenv | ||||
|     - :warning: As of 2023-06-06, Python 3.11 is not supported due to the version of the [wrapt dependency](https://github.com/GrahamDumpleton/wrapt/issues/196) | ||||
|  - Python (preferably Python 3.11, minimum 3.9) and virtualenv | ||||
| 
 | ||||
| ### Clone the repository | ||||
| 
 | ||||
| @ -61,7 +60,7 @@ You can also use nodejs installed in your system. To prevent incompatibilities, | ||||
| Be sure to have Python and virtualenv installed. On debian-based Linux distributions, you can simply run the following command as root: | ||||
| 
 | ||||
| ```bash | ||||
| # apt install python3.9 python3.9-venv | ||||
| # apt install python3.11 python3.11-venv | ||||
| ``` | ||||
| 
 | ||||
| ### Install the project dependencies and build | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| FROM python:3.9 | ||||
| FROM python:3.11 | ||||
| 
 | ||||
| COPY requirements3.txt /tmp/requirements3.txt | ||||
| 
 | ||||
|  | ||||
| @ -173,9 +173,9 @@ if not include_python2: | ||||
|   # We expect python3 in /usr/bin or /usr/local/bin. | ||||
|   candidates = [ | ||||
|     path | ||||
|     # Pick the most generic python if not matching python3.9. | ||||
|     # Pick the most generic python if not matching python3.11. | ||||
|     # Sorry this is delicate because of restores, mounts, symlinks. | ||||
|     for pattern in ['python3.9', 'python3', 'python3*'] | ||||
|     for pattern in ['python3.11', 'python3.10', 'python3.9', 'python3', 'python3*'] | ||||
|     for root in ['/usr/local', '/usr'] | ||||
|     for path in glob.glob(f'{root}/bin/{pattern}') | ||||
|     if os.path.exists(path) | ||||
|  | ||||
| @ -12,3 +12,4 @@ python-dateutil | ||||
| six | ||||
| sortedcontainers | ||||
| unittest-xml-reporting | ||||
| typing-extensions  # used by astroid before Python 3.11 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| # | ||||
| # This file is autogenerated by pip-compile with Python 3.9 | ||||
| # This file is autogenerated by pip-compile with Python 3.11 | ||||
| # by the following command: | ||||
| # | ||||
| #    pip-compile --output-file=core/sandbox/requirements3.txt core/sandbox/requirements3.in | ||||
| @ -48,7 +48,7 @@ sortedcontainers==2.4.0 | ||||
| stack-data==0.5.1 | ||||
|     # via friendly-traceback | ||||
| typing-extensions==4.4.0 | ||||
|     # via astroid | ||||
|     # via -r core/sandbox/requirements3.in | ||||
| unittest-xml-reporting==2.0.0 | ||||
|     # via -r core/sandbox/requirements3.in | ||||
| wrapt==1.15.0 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user