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

Pull main #2

Merged
merged 33 commits into from
Nov 1, 2024
Merged

Pull main #2

merged 33 commits into from
Nov 1, 2024

Conversation

frankharkins
Copy link

@frankharkins frankharkins commented Oct 29, 2024

Pulls upstream/main and resolves merge conflicts using commands from Qiskit#2139 (comment).

Eric-Arellano and others added 30 commits October 15, 2024 15:43
Fixes #2062. 

While we now correctly detect in forks when no notebooks need to be run,
we still were trying to call cleanup code, even though there are no jobs
to clean up. That cleanup code requires logging into Runtime, so it
fails on forks.

Instead, we should early exit if there are no notebooks to run.
Co-authored-by: abbycross <[email protected]>
Co-authored-by: Francesca Pietracaprina <[email protected]>
Co-authored-by: Francesca Pietracaprina <[email protected]>
…cripts/nb-tester (#2140)

Updates the requirements on
[qiskit-ibm-runtime](https://github.com/Qiskit/qiskit-ibm-runtime) to
permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Qiskit/qiskit-ibm-runtime/releases">qiskit-ibm-runtime's
releases</a>.</em></p>
<blockquote>
<h2>Qiskit IBM Runtime  0.31.0</h2>
<h1>Changelog</h1>
<h2>Added</h2>
<ul>
<li>Adding a more developer-friendly interface to specify qubit
coordinates (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1952">#1952</a>)</li>
</ul>
<h2>Fixed</h2>
<ul>
<li>Bug fix: ISA check inside control flow operations whose body is
defined in a separate circuit (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1954">#1954</a>)</li>
<li>Enhance the ISA check with validation of rzz angle (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1953">#1953</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/689c64e3aa7ad687232fa4a53ba57f697c41490c"><code>689c64e</code></a>
Prepare release 0.31.0 (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1972">#1972</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/bd3a42adb82d54cbedce737160963992dd82b59f"><code>bd3a42a</code></a>
Add &quot;deprecated&quot; to docstring (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1970">#1970</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/b9fbc0c7089414ded50372801a9d81443855faf7"><code>b9fbc0c</code></a>
update basis gates _get_noise_model_from_backend_v2 (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1968">#1968</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/dc03ff371c29f09d76824ba7ab065220f865fbe6"><code>dc03ff3</code></a>
Migrate integration tests to test_eagle (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1828">#1828</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/f8323dc45d1affc189b0b9e5b0684b92c1bb18e5"><code>f8323dc</code></a>
Fix concat_release_notes.py on Windows (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1964">#1964</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/b8d64539c1af691e4633ed5e94e887828256796a"><code>b8d6453</code></a>
Fix GitHub source code links for decorated functions (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1960">#1960</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/0c631de8ca5447845dce5e1b7b352331bfa7ea61"><code>0c631de</code></a>
Debugger API, phase I (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1950">#1950</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/4ae4b8bc6f289e8ba340eaed9a8c89661c03bd73"><code>4ae4b8b</code></a>
Allow running tests from fork (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1945">#1945</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/51d897bee4c7cf28e22b6a0a0c9b2f337c23a9ba"><code>51d897b</code></a>
Adding a more developer-friendly interface to specify qubit coordinates
(<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1952">#1952</a>)</li>
<li><a
href="https://github.com/Qiskit/qiskit-ibm-runtime/commit/4e2e52f5466353bf8e823a4847de96a9b1068eb1"><code>4e2e52f</code></a>
Remove fake V1 backends (<a
href="https://redirect.github.com/Qiskit/qiskit-ibm-runtime/issues/1946">#1946</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Qiskit/qiskit-ibm-runtime/compare/0.30.0...0.31.0">compare
view</a></li>
</ul>
</details>
<br />


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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This data will allow us to have better redirects with the version
selector between arbitrary versions like 0.1 <-> 0.2.

The JSON file also sets the keys `latestVersions` and
`customRedirectsToLatest` to preserve the current mechanism we have for
the API version warning banner on historical/dev docs to take you to the
latest version. Once the web app is using this new file, we'll remove
`generateHistoricalRedirects.ts` with this new script and JSON file.

## Missing Pages data representation

If this file's memory becomes a problem over time, we can use a more
optimal representation of missing pages. Rather than enumerating every
version a page is missing from, we can store contiguous ranges. For
example, ("0.1", "0.5") would mean the page is missing in 0.1-0.5.
However, this representation is not as simple:

- We need to handle multiple contiguous ranges. For example, imagine an
API added in 0.3 but removed in 0.6. This would be [("0.1", "0.2"),
("0.6", "<dev-version>")]
- Qiskit SDK has breaks in its versions; 0.20-0.23 and 0.34 don't exist,
but those versions not existing don't necessarily mean the range is not
contiguous.
- The web app code would have more complex code to check if the current
page is in the contiguous ranges.

The file is 580K before minification/compression. This file will only
ever be used on the server, so this seems acceptable.

## Custom redirect rules: why only redirects to latest

This mechanism is useful because of the API version warning banner that
we show on all versions other than latest. That banner differentiates
between pages that exist on the latest version versus do not because the
API was deleted or it's new to the dev version. Sometimes, the API was
not actually changed and only its URL was modified; so, this mechanism
let's us more accurately reflect the situation.

We don't attempt to support custom redirect rules for arbitrary version
relationships like 0.1 <-> 0.2 because it is too complex. When changing
between historical API versions via the version selector, it's not the
end of the world if we don't preserve the current API you're on and
instead go to the API index page. That behavior would only happen when
an API's URL changed between versions, which is not common. We only go
so out of our way to set up custom redirect rules for the latest version
because we don't want to say misleading information in the API version
warning banner.

---------

Co-authored-by: Frank Harkins <[email protected]>
Note that several APIs were removed from Runtime. I'll set up redirects
in closed source.

This PR also updates the dev docs for Qiskit. For some reason, our cron
job isn't actually opening up PRs.
- Update schemas for both functions
- Split out Sampler/Estimator docs, rerun problems, update outputs
- Update some text and typos

---------

Co-authored-by: abbycross <[email protected]>
Co-authored-by: Eric Arellano <[email protected]>
We weren't properly catching errors due to reusing the symbol `error`.
That resulted in a test recently saying that a link we expected to 404
was instead a valid link.

This PR also improves the tests to be deterministic by mocking
`fetch()`. This removes the risk of flakiness and makes our test faster.
Reverts #2125. Turns out, we
didn't need to take that approach so we can instead use the simpler
generateHistoricalRedirects.ts.
This is used by repositories that install our link checker tooling as a
third-party dependency.

Generated with `npx tsx scripts/js/commands/saveInternalLinks.ts`
Closes #2150.

---------

Co-authored-by: Eric Arellano <[email protected]>
This PR updates the contact link for one of Q-CTRL's docs notebooks.
The dev docs sync PR is correctly running and regenerating the dev docs,
but it's skipping the step to open PRs. This is because `@frankharkins`
pointed out tj-actions/changed-files compares files across branches,
rather than based on the current working directory.

---------

Co-authored-by: Frank Harkins <[email protected]>
Closes #2159.

This change also results in more suggestions happening than we had
before, as shown in the tests.
Both content and infra changes are reflected here.

---------

Co-authored-by: Eric Arellano <[email protected]>
Updating the Algorithmiq TEM documentation in the Example section. The
parameter `max_execution_time` was removed.

---------

Co-authored-by: Eric Arellano <[email protected]>
We're in the process of adding six Qiskit addon API docs. This PR sets
up the initial projects so that it's easier for us to iterate on them,
such as running `npm run gen-api -- -a <path-to-html>` to see locally
how changes to Sphinx config impact the MDX pipeline.

The docs are _not_ ready to go live and they will not yet be synced by
closed source or deployed.

The quality issues will fixed in the project repositories, such as
Qiskit/qiskit-addon-obp#24.

## API naming scheme

We call the API by their full name, without their abbrevation. For
example, "Operator Backpropagation" rather than "OBP" or "Operator
Backpropagation (OBP)".

We do not explicitly mention "Qiskit addon" in the API name. It's
already evident these are addons by looking at the left ToC which shows
the full module path like `qiskit_addon_obp`.


![image_720](https://github.com/user-attachments/assets/fe664a69-a0a1-4058-92f2-34d03618db8f)

## URL scheme

Each package's URL matches their PyPI name, like `qiskit-addon-obp`.

Note that we may want to normalize the URLs for individual pages to
follow SEO best practices, e.g.
`/api/qiskit-addon-obp/qiskit_addon_obp.utils.simplify` would be
`/api/qiskit-addon-obp/qiskit-addon-obp-utils-simplify`. We would make
this change in a follow up PR.
We're changing how the prompt works. We'll have to merge with the broken
preview as we need to merge the MDX changes and the component changes to
inner-source at the same time. I've copied the files over to
inner-source to test it out with the new component and make sure the
syntax is correct.
Expressions must be JSON serializable
These links were all fixed in the Addon repositories directly.
fixes #2172

---------

Co-authored-by: CHIESELU <[email protected]>
Co-authored-by: Eric Arellano <[email protected]>
Closes #2174. We now
convert URLs like `qiskit_addon_obp.MyClass` to `my-class`.

This is safe to change because the Addons are not yet public. We may
eventually want to do this for Qiskit, Runtime, and Transpiler Service -
for now, they stay the same.
Closes #2173. Also documents the `CodeAssistantAdmonition` component.

---------

Co-authored-by: Eric Arellano <[email protected]>
This changes the left sidebar and the release notes heading, per the IBM
style guide.
frankharkins and others added 3 commits October 29, 2024 14:17
Adds linting and formatting with [Ruff](https://docs.astral.sh/ruff).

This caught a couple of undefined variables, but it also enforces
consistent code styling across our code examples. You may find it easier
to review this PR commit-wise.
Closes #2176 

I searched and didn't find any other improperly coded imports. Hopefully
there aren't any more lurking in there!
@assafb assafb merged commit 74f35f2 into Qedma:docs-updates Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants