Old usage is still accepted but causes a deprecation warning, saying
we will remove it in v0.21. Similar to #2300. I am planning to add
an option to do wasm compilation in a subsequent PR.

I also did some cleanup from #2300 and added tests for the deprecation 
warnings.
Change extract_dir argument of unpackArchive to be a keyword argument. Old usage is still accepted but causes a deprecation warning, saying
we will remove it in v0.21. Similar to #2300. I am planning to add
an option to do wasm compilation in a subsequent PR.

I also did some cleanup from #2300 and added tests for the deprecation 
warnings.
(deprecation-timeline)=

# Pyodide Deprecation Timeline

Each Pyodide release may deprecate certain features from previous releases in a backward incompatible way.
If a feature is deprecated, it will continue to work until its removal, but raise warnings.
We try to ensure deprecations are done over at least two minor(feature) releases,
however, as Pyodide is still in beta state, this list is subject to change and
some features can be removed without deprecation warnings.
More details about each item can often be found in the {ref}`changelog`.

## 0.21.0

- The `globals` argument to `runPython` and `runPythonAsync` will be passed as a named argument only.

## 0.20.0

- The skip-host key will be removed from the meta.yaml format. If needed, install a host copy of the package with pip instead.
- `pyodide-interrupts` module will be removed. If you were using this for some reason, use
  {any}`setInterruptBuffer <pyodide.setInterruptBuffer>` instead.

## 0.19.0

- The default working directory (home directory) inside the Pyodide
  virtual file system has been changed from `/` to `/home/pyodide`. To get the
  previous behavior, you can

  - call `os.chdir("/")` in Python to change working directory or
  - call {any}`loadPyodide <globalThis.loadPyodide>` with the `homedir="/"`
    argument

- When a JavaScript function is called from Python, PyProxy arguments and return values will be automatically destroyed when the function is finished.

(deprecation-timeline)=

# Pyodide Deprecation Timeline

Each Pyodide release may deprecate certain features from previous releases in a
backward incompatible way. If a feature is deprecated, it will continue to work
until its removal, but raise warnings. We try to ensure deprecations are done
over at least two minor(feature) releases, however, as Pyodide is still in beta
state, this list is subject to change and some features can be removed without
deprecation warnings. More details about each item can often be found in the
{ref}`changelog`.

## 0.21.0

- The `globals` argument to `runPython` and `runPythonAsync` will be passed as a
  named argument only.
- The `extract_dir` argument to `unpackArchive` will be passed as a named
  argument only.

## 0.20.0

- The skip-host key will be removed from the meta.yaml format. If needed,
  install a host copy of the package with pip instead.
- `pyodide-interrupts` module will be removed. If you were using this for some
  reason, use {any}`setInterruptBuffer <pyodide.setInterruptBuffer>` instead.

## 0.19.0

- The default working directory (home directory) inside the Pyodide virtual file
  system has been changed from `/` to `/home/pyodide`. To get the previous
  behavior, you can

  - call `os.chdir("/")` in Python to change working directory or
  - call {any}`loadPyodide <globalThis.loadPyodide>` with the `homedir="/"`
    argument

- When a JavaScript function is called from Python, PyProxy arguments and return
  values will be automatically destroyed when the function is finished.
