-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Migrate asv
benchmark suite from metapackage
#10546
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Add asv benchmarks This commit adds an asv benchmark suite to the tests include in this repo. This will enable us to track the performance of the overall qiskit project over time as we make commits. * Remove H2 and LiH dirs * Fix most, but not all, lint * Remove commented unused code * Add QV circuit benchmark and fix asv build and some lint * Make lint pass * Purity isn't in quantum_info in 0.7 * Add qft and random circuit benchmarks * Fix issue caused by namespace package and aer sticking around * Make depth an independent variable for qv benchmarks * Simplify install and uninstall stage The install stage was going off the rails trying failing to install the built wheel in certain scenarios. When this happened the empty namespace package from qiskit-aer was leftover and when benchmarks ran there was nothing leftover. To avoid this and simplify the install (and by extension uninstall) configuration to just rely on the default working behavior this commit removes the dependence on the qiskit-aer package. The aer package wasn't even used directly in the benchmarks since we're not actually running simulations (for obvious time reasons). Instead Aer was just being used as a backend for the transpiler. But, there is no reason we have to use Aer for that, and BasicAer works just as well. * Clear build artifacts before install * Fix lint failures for new pylint * Switch back to pip for wheel builds * Fix another lint issue * Fix hopefully the last lint issue
…tapackage#201) This commit adds 2 new benchmarks that use the same random hex circuit setup but instead of measuring the time it takes to transpile() it tracks the depth of the output circuit. This will serve as an example for how we can track other transpiler performance metrics over time in terra (not just depth).
…tapackage#204) * Remove randomness from random_hex_circuit_benchmark The random_hex benchmark had one np.random.randomint() call that was used to determine if the cnots in the circuit were for odd or even numbered qubits. While not a big difference (and difficult to detect by visual inspection) we want to eliminate any difference between runs for benchmarking. These subtle differences can make the results unusable and anomaly detection more difficult. To that end this commit just sets the random value to be fixed so the generated circuit will always be the same. Since this changes the results the version for the benchmark is changed so that we'll treat new results different from the previous results with the random number. * Fix lint
…iskit/qiskit-metapackage#227) * Bump released package versions and set meta package version to 0.9.0 This commit bumps the version numbers for the newly released versions of terra, aer, and ignis. It also bumps the version of the package to reflect this change per the versioning policy. * Ibmq provider too * Fix lint until test update
…age#276) This PR updates all the benchmarks to work again with recent API changes made on Terra master. These were all things coming, but were neglected until the entire benchmark suite was broken. Once this lands we should continue getting published data from the periodic benchmark runs from the point in the git history when the breaking changes in terra landed. Co-Authored-By: Matthew Treinish <mtreinish@kortar.org>
…#301) In the previous update to the the quantum volume benchmarks the fake melbourne class from the terra tests was used instead of hardcoding the coupling map directly in the benchmark. However because this lives in the terra tests python namespace it has a depedency on a bunch of test requirements at import time (even though they're not used). This causes the benchmarks to fail in a production environment because they do not install the terra development/testing requirements in the venv used for testing. To avoid this failure, this commit removes the fake backend usage and switches to a hard coded coupling map which was just copied from the backend code. [1] [1] https://github.com/Qiskit/qiskit-terra/blob/master/qiskit/test/mock.py#L258-L260
…t/qiskit-metapackage#343) Add two benchmarks timing construction of a simple circuit of one and two qubit gates at various widths and lengths, and another for composing the same circuit on top of an empty circuit.
Attempt to remove some of the randomness in the random_circuit_hex benchmark [1] by seeding the random_unitary generation and the transpiler. [1] https://qiskit.github.io/qiskit/#random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile * Remove deprecated function from random_circuit_hex benchmark. * Remove some rmore randomness from random_circuit_hex benchmark. * Bump random_circuit_hex benchmark version.
…apackage#358) Makes two additional changes to random_circuit_hex to better support older qiskit versions. Re-orders import attempts for euler_angles_1q. At some point in time, trying to call euler_angles_1q via qiskit.mapper would import successfully, but raise when called with an error like qiskit.exceptions.QiskitError: 'euler_angles_1q functionality is now accessible in qiskit.quantum_info.synthesis'. Change default order to always use the newest version of euler_angles_1q that's available. Falls back to setting seed_mapper for versions of qiskit earlier than seed_transpiler.
* Added benchmarks for isometries * Some small fixes * Track numerical value * Simplify counts get logic * Set a seed and skip faster In an effort to reduce the noise in the measurements made by the benchmark this commit sets a seed for all calls that take one; transpile() and random_unitary(). It also moves the skip check to the top of setup so we don't waste time trying to do anything if we're just going to skip.
Qiskit#2761 removed some more of the deprecated qi modules from terra that the state tomography benchmarks were previously relying on. While we've been skipping these benchmarks since the tomography module was removed from terra this caused an import error to be raised when importing the test. To avoid the import error breaking asv runs until we rewrite the benchmark to use ignis this commit handles an import error and treats it as a skip condition.
…e#306) * first version of benchmark/randomize_benchmarking.py * fix lint error * fixed a misprint * updated benchmark test for RB * fixed RB benchmark test following comment * fix lint error * Add qiskit-ignis to benchmark env * removed nq from the parameters * Correct setup() parameter order * Only return circuits for transpilation * nseeds = [1] * Fix various issues with the benchmark This commit fixes a number of issues with the benchmark. First it removes single entry parameters from the parameter list, there's no reason to make them parameters if we don't use multiple values. It also fixes a small bug in the return from the build_rb_circuit() function where we were only returning one sequence of circuits instead of the whole set. It also adjusts how we use random values by properly setting a seed for both circuit building and tranpile. The last thing it does is for consistency it pins the ignis version to a single version and sets the benchmark version number to match that. This way if/when we need to bump the ignis version we use in the benchmarks we'll have to bump the benchmark's version too to match. This way we can make sure we're using the same ignis version for all benchmark results. * Reduce the number of length vectors used to 1 This commit removes one of the two length vectors we were using for constructing the RB circuits. This is done in the interest of time since the RB benchmarking can be quite slow so this reduces the number of input parameters we iterate over which decreases the total run time of RB benchmarks. If in the future we improve the performance so that the impact is minimal to the full asv run we can add back additional length vectors for benchmarking. * Update copyright header to use consistent format
…ckage#400) * Update state tomography benchmarks to use ignis The state tomography benchmarks have been skipped since terra deprecated and then removed it's support for doing tomography. The new way to run tomography is by using ignis. This commit does just that and rewrites the tomography benchmarks to use ignis instead of terra so that we can now run them on the current versions of terra. * Fix lint * Add a 6 qubit benchmark * Fix lint again * Remove setting timer it's already the default * Increase timeout for state tomography benchmarks The cat state tomography benchmark for 5 qubits typically takes about 55 seconds for my local desktop. However, sometimes it can take slightly longer and with a default timeout of 60 seconds it doesn't give much of a margin. * Remove 6 qubit benchmark The 6 qubit cat state tomography benchmark is a bit too slow to be valuable. On my local desktop it's consistently more than the current timeout of the state tomography benchmark which is 2min (the bell state tomography does not have an duration issues, it's minimally slower with 6 qubits). We already have a ton of very slow benchmarks and the additional value for running tomography with 6 qubits vs 5 is minimal. So in the interest of time this commit removes the 6 qubit cases. * Fix lint yet again
…kage#396) * Add single-threaded versions of RB benchmarks. * Unset QISKIT_IN_PARALLEL env variable after RB benchmarks.
…-metapackage#491) This commit bumps the ignis version used in the randomized benchmarking and state tomography asv benchmarks. These benchmarks use a pinned version of ignis for consistent results since the benchmarks track terra development. Now that ignis 0.2.0 has been released we should use it to ensure that the benchmarks keep working moving forward.
…-metapackage#504) Add a test case for tracking CNOT count after mapping to IBM Q 16 Melbourne using isometry circuits so that we can track the quality of mappings by default pass manager. * Add a bench to track mapper's cnot count performance * lint
…kage#603) * Add benchmarks for different transpiler levels This commit adds new benchmarks for testing different transpiler levels. It runs 3 different circuits through both time and depth benchmarks, quantum volume 50x20 with the rochester coupling map, 14x14 with FakeMelbourne (mostly to include the properties snapshot after Qiskit#3060 for level 3), and the large qasm example with both a rochester coupling map and FakeMelbourne. Each benchmark is run with optimization level 0, 1, 2, and 3 to have results with more than just the default optimization level. By tracking depth we can also compare the relative effectiveness of each level vs speed. * Inline fake backend with noise from terra This commit inlines the fake melbourne backend from qiskit-terra's test module. We need a local copy of this in the benchmarks that's static for consistency reasons. The fake provider in terra has different values returned depending on where in the git history it is (if it exists at all). This would cause noise in the benchmarks as we're trying to measure the performance of the transpiler not the backends. So to avoid those potential issues this commit adds a local copy that we can keep static independent of terra. If we do need to change it for any reason we can then also update the benchmark version to indicate it's different results.
* Add benchmarks for converter functions This commit adds benchmarks for the converter functions. The converter functions are normally quick to execute but are commonly used as part of other operations. For example circuit_to_dag and dag_to_circuit get called under the covers during transpile() calls. Individually benchmarking the performance of them is useful so we can isolate and track their performance, even if it's normally only a small percentage of a larger operation. * Pivot to use random circuit The benchmarks now use a randomly generated circuit (with a fixed seed for consistency) of varying sizes to test different cases. In the future we can add additional types of circuits to try and test additional worst case edge cases. * Fix lint * Fix lint for real * Add comment about skips
…tapackage#641) Adds a peakmem tracking for transpiler_level benchmarks, and a benchmark for assemble_circuits. * Add peakmem versions of transpiler level benchmarks. * Add assemble_circuit benchmark. * Import assemble from qiskit.compile.
* Add benchmarks for mapping passes This commit adds new benchmark methods for mapping passes. There are 2 benchmarks for each analysis pass that track the run time of the pass and the memory consumption. Then for transformation passes a third benchmark is added to track the depth after the pass is run. For swap mappers a 4th benchmark also keeping track of how many swap gates are in the circuit. * Fix lint The linter fails because two passes have not been released yet, this commit disables this check for the file so we can run the benchmark for these new passes. * Add python-constraint to asv venv The csp layout pass uses python-constraint which is an optional dependency. This needs to be manually installed to make the csp layout pass benchmarks work, this commit adds it to the list of dependencies installed.
* Add benchmark for non-mapping passes This commit adds new benchmark methods for each non-mapping pass. There are 2 benchmarks for each analysis pass that track the run time of the pass and the memory consumption, for tranformation passes a third benchmark is added to track the depth after the pass is run. The next stage here will be to add benchmarks for mapping passes. * Fix lint
This commit reorganizes the passes benchmarks to better measure memory consumption and decrease the amount of time spent in setup. There are tests for 3 passes: ConsolidateBlocks, CommutativeCancellation, and Optimize1qGates that depended on either an analysis pass or tranformation pass to be run before they can work or are effective. To isolate the benchmarking of these passes those prequesite passes were run in setup and then could be accessed by the benchmark methods for those passes. However this had a cost, it makes the setup for every benchmark slower because we have to run these extra passes even if the results are not used. This has a big impact for peakmem benchmarks though, because the peakmem includes the setup() function there are cases where the results of peakmem could be skewed by these passes. To fix this this commit splits benchmarks into classes that run the extra passes to isolate the setup cost to only those benchmarks which actually need the extra passes.
…kage#837) Right now the dedicated benchmark machine is spending too much time and has a growing backlog of commits to benchmark. Part of this is the introduction of the pass benchmarks which run over a wide sweep of parameters which results in 18 different permustations of the benchmark. This ends up being a large portion of the time spent benchmarking. This commit decreases the number of parameters to be a single circuit depth and only 3 qubit counts. This reduces the number of permutations from 18 to 3.
* Add QuantumCircuit.copy() benchmark. * Update test/benchmarks/circuit_construction.py
…it-metapackage#845) The lookahead swap mapping passes timeout consistently and have generated no data (likely due to Qiskit#2171 ) but cost roughly an hour of benchmarking runtime per terra commit. This commit disables these benchmarks while the problems are investigated.
…qiskit-metapackage#846) * Add disassemble benchmarks and more permutations to assemble This commit expands our coverage of the assemble benchmarks by adding assembly cases with >1 circuit. At the same time this adds a second benchmark class which adds coverage for qobj disassemble. * Update test/benchmarks/assembler.py Co-Authored-By: Kevin Krsulich <kevin@krsulich.net> * Add new version to assembler benchmark Co-authored-by: Kevin Krsulich <kevin@krsulich.net> Co-authored-by: Kevin Krsulich <kevin.krsulich@ibm.com>
Partially fixes Qiskit/qiskit-metapackage#794. * first commit * Fixed some typos * More fixes * Add benchmark to insert instruction from left to right * Fix Lints * Add hardcorded parametic pulse and sample pulse * reduce params * Fix lint * review suggestions * Instruction to schedule * review suggestions * Rename due to lint restrictions number_of_unique_pulses -> unique_pulses and number_of_channels -> channels * review suggestions * Seperate inst_add and sched.union * Remove unwanted imports * lint * Update code * Fix lint * separate instruction to sched conversion and union of sched * uncomment code * Lint * move benchmark functions with similar setup.py to a different file * lint * Move time_union_of_schedules to schedule construction class * Add Open Pulse backend in backends/ * lint * Add Play * Add Play * Remove union union is deprecated * lint
Fill in a missing seed for all benchmarks that need one. Fixes Qiskit/qiskit-metapackage#1404
Add benchmarks to track the time performance of circuit scheduling Add four tests, which benchmark TimeUnitConversion, ALAPSchedule, ASAPSchedule and DynamicalDecoupling passes. It would be a good time to start benchmarking those as rework on circuit scheduling passes is about to start. * Add benchmarks for scheduling passes * lint * Add one more bench for circuit scheduling * Add overall transpilation time bench with scheduling * Revert "Add overall transpilation time bench with scheduling" This reverts commit fdba349999548ecd1fb4cc9a1e1a67802ecd9008. * Remove wild-card import
…etapackage#1441) Add a benchmark to track the overall time performance of circuit scheduling, which would be near to that end users actually experience when scheduling. Follow-up PR of Qiskit/qiskit-metapackage#1421. As suggested in the original PR, optimization level 0 and 1 are added so that it would not take so much time while covering the places where people are doing scheduling. * Add overall transpilation time bench with scheduling * Improve a bit
Originally the benchmark suite created its own fake backends to avoid noise if Terra were to add new snapshots. The current old backends use `BaseBackend` and `BaseJob`, which is the legacy interface that has just been removed from mainline Terra, causing the benchmark suite to fail to import. The three fake backends in use are all either decommissioned machines that will have no further updates, or a dummy machine not based on real hardware (and so should not need to be updated). Since it's unlikely that noise will come into the benchmarks from Terra now, it's suitable just to use the Terra-provided ones.
…ackage#1488) * Replace ignis benchmarks with qiskit-experiments * Simplify tomography benchmark * remove ignis from asv conf * Remove whitespace * Apply suggestions from code review Co-authored-by: Matthew Treinish <mtreinish@kortar.org> * Fix typo Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
- Add pulse defaults loading test. This mainly measures instmap construction. - Add lowering test. This measures conversion of block -> schedule. - Add ECR building tests with three major approaches. - Add parameterized block test with parameter scan, assuming calibration
…-metapackage#1621) When running the full benchmark suite the assembler benchmarks take a disproportionately large amount of time to run, especially given the relatively low current importance of the assemble() function. This was primarily due to the number of permutations of the benchmark we ran. At the time all those permutations were added to verify the scaling of the function because it was a potential bottleneck, but this is no longer a concern. This commit drops the parameter sweeps down so that we only run 2 combinations for assemble, basically a fixed sized circuit either by itself or as a batch of 100. This should drastically decrease the runtime cost of these benchmarks but still give us some data for the function moving forward.
…metapackage#1622) * Add benchmarks for Sabre on large QFT and QV circuits Sabre is capable of handling these large benchmarks now, and it's of interest for us to track our performance on large systems. We don't anticipate running on them yet, but we will want to know in the future when further changes to routing and memory usage improve these benchmarks. * Fix lint * Fix lint properly * Precalculate trackers to avoid recomputation The tracking benchmarks here naively require a recomputation of the expensive swap-mapping, despite use wanting to just reuse things we already calculated during the timing phase. `asv` doesn't let us return trackers from the timing benchmarks directly, but we can still reduce one load of redundancy by pre-calculating all the tracker properties we care about only once in the cached setup method, and then just feeding that state into the actual benchmarks to retrieve the results they care about. This is rather hacky, but does successfully work around functionality we would like in `asv` to reduce runtime.
This merge commit pulls in the history of the airspeed-velocity benchmark suite from its original location in the metapackage. The commits have been filtered to only include the history of the benchmark suite itself, and their messages rewritten to change GitHub issue and PR references to point to the renamed metapackage.
This is not directly copied from the metapackage because several components of it needed to changes as it came other, and it was mostly autogenerated or out-of-date anyway. We may want to tweak how requirements are managed and installed in the future.
One or more of the the following people are requested to review this:
|
Pull Request Test Coverage Report for Build 5730206844
💛 - Coveralls |
This was referenced Aug 4, 2023
Superseded by #10611. |
mtreinish
added a commit
that referenced
this pull request
Aug 11, 2023
### Summary This cross-repository merge unifies the documentation, benchmarks and code of conduct from the metapackage into Qiskit/Terra's build. There are very non-trivial merge conflicts that have been resolved by this commit. The summary is: - `CODE_OF_CONDUCT.md`: taken directly from the metapackage's version. - `docs/conf.py`: strongly unified, albeit without the translations components that are added in a separate commit. - `docs/index.rst`: taken almost verbatim from the metapackage. All the API documentation RST files on Terra are moved to `docs/apidoc` (without the trailing 's') to match the metapackage expectation, so the URLs of built documentation will not change. - `docs/release_notes.rst`: The metapackage's version is renamed to `docs/legacy_release_notes.rst`, given a small introductory header, and made an orphan linked only from a _new_ `docs/release_notes.rst` that uses `reno`. - `docs/tutorials.rst`: Mostly these were the same already. Updated to include Qiskit/Terra's correction that it's not an orphan, and contain the metapackage's extra intro tutorial. - `docs/apidoc/terra.rst`: renamed to `docs/apidoc/index.rst` and retitled to be correctly just "API Documentation". - `requirements-dev.txt`: the version of the Sphinx theme is bumped to 1.14 to match the metapackage expectation. Following merge commit ec5c9ca, there is a commit 66a5d9f that fixes the ASV build for use in Terra, which is the rollup of the post-merge commits of #10546, which this PR supersedes. ### Details and comments This should probably be merged ASAP before `main` moves on. Resolutions on the metapackage: - Fix Qiskit/qiskit-metapackage#1723 - Fix Qiskit/qiskit-metapackage#1722 - Fix Qiskit/qiskit-metapackage#1746 After this has merged, #10610 should merge which will close the remaining migration-related issues from the metapackage. The metapackage was prepared for the migration using [`git-filter-repo`](https://github.com/newren/git-filter-repo), with the scripts and configuration files contained within [metapackage_migration.zip](https://github.com/Qiskit/qiskit-terra/files/12324298/metapackage_migration.zip). If you extract that zip, you need to activate a Python 3.11 `venv` then run `metapackage_rewrite.bash` which will prepare the repo in the exact state I merged to create this PR. *edit*: In retrospect writing this, you might need to modify my script so that it pulls only starting from commit Qiskit/qiskit-metapackage@f131daf, which was the tip of `master` at the time I ran this. I tested the docs build locally and it looks as correct as I can tell. There's still big cards pointing to experiments, dynamics etc on the landing page, but I figured that enough's enough, and we can just fix those last two things in Terra. This PR does not include Qiskit/qiskit-metapackage#1791, which should be now cherry-picked onto Terra.
mtreinish
added a commit
to mtreinish/qiskit-core
that referenced
this pull request
Aug 15, 2023
This cross-repository merge unifies the documentation, benchmarks and code of conduct from the metapackage into Qiskit/Terra's build. There are very non-trivial merge conflicts that have been resolved by this commit. The summary is: - `CODE_OF_CONDUCT.md`: taken directly from the metapackage's version. - `docs/conf.py`: strongly unified, albeit without the translations components that are added in a separate commit. - `docs/index.rst`: taken almost verbatim from the metapackage. All the API documentation RST files on Terra are moved to `docs/apidoc` (without the trailing 's') to match the metapackage expectation, so the URLs of built documentation will not change. - `docs/release_notes.rst`: The metapackage's version is renamed to `docs/legacy_release_notes.rst`, given a small introductory header, and made an orphan linked only from a _new_ `docs/release_notes.rst` that uses `reno`. - `docs/tutorials.rst`: Mostly these were the same already. Updated to include Qiskit/Terra's correction that it's not an orphan, and contain the metapackage's extra intro tutorial. - `docs/apidoc/terra.rst`: renamed to `docs/apidoc/index.rst` and retitled to be correctly just "API Documentation". - `requirements-dev.txt`: the version of the Sphinx theme is bumped to 1.14 to match the metapackage expectation. Following merge commit ec5c9ca, there is a commit 66a5d9f that fixes the ASV build for use in Terra, which is the rollup of the post-merge commits of Qiskit#10546, which this PR supersedes. This should probably be merged ASAP before `main` moves on. Resolutions on the metapackage: - Fix Qiskit/qiskit-metapackage#1723 - Fix Qiskit/qiskit-metapackage#1722 - Fix Qiskit/qiskit-metapackage#1746 After this has merged, Qiskit#10610 should merge which will close the remaining migration-related issues from the metapackage. The metapackage was prepared for the migration using [`git-filter-repo`](https://github.com/newren/git-filter-repo), with the scripts and configuration files contained within [metapackage_migration.zip](https://github.com/Qiskit/qiskit-terra/files/12324298/metapackage_migration.zip). If you extract that zip, you need to activate a Python 3.11 `venv` then run `metapackage_rewrite.bash` which will prepare the repo in the exact state I merged to create this PR. *edit*: In retrospect writing this, you might need to modify my script so that it pulls only starting from commit Qiskit/qiskit-metapackage@f131daf, which was the tip of `master` at the time I ran this. I tested the docs build locally and it looks as correct as I can tell. There's still big cards pointing to experiments, dynamics etc on the landing page, but I figured that enough's enough, and we can just fix those last two things in Terra. This PR does not include Qiskit/qiskit-metapackage#1791, which should be now cherry-picked onto Terra. (cherry picked from commit 965fd23)
github-merge-queue bot
pushed a commit
that referenced
this pull request
Aug 15, 2023
This cross-repository merge unifies the documentation, benchmarks and code of conduct from the metapackage into Qiskit/Terra's build. There are very non-trivial merge conflicts that have been resolved by this commit. The summary is: - `CODE_OF_CONDUCT.md`: taken directly from the metapackage's version. - `docs/conf.py`: strongly unified, albeit without the translations components that are added in a separate commit. - `docs/index.rst`: taken almost verbatim from the metapackage. All the API documentation RST files on Terra are moved to `docs/apidoc` (without the trailing 's') to match the metapackage expectation, so the URLs of built documentation will not change. - `docs/release_notes.rst`: The metapackage's version is renamed to `docs/legacy_release_notes.rst`, given a small introductory header, and made an orphan linked only from a _new_ `docs/release_notes.rst` that uses `reno`. - `docs/tutorials.rst`: Mostly these were the same already. Updated to include Qiskit/Terra's correction that it's not an orphan, and contain the metapackage's extra intro tutorial. - `docs/apidoc/terra.rst`: renamed to `docs/apidoc/index.rst` and retitled to be correctly just "API Documentation". - `requirements-dev.txt`: the version of the Sphinx theme is bumped to 1.14 to match the metapackage expectation. Following merge commit ec5c9ca, there is a commit 66a5d9f that fixes the ASV build for use in Terra, which is the rollup of the post-merge commits of #10546, which this PR supersedes. This should probably be merged ASAP before `main` moves on. Resolutions on the metapackage: - Fix Qiskit/qiskit-metapackage#1723 - Fix Qiskit/qiskit-metapackage#1722 - Fix Qiskit/qiskit-metapackage#1746 After this has merged, #10610 should merge which will close the remaining migration-related issues from the metapackage. The metapackage was prepared for the migration using [`git-filter-repo`](https://github.com/newren/git-filter-repo), with the scripts and configuration files contained within [metapackage_migration.zip](https://github.com/Qiskit/qiskit-terra/files/12324298/metapackage_migration.zip). If you extract that zip, you need to activate a Python 3.11 `venv` then run `metapackage_rewrite.bash` which will prepare the repo in the exact state I merged to create this PR. *edit*: In retrospect writing this, you might need to modify my script so that it pulls only starting from commit Qiskit/qiskit-metapackage@f131daf, which was the tip of `master` at the time I ran this. I tested the docs build locally and it looks as correct as I can tell. There's still big cards pointing to experiments, dynamics etc on the landing page, but I figured that enough's enough, and we can just fix those last two things in Terra. This PR does not include Qiskit/qiskit-metapackage#1791, which should be now cherry-picked onto Terra. (cherry picked from commit 965fd23)
Eric-Arellano
pushed a commit
to Qiskit/documentation
that referenced
this pull request
Oct 6, 2023
…10611) ### Summary This cross-repository merge unifies the documentation, benchmarks and code of conduct from the metapackage into Qiskit/Terra's build. There are very non-trivial merge conflicts that have been resolved by this commit. The summary is: - `CODE_OF_CONDUCT.md`: taken directly from the metapackage's version. - `docs/conf.py`: strongly unified, albeit without the translations components that are added in a separate commit. - `docs/index.rst`: taken almost verbatim from the metapackage. All the API documentation RST files on Terra are moved to `docs/apidoc` (without the trailing 's') to match the metapackage expectation, so the URLs of built documentation will not change. - `docs/release_notes.rst`: The metapackage's version is renamed to `docs/legacy_release_notes.rst`, given a small introductory header, and made an orphan linked only from a _new_ `docs/release_notes.rst` that uses `reno`. - `docs/tutorials.rst`: Mostly these were the same already. Updated to include Qiskit/Terra's correction that it's not an orphan, and contain the metapackage's extra intro tutorial. - `docs/apidoc/terra.rst`: renamed to `docs/apidoc/index.rst` and retitled to be correctly just "API Documentation". - `requirements-dev.txt`: the version of the Sphinx theme is bumped to 1.14 to match the metapackage expectation. Following merge commit 22a406c, there is a commit 66a5d9fe0 that fixes the ASV build for use in Terra, which is the rollup of the post-merge commits of Qiskit/qiskit#10546, which this PR supersedes. ### Details and comments This should probably be merged ASAP before `main` moves on. Resolutions on the metapackage: - Fix Qiskit/qiskit-metapackage#1723 - Fix Qiskit/qiskit-metapackage#1722 - Fix Qiskit/qiskit-metapackage#1746 After this has merged, Qiskit/qiskit#10610 should merge which will close the remaining migration-related issues from the metapackage. The metapackage was prepared for the migration using [`git-filter-repo`](https://github.com/newren/git-filter-repo), with the scripts and configuration files contained within [metapackage_migration.zip](https://github.com/Qiskit/qiskit-terra/files/12324298/metapackage_migration.zip). If you extract that zip, you need to activate a Python 3.11 `venv` then run `metapackage_rewrite.bash` which will prepare the repo in the exact state I merged to create this PR. *edit*: In retrospect writing this, you might need to modify my script so that it pulls only starting from commit Qiskit/qiskit-metapackage@f131daf, which was the tip of `master` at the time I ran this. I tested the docs build locally and it looks as correct as I can tell. There's still big cards pointing to experiments, dynamics etc on the landing page, but I figured that enough's enough, and we can just fix those last two things in Terra. This PR does not include Qiskit/qiskit-metapackage#1791, which should be now cherry-picked onto Terra.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This merge commit pulls in the history of the airspeed-velocity benchmark suite from its original location in the metapackage. The commits have been filtered to only include the history of the benchmark suite itself, and their messages rewritten to change GitHub issue and PR references to point to the renamed metapackage.
Details and comments
Merge commit e781aff is an unrelated-histories merge of a filtered history of the metapackage to contain only the benchmark suite with the issue numbers rewritten. The three commits that follow it are to bring the code up-to-date with CI protections within Terra, and adding a Terra-specific
asv.conf.json
file.Other than those three commits, there are no changes to the benchmark suite in this PR, though I/we intend to modernise them in the next couple of weeks while the
asv
bot is catching up on the metapackage repo, before we swap the bot to targetting the Terra repo.Fix Qiskit/qiskit-metapackage#1723.