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

Switch to using arg map for testing args #22076

Closed
eleanorjboyd opened this issue Sep 25, 2023 · 2 comments
Closed

Switch to using arg map for testing args #22076

eleanorjboyd opened this issue Sep 25, 2023 · 2 comments
Assignees
Labels
area-testing debt Covers everything internal: CI, testing, refactoring of the codebase, etc. needs PR Ready to be worked on

Comments

@eleanorjboyd
Copy link
Member

@connor4312 has written a great way to handle command line args for js-debug here. This should be incorporated into how testing args are handled as it is cleaner and would be easier to then add and remove args as needed. (Yes we should no longer be manipulating args to the extent we were before but something like adding --collect-only or checking for --color=no are both still applicable)

Connor's code with annotation

/**
 * Converts an array of strings (with or without '=') into a map. 
 * If a string contains '=', it is split into a key-value pair, with the portion 
 * before the '=' as the key and the portion after the '=' as the value.
 * If no '=' is found in the string, the entire string becomes a key with a value of null.
 *
 * @param args - Readonly array of strings to be converted to a map.
 * @returns A map representation of the input strings.
 */
const argsToMap = (args: ReadonlyArray<string>) => {
  const map: { [key: string]: string | null } = {};
  for (const arg of args) {
    const delimiter = arg.indexOf('=');
    if (delimiter === -1) {
      map[arg] = null;
    } else {
      map[arg.slice(0, delimiter)] = arg.slice(delimiter + 1);
    }
  }

  return map;
};

/**
 * Converts a map into an array of strings. 
 * Each key-value pair in the map is transformed into a string.
 * If the value is null, only the key is represented in the string. 
 * If the value is defined (and not null), the string is in the format "key=value". 
 * If a value is undefined, the key-value pair is skipped.
 *
 * @param map - The map to be converted to an array of strings.
 * @returns An array of strings representation of the input map.
 */
const mapToArgs = (map: { [key: string]: string | null | undefined }) => {
  const out: string[] = [];
  for (const key of Object.keys(map)) {
    const value = map[key];
    if (value === undefined) {
      continue;
    }

    out.push(value === null ? key : `${key}=${value}`);
  }

  return out;
};

New method to add arg when not already present

/**
 * Adds an argument to the map only if it doesn't already exist.
 * 
 * @param map - The map of arguments.
 * @param argKey - The argument key to be checked and added.
 * @param argValue - The value to set for the argument if it's not already in the map.
 * @returns The updated map.
 */
function addArgIfNotExist(
    map: { [key: string]: string | null | undefined },
    argKey: string,
    argValue: string | null
): { [key: string]: string | null | undefined } {
    // Only add the argument if it doesn't exist in the map.
    if (map[argKey] === undefined) {
        map[argKey] = argValue;
    }

    return map;
}
@eleanorjboyd eleanorjboyd added debt Covers everything internal: CI, testing, refactoring of the codebase, etc. area-testing needs PR Ready to be worked on labels Sep 25, 2023
@eleanorjboyd eleanorjboyd self-assigned this Sep 25, 2023
eleanorjboyd added a commit that referenced this issue Feb 20, 2024
fixes #22658

also implements switching to arg mapping which is this issue here:
#22076

---------

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
@drothlis
Copy link

This (merged in #22885) breaks legitimate arguments to pytest, e.g. #22999 (comment)).

It simply isn't possible to parse unix command-line arguments unless you know what the program expects. For example:

pytest --ignore file1 --ignore file2

You have to know that (for pytest, specifically) --ignore consumes 1 parameter; you can't tell just from looking at the arguments.

wesm pushed a commit to posit-dev/positron that referenced this issue Mar 28, 2024
Merge pull request #395 from posit-dev/merge/v2024.2.0

Merge upstream: `v2024.2.0`
--------------------
Commit message for posit-dev/positron-python@7d85a51:

ignore pyright errors in ms testing files

--------------------
Commit message for posit-dev/positron-python@f9a3259:

Bump flask from 3.0.1 to 3.0.2 (posit-dev/positron-python#354)

Bumps [flask](https://github.com/pallets/flask) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](pallets/flask@3.0.1...3.0.2)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@ea812a4:

Bump ipywidgets from 8.1.1 to 8.1.2 (posit-dev/positron-python#368)

Bumps [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) from 8.1.1 to 8.1.2.
- [Release notes](https://github.com/jupyter-widgets/ipywidgets/releases)
- [Commits](jupyter-widgets/ipywidgets@8.1.1...8.1.2)

---
updated-dependencies:
- dependency-name: ipywidgets
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Isabel Zimmerman <54685329+isabelizimm@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@e3a5399:

Bump pyright from 1.1.349 to 1.1.351 (posit-dev/positron-python#379)

Bumps [pyright](https://github.com/RobertCraigie/pyright-python) from 1.1.349 to 1.1.351.
- [Release notes](https://github.com/RobertCraigie/pyright-python/releases)
- [Commits](RobertCraigie/pyright-python@v1.1.349...v1.1.351)

---
updated-dependencies:
- dependency-name: pyright
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@2eeb677:

Bump polars from 0.20.6 to 0.20.11 (posit-dev/positron-python#394)

Bumps [polars](https://github.com/pola-rs/polars) from 0.20.6 to 0.20.11.
- [Release notes](https://github.com/pola-rs/polars/releases)
- [Commits](pola-rs/polars@py-0.20.6...py-0.20.11)

---
updated-dependencies:
- dependency-name: polars
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@573d9fd:

Bump ipykernel from 6.29.0 to 6.29.3 (posit-dev/positron-python#390)

Bumps [ipykernel](https://github.com/ipython/ipykernel) from 6.29.0 to 6.29.3.
- [Release notes](https://github.com/ipython/ipykernel/releases)
- [Changelog](https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md)
- [Commits](ipython/ipykernel@v6.29.0...v6.29.3)

---
updated-dependencies:
- dependency-name: ipykernel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@334b383:

update package.json

--------------------
Commit message for posit-dev/positron-python@7ce08b1:

Merge tag 'v2024.2.0' into merge/v2024.2.0

--------------------
Commit message for posit-dev/positron-python@063ba15:

Finalized-release-2024.2.0 (posit-dev/positron-python#22996)

Finalized release 2024.2.0: removing -rc
--------------------
Commit message for posit-dev/positron-python@3eef025:

Bump release 2024.2 (posit-dev/positron-python#22972)

Bump release 2024.2
--------------------
Commit message for posit-dev/positron-python@1fbd77b:

 skip tests, pytest upstream regression (posit-dev/positron-python#22974)

Short-term fix to stop CI from failing due to a regression upstream from
pytest. See issue for details:
microsoft/vscode-python#22965.
--------------------
Commit message for microsoft/vscode-python@4fca030:

Adding GDPR tag for isFirstSession (microsoft/vscode-python#22955)


--------------------
Commit message for microsoft/vscode-python@ba94553:

Modify telemetry to contain trigger time as property (microsoft/vscode-python#22941)


--------------------
Commit message for microsoft/vscode-python@178a0b2:

Fix bug with symlink for pytest execution (microsoft/vscode-python#22952)

Fixes microsoft/vscode-python#22938
--------------------
Commit message for microsoft/vscode-python@bae7d40:

Update vscode-tas-client version (microsoft/vscode-python#22876)


--------------------
Commit message for microsoft/vscode-python@75ed73e:

Fix Bug with Pytest when using symlinked workspaces (microsoft/vscode-python#22885)

fixes microsoft/vscode-python#22658

also implements switching to arg mapping which is this issue here:
microsoft/vscode-python#22076

---------

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
--------------------
Commit message for microsoft/vscode-python@e53651d:

Prevent first Python command being lost (microsoft/vscode-python#22902)

Fixes: microsoft/vscode-python#22673
Fixes: microsoft/vscode-python#22545
Fixes: microsoft/vscode-python#22691 

Making best effort to address issue where very first command sent to
REPL via Terminal gets ignored, or gets pasted both in Terminal and in
REPL.

With the fix, we observe whether Python REPL is launched in Terminal via
VS Code's `onDidWriteTerminalData` and send the command, or wait three
seconds as a fallback mechanism.

These two combined together will significantly reduce or resolve
all-together the chance of very first command being swollen up or gets
pasted twice in Terminal and REPL previously where it did not have
context of whether Python REPL instance have started inside the Terminal
or not.
--------------------
Commit message for microsoft/vscode-python@a60fbd5:

Add GDPR tags for new Pylance properties (microsoft/vscode-python#22922)


--------------------
Commit message for microsoft/vscode-python@aff0b05:

Use python debugger in testing (microsoft/vscode-python#22903)

closed: microsoft/vscode-python-debugger#174
--------------------
Commit message for microsoft/vscode-python@84734a8:

Updating installed extensions section of README.md (microsoft/vscode-python#22893)

Adding the Python Debugger to the installed extensions section of the
README.
--------------------
Commit message for microsoft/vscode-python@2159238:

Bump actions/setup-python from 4 to 5 in /.github/actions/build-vsix (microsoft/vscode-python#22602)

Bumps [actions/setup-python](https://github.com/actions/setup-python)
from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<p>In scope of this release, we update node version runtime from node16
to node20 (<a
href="https://redirect.github.com/actions/setup-python/pull/772">actions/setup-python#772</a>).
Besides, we update dependencies to the latest versions.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v4.8.0...v5.0.0">https://github.com/actions/setup-python/compare/v4.8.0...v5.0.0</a></p>
<h2>v4.8.0</h2>
<h2>What's Changed</h2>
<p>In scope of this release we added support for GraalPy (<a
href="https://redirect.github.com/actions/setup-python/pull/694">actions/setup-python#694</a>).
You can use this snippet to set up GraalPy:</p>
<pre lang="yaml"><code>steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4 
  with:
    python-version: 'graalpy-22.3' 
- run: python my_script.py
</code></pre>
<p>Besides, the release contains such changes as:</p>
<ul>
<li>Trim python version when reading from file by <a
href="https://github.com/FerranPares"><code>@​FerranPares</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/628">actions/setup-python#628</a></li>
<li>Use non-deprecated versions in examples by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/724">actions/setup-python#724</a></li>
<li>Change deprecation comment to past tense by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/723">actions/setup-python#723</a></li>
<li>Bump <code>@​babel/traverse</code> from 7.9.0 to 7.23.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/743">actions/setup-python#743</a></li>
<li>advanced-usage.md: Encourage the use actions/checkout@v4 by <a
href="https://github.com/cclauss"><code>@​cclauss</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/729">actions/setup-python#729</a></li>
<li>Examples now use checkout@v4 by <a
href="https://github.com/simonw"><code>@​simonw</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/738">actions/setup-python#738</a></li>
<li>Update actions/checkout to v4 by <a
href="https://github.com/dmitry-shibanov"><code>@​dmitry-shibanov</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/761">actions/setup-python#761</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/FerranPares"><code>@​FerranPares</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/628">actions/setup-python#628</a></li>
<li><a href="https://github.com/timfel"><code>@​timfel</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/694">actions/setup-python#694</a></li>
<li><a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/724">actions/setup-python#724</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v4...v4.8.0">https://github.com/actions/setup-python/compare/v4...v4.8.0</a></p>
<h2>v4.7.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump word-wrap from 1.2.3 to 1.2.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/702">actions/setup-python#702</a></li>
<li>Add range validation for toml files by <a
href="https://github.com/dmitry-shibanov"><code>@​dmitry-shibanov</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/726">actions/setup-python#726</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v4...v4.7.1">https://github.com/actions/setup-python/compare/v4...v4.7.1</a></p>
<h2>v4.7.0</h2>
<p>In scope of this release, the support for reading python version from
pyproject.toml was added (<a
href="https://redirect.github.com/actions/setup-python/pull/669">actions/setup-python#669</a>).</p>
<pre lang="yaml"><code>      - name: Setup Python
        uses: actions/setup-python@v4
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/0a5c61591373683505ea898e09a3ea4f39ef2b9c"><code>0a5c615</code></a>
Update action to node20 (<a
href="https://redirect.github.com/actions/setup-python/issues/772">#772</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/0ae58361cdfd39e2950bed97a1e26aa20c3d8955"><code>0ae5836</code></a>
Add example of GraalPy to docs (<a
href="https://redirect.github.com/actions/setup-python/issues/773">#773</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/b64ffcaf5b410884ad320a9cfac8866006a109aa"><code>b64ffca</code></a>
update actions/checkout to v4 (<a
href="https://redirect.github.com/actions/setup-python/issues/761">#761</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/8d2896179abf658742de432b3f203d2c2d86a587"><code>8d28961</code></a>
Examples now use checkout@v4 (<a
href="https://redirect.github.com/actions/setup-python/issues/738">#738</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/7bc6abb01e0555719edc2dbca70a2fde309e5e56"><code>7bc6abb</code></a>
advanced-usage.md: Encourage the use actions/checkout@v4 (<a
href="https://redirect.github.com/actions/setup-python/issues/729">#729</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/e8111cec9d3dc15220d8a3b638f08419f57b906a"><code>e8111ce</code></a>
Bump <code>@​babel/traverse</code> from 7.9.0 to 7.23.2 (<a
href="https://redirect.github.com/actions/setup-python/issues/743">#743</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/a00ea43da65e7c04d2bdae58b3afecd77057eb9e"><code>a00ea43</code></a>
add fix for graalpy ci (<a
href="https://redirect.github.com/actions/setup-python/issues/741">#741</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/8635b1ccc5934e73ed3510980fd2e7790b85839b"><code>8635b1c</code></a>
Change deprecation comment to past tense (<a
href="https://redirect.github.com/actions/setup-python/issues/723">#723</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/f6cc428f535856f9c23558d01765a42a4d6cf758"><code>f6cc428</code></a>
Use non-deprecated versions in examples (<a
href="https://redirect.github.com/actions/setup-python/issues/724">#724</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/5f2af211d616f86005883b44826180b21abb4060"><code>5f2af21</code></a>
Add GraalPy support (<a
href="https://redirect.github.com/actions/setup-python/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-python/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for microsoft/vscode-python@83cf53b:

Add "isMeasurement" for LANGUAGE_SERVER_TRIGGER_DURATION (microsoft/vscode-python#22912)

cc/ @cwebster-99
--------------------
Commit message for microsoft/vscode-python@7be33eb:

Add more shell integration sequences to check for (microsoft/vscode-python#22911)

Based on discussion with Daniel

For microsoft/vscode-python#22440
--------------------
Commit message for microsoft/vscode-python@6838ccf:

Do not activate microvenv if terminal.activateEnvironment is set to false and when not in terminal experiment (microsoft/vscode-python#22909)


--------------------
Commit message for microsoft/vscode-python@2dc158e:

Log options being passed when using environment collection APIs (microsoft/vscode-python#22907)

For microsoft/vscode-python#22899
--------------------
Commit message for microsoft/vscode-python@5f971ae:

Prepend `PATH` both at shell integration and process creation (microsoft/vscode-python#22905)


--------------------
Commit message for microsoft/vscode-python@5174d5c:

Improve shell integration reliability for zsh (microsoft/vscode-python#22891)

Closes microsoft/vscode-python#22881

If status changes, re-run activation. Also persist once we know shell
integration works for a shell.
--------------------
Commit message for microsoft/vscode-python@b0c34e3:

Add UnicodeDecodeError catching (microsoft/vscode-python#22873)

Resolve `UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in
position 48995: unexpected end of data`

Co-authored-by: Aydar Kamaltdinov <a.kamaltdinov@tinkoff.ru>
--------------------
Commit message for microsoft/vscode-python@8496dfe:

Remove experimental flag for create env prompt (microsoft/vscode-python#22892)

Remove experimental flag for `python.createEnvironment.trigger`.
--------------------
Commit message for microsoft/vscode-python@c4c05a6:

update tree comparison for tests to be order independent for children (microsoft/vscode-python#22832)

following the introduction of pytest 8, the order in which children were
listed changed. Since the order is not important, this updates the tests
to make the tests not consider order of children when comparing actual
and expected outcomes of test runs.
--------------------
Commit message for microsoft/vscode-python@4030717:

Use terminal data write event to figure out whether shell integration is working (microsoft/vscode-python#22872)

Closes microsoft/vscode-python#22439

Blocked on microsoft/vscode#204616
--------------------
Commit message for microsoft/vscode-python@d674a17:

Fix Run Recent Command Caching Issue (microsoft/vscode-python#22867)

Resolves: microsoft/vscode-python#22811

Fixing caching issue where users were experiencing cached
success/failure decoration that were impacted when using `Terminal: Run
Recent Command` on success/failure commands
--------------------
Commit message for microsoft/vscode-python@c0bf1b7:

Improve time taken to trigger language server startup once extension activation is triggered (microsoft/vscode-python#22514)

For microsoft/vscode-python#22146 

Improves time taken to trigger language server startup once extension
activation is triggered

- Do not block discovery on windows registry
- Do not blocking auto-selection on validation of all interpreters
- Make Windows Path locator faster
--------------------
Commit message for microsoft/vscode-python@20c1a10:

Log when running Python file (microsoft/vscode-python#22851)

For microsoft/vscode-python#22711
--------------------
Commit message for microsoft/vscode-python@8aaa70e:

Fix venv activation for cshell (microsoft/vscode-python#22852)

Closes microsoft/vscode-python#22822

Use current shell to figure out whether shell integration is working,
even when using fallback shell for getting environment variables.
--------------------
Commit message for microsoft/vscode-python@1626c46:

Do not run commands to check whether shell integration is working (microsoft/vscode-python#22850)

Closes microsoft/vscode-python#22774 closes
microsoft/vscode-python#22743
--------------------
Commit message for microsoft/vscode-python@13a6727:

include multiple pytest versions in PR check (microsoft/vscode-python#22813)

update PR check workflow to include testing Python tests against 3
versions of pytest: pre-release, stable release, and oldest supported
version.

---------

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
--------------------
Commit message for microsoft/vscode-python@6e8c56c:

Bump dev version 2024.1 (microsoft/vscode-python#22805)



Lead-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Aydar Kamaltdinov <aydar.kamaltdinov@gmail.com>
Co-authored-by: paulacamargo25 <paulitacv25@gmail.com>
Co-authored-by: Luciana Abud <45497113+luabud@users.noreply.github.com>
Co-authored-by: Courtney Webster <60238438+cwebster-99@users.noreply.github.com>
Co-authored-by: Anthony Kim <62267334+anthonykim1@users.noreply.github.com>
Co-authored-by: Isabel Zimmerman <isabel.zimmerman@rstudio.com>
Co-authored-by: Eleanor Boyd <eleanorboyd@microsoft.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: GitHub <noreply@github.com>
wesm pushed a commit to posit-dev/positron that referenced this issue Mar 28, 2024
Merge pull request #395 from posit-dev/merge/v2024.2.0

Merge upstream: `v2024.2.0`
--------------------
Commit message for posit-dev/positron-python@7d85a51:

ignore pyright errors in ms testing files

--------------------
Commit message for posit-dev/positron-python@f9a3259:

Bump flask from 3.0.1 to 3.0.2 (posit-dev/positron-python#354)

Bumps [flask](https://github.com/pallets/flask) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](pallets/flask@3.0.1...3.0.2)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@ea812a4:

Bump ipywidgets from 8.1.1 to 8.1.2 (posit-dev/positron-python#368)

Bumps [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) from 8.1.1 to 8.1.2.
- [Release notes](https://github.com/jupyter-widgets/ipywidgets/releases)
- [Commits](jupyter-widgets/ipywidgets@8.1.1...8.1.2)

---
updated-dependencies:
- dependency-name: ipywidgets
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Isabel Zimmerman <54685329+isabelizimm@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@e3a5399:

Bump pyright from 1.1.349 to 1.1.351 (posit-dev/positron-python#379)

Bumps [pyright](https://github.com/RobertCraigie/pyright-python) from 1.1.349 to 1.1.351.
- [Release notes](https://github.com/RobertCraigie/pyright-python/releases)
- [Commits](RobertCraigie/pyright-python@v1.1.349...v1.1.351)

---
updated-dependencies:
- dependency-name: pyright
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@2eeb677:

Bump polars from 0.20.6 to 0.20.11 (posit-dev/positron-python#394)

Bumps [polars](https://github.com/pola-rs/polars) from 0.20.6 to 0.20.11.
- [Release notes](https://github.com/pola-rs/polars/releases)
- [Commits](pola-rs/polars@py-0.20.6...py-0.20.11)

---
updated-dependencies:
- dependency-name: polars
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@573d9fd:

Bump ipykernel from 6.29.0 to 6.29.3 (posit-dev/positron-python#390)

Bumps [ipykernel](https://github.com/ipython/ipykernel) from 6.29.0 to 6.29.3.
- [Release notes](https://github.com/ipython/ipykernel/releases)
- [Changelog](https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md)
- [Commits](ipython/ipykernel@v6.29.0...v6.29.3)

---
updated-dependencies:
- dependency-name: ipykernel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for posit-dev/positron-python@334b383:

update package.json

--------------------
Commit message for posit-dev/positron-python@7ce08b1:

Merge tag 'v2024.2.0' into merge/v2024.2.0

--------------------
Commit message for posit-dev/positron-python@063ba15:

Finalized-release-2024.2.0 (posit-dev/positron-python#22996)

Finalized release 2024.2.0: removing -rc
--------------------
Commit message for posit-dev/positron-python@3eef025:

Bump release 2024.2 (posit-dev/positron-python#22972)

Bump release 2024.2
--------------------
Commit message for posit-dev/positron-python@1fbd77b:

 skip tests, pytest upstream regression (posit-dev/positron-python#22974)

Short-term fix to stop CI from failing due to a regression upstream from
pytest. See issue for details:
microsoft/vscode-python#22965.
--------------------
Commit message for microsoft/vscode-python@4fca030:

Adding GDPR tag for isFirstSession (microsoft/vscode-python#22955)


--------------------
Commit message for microsoft/vscode-python@ba94553:

Modify telemetry to contain trigger time as property (microsoft/vscode-python#22941)


--------------------
Commit message for microsoft/vscode-python@178a0b2:

Fix bug with symlink for pytest execution (microsoft/vscode-python#22952)

Fixes microsoft/vscode-python#22938
--------------------
Commit message for microsoft/vscode-python@bae7d40:

Update vscode-tas-client version (microsoft/vscode-python#22876)


--------------------
Commit message for microsoft/vscode-python@75ed73e:

Fix Bug with Pytest when using symlinked workspaces (microsoft/vscode-python#22885)

fixes microsoft/vscode-python#22658

also implements switching to arg mapping which is this issue here:
microsoft/vscode-python#22076

---------

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
--------------------
Commit message for microsoft/vscode-python@e53651d:

Prevent first Python command being lost (microsoft/vscode-python#22902)

Fixes: microsoft/vscode-python#22673
Fixes: microsoft/vscode-python#22545
Fixes: microsoft/vscode-python#22691 

Making best effort to address issue where very first command sent to
REPL via Terminal gets ignored, or gets pasted both in Terminal and in
REPL.

With the fix, we observe whether Python REPL is launched in Terminal via
VS Code's `onDidWriteTerminalData` and send the command, or wait three
seconds as a fallback mechanism.

These two combined together will significantly reduce or resolve
all-together the chance of very first command being swollen up or gets
pasted twice in Terminal and REPL previously where it did not have
context of whether Python REPL instance have started inside the Terminal
or not.
--------------------
Commit message for microsoft/vscode-python@a60fbd5:

Add GDPR tags for new Pylance properties (microsoft/vscode-python#22922)


--------------------
Commit message for microsoft/vscode-python@aff0b05:

Use python debugger in testing (microsoft/vscode-python#22903)

closed: microsoft/vscode-python-debugger#174
--------------------
Commit message for microsoft/vscode-python@84734a8:

Updating installed extensions section of README.md (microsoft/vscode-python#22893)

Adding the Python Debugger to the installed extensions section of the
README.
--------------------
Commit message for microsoft/vscode-python@2159238:

Bump actions/setup-python from 4 to 5 in /.github/actions/build-vsix (microsoft/vscode-python#22602)

Bumps [actions/setup-python](https://github.com/actions/setup-python)
from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<p>In scope of this release, we update node version runtime from node16
to node20 (<a
href="https://redirect.github.com/actions/setup-python/pull/772">actions/setup-python#772</a>).
Besides, we update dependencies to the latest versions.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v4.8.0...v5.0.0">https://github.com/actions/setup-python/compare/v4.8.0...v5.0.0</a></p>
<h2>v4.8.0</h2>
<h2>What's Changed</h2>
<p>In scope of this release we added support for GraalPy (<a
href="https://redirect.github.com/actions/setup-python/pull/694">actions/setup-python#694</a>).
You can use this snippet to set up GraalPy:</p>
<pre lang="yaml"><code>steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4 
  with:
    python-version: 'graalpy-22.3' 
- run: python my_script.py
</code></pre>
<p>Besides, the release contains such changes as:</p>
<ul>
<li>Trim python version when reading from file by <a
href="https://github.com/FerranPares"><code>@​FerranPares</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/628">actions/setup-python#628</a></li>
<li>Use non-deprecated versions in examples by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/724">actions/setup-python#724</a></li>
<li>Change deprecation comment to past tense by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/723">actions/setup-python#723</a></li>
<li>Bump <code>@​babel/traverse</code> from 7.9.0 to 7.23.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/743">actions/setup-python#743</a></li>
<li>advanced-usage.md: Encourage the use actions/checkout@v4 by <a
href="https://github.com/cclauss"><code>@​cclauss</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/729">actions/setup-python#729</a></li>
<li>Examples now use checkout@v4 by <a
href="https://github.com/simonw"><code>@​simonw</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/738">actions/setup-python#738</a></li>
<li>Update actions/checkout to v4 by <a
href="https://github.com/dmitry-shibanov"><code>@​dmitry-shibanov</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/761">actions/setup-python#761</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/FerranPares"><code>@​FerranPares</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/628">actions/setup-python#628</a></li>
<li><a href="https://github.com/timfel"><code>@​timfel</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/694">actions/setup-python#694</a></li>
<li><a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/724">actions/setup-python#724</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v4...v4.8.0">https://github.com/actions/setup-python/compare/v4...v4.8.0</a></p>
<h2>v4.7.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump word-wrap from 1.2.3 to 1.2.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/702">actions/setup-python#702</a></li>
<li>Add range validation for toml files by <a
href="https://github.com/dmitry-shibanov"><code>@​dmitry-shibanov</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/726">actions/setup-python#726</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v4...v4.7.1">https://github.com/actions/setup-python/compare/v4...v4.7.1</a></p>
<h2>v4.7.0</h2>
<p>In scope of this release, the support for reading python version from
pyproject.toml was added (<a
href="https://redirect.github.com/actions/setup-python/pull/669">actions/setup-python#669</a>).</p>
<pre lang="yaml"><code>      - name: Setup Python
        uses: actions/setup-python@v4
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/0a5c61591373683505ea898e09a3ea4f39ef2b9c"><code>0a5c615</code></a>
Update action to node20 (<a
href="https://redirect.github.com/actions/setup-python/issues/772">#772</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/0ae58361cdfd39e2950bed97a1e26aa20c3d8955"><code>0ae5836</code></a>
Add example of GraalPy to docs (<a
href="https://redirect.github.com/actions/setup-python/issues/773">#773</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/b64ffcaf5b410884ad320a9cfac8866006a109aa"><code>b64ffca</code></a>
update actions/checkout to v4 (<a
href="https://redirect.github.com/actions/setup-python/issues/761">#761</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/8d2896179abf658742de432b3f203d2c2d86a587"><code>8d28961</code></a>
Examples now use checkout@v4 (<a
href="https://redirect.github.com/actions/setup-python/issues/738">#738</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/7bc6abb01e0555719edc2dbca70a2fde309e5e56"><code>7bc6abb</code></a>
advanced-usage.md: Encourage the use actions/checkout@v4 (<a
href="https://redirect.github.com/actions/setup-python/issues/729">#729</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/e8111cec9d3dc15220d8a3b638f08419f57b906a"><code>e8111ce</code></a>
Bump <code>@​babel/traverse</code> from 7.9.0 to 7.23.2 (<a
href="https://redirect.github.com/actions/setup-python/issues/743">#743</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/a00ea43da65e7c04d2bdae58b3afecd77057eb9e"><code>a00ea43</code></a>
add fix for graalpy ci (<a
href="https://redirect.github.com/actions/setup-python/issues/741">#741</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/8635b1ccc5934e73ed3510980fd2e7790b85839b"><code>8635b1c</code></a>
Change deprecation comment to past tense (<a
href="https://redirect.github.com/actions/setup-python/issues/723">#723</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/f6cc428f535856f9c23558d01765a42a4d6cf758"><code>f6cc428</code></a>
Use non-deprecated versions in examples (<a
href="https://redirect.github.com/actions/setup-python/issues/724">#724</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/5f2af211d616f86005883b44826180b21abb4060"><code>5f2af21</code></a>
Add GraalPy support (<a
href="https://redirect.github.com/actions/setup-python/issues/694">#694</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-python/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
--------------------
Commit message for microsoft/vscode-python@83cf53b:

Add "isMeasurement" for LANGUAGE_SERVER_TRIGGER_DURATION (microsoft/vscode-python#22912)

cc/ @cwebster-99
--------------------
Commit message for microsoft/vscode-python@7be33eb:

Add more shell integration sequences to check for (microsoft/vscode-python#22911)

Based on discussion with Daniel

For microsoft/vscode-python#22440
--------------------
Commit message for microsoft/vscode-python@6838ccf:

Do not activate microvenv if terminal.activateEnvironment is set to false and when not in terminal experiment (microsoft/vscode-python#22909)


--------------------
Commit message for microsoft/vscode-python@2dc158e:

Log options being passed when using environment collection APIs (microsoft/vscode-python#22907)

For microsoft/vscode-python#22899
--------------------
Commit message for microsoft/vscode-python@5f971ae:

Prepend `PATH` both at shell integration and process creation (microsoft/vscode-python#22905)


--------------------
Commit message for microsoft/vscode-python@5174d5c:

Improve shell integration reliability for zsh (microsoft/vscode-python#22891)

Closes microsoft/vscode-python#22881

If status changes, re-run activation. Also persist once we know shell
integration works for a shell.
--------------------
Commit message for microsoft/vscode-python@b0c34e3:

Add UnicodeDecodeError catching (microsoft/vscode-python#22873)

Resolve `UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in
position 48995: unexpected end of data`

Co-authored-by: Aydar Kamaltdinov <a.kamaltdinov@tinkoff.ru>
--------------------
Commit message for microsoft/vscode-python@8496dfe:

Remove experimental flag for create env prompt (microsoft/vscode-python#22892)

Remove experimental flag for `python.createEnvironment.trigger`.
--------------------
Commit message for microsoft/vscode-python@c4c05a6:

update tree comparison for tests to be order independent for children (microsoft/vscode-python#22832)

following the introduction of pytest 8, the order in which children were
listed changed. Since the order is not important, this updates the tests
to make the tests not consider order of children when comparing actual
and expected outcomes of test runs.
--------------------
Commit message for microsoft/vscode-python@4030717:

Use terminal data write event to figure out whether shell integration is working (microsoft/vscode-python#22872)

Closes microsoft/vscode-python#22439

Blocked on microsoft/vscode#204616
--------------------
Commit message for microsoft/vscode-python@d674a17:

Fix Run Recent Command Caching Issue (microsoft/vscode-python#22867)

Resolves: microsoft/vscode-python#22811

Fixing caching issue where users were experiencing cached
success/failure decoration that were impacted when using `Terminal: Run
Recent Command` on success/failure commands
--------------------
Commit message for microsoft/vscode-python@c0bf1b7:

Improve time taken to trigger language server startup once extension activation is triggered (microsoft/vscode-python#22514)

For microsoft/vscode-python#22146 

Improves time taken to trigger language server startup once extension
activation is triggered

- Do not block discovery on windows registry
- Do not blocking auto-selection on validation of all interpreters
- Make Windows Path locator faster
--------------------
Commit message for microsoft/vscode-python@20c1a10:

Log when running Python file (microsoft/vscode-python#22851)

For microsoft/vscode-python#22711
--------------------
Commit message for microsoft/vscode-python@8aaa70e:

Fix venv activation for cshell (microsoft/vscode-python#22852)

Closes microsoft/vscode-python#22822

Use current shell to figure out whether shell integration is working,
even when using fallback shell for getting environment variables.
--------------------
Commit message for microsoft/vscode-python@1626c46:

Do not run commands to check whether shell integration is working (microsoft/vscode-python#22850)

Closes microsoft/vscode-python#22774 closes
microsoft/vscode-python#22743
--------------------
Commit message for microsoft/vscode-python@13a6727:

include multiple pytest versions in PR check (microsoft/vscode-python#22813)

update PR check workflow to include testing Python tests against 3
versions of pytest: pre-release, stable release, and oldest supported
version.

---------

Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
--------------------
Commit message for microsoft/vscode-python@6e8c56c:

Bump dev version 2024.1 (microsoft/vscode-python#22805)



Lead-authored-by: Kartik Raj <karraj@microsoft.com>
Co-authored-by: Aydar Kamaltdinov <aydar.kamaltdinov@gmail.com>
Co-authored-by: paulacamargo25 <paulitacv25@gmail.com>
Co-authored-by: Luciana Abud <45497113+luabud@users.noreply.github.com>
Co-authored-by: Courtney Webster <60238438+cwebster-99@users.noreply.github.com>
Co-authored-by: Anthony Kim <62267334+anthonykim1@users.noreply.github.com>
Co-authored-by: Isabel Zimmerman <isabel.zimmerman@rstudio.com>
Co-authored-by: Eleanor Boyd <eleanorboyd@microsoft.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: GitHub <noreply@github.com>
@eleanorjboyd
Copy link
Member Author

I reverted this in a previous commit- it was not a viable solution for the given use case

@eleanorjboyd eleanorjboyd closed this as not planned Won't fix, can't repro, duplicate, stale Apr 25, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-testing debt Covers everything internal: CI, testing, refactoring of the codebase, etc. needs PR Ready to be worked on
Projects
None yet
Development

No branches or pull requests

2 participants