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

Create a release with the QI2 integration test branch #506

Open
wants to merge 76 commits into
base: develop
Choose a base branch
from

Conversation

rturrado
Copy link
Contributor

@rturrado rturrado commented Oct 6, 2023

This PR can never go into develop since this branch is completely hacky.
It just contains the necessary changes for the Quantum Inspire people to do their integration test.
It should currently break existing code.

…n pass input, phase main: unknown instruction: X90 qubit'.

Updated libqasm to use the latest commit ID from libqasm/qi2_integration_test.
Removed read and read_v3 functions at read.cc.
Changed read_v1 back to read.
- This function now calls the v1 or v3 parsers depending on the input file version.
cqasm_reader.cc: build_analyzer() registers 'X90' and 'CNOT' and creates an analyzer with API version '3.0'.
read.cc: read creates an analyzer with API version '3.0'.
report.cc: Added 3.0 as a valid value for the cqasm_version in a compiler pass.
Added test_qi2_integration_test.cc.
Added test files to res.
Temporarily commented out all other tests.
kernel.cc, old_to_new.cc, platform.cc: commented out some 'sanitization' of instructions, i.e. turning them to lowercase.
spin-4.json: changed the names of 'x90' and 'cnot' to 'X90' and 'CNOT' also for the decomposed gates.
test_qi2_integration_test.cc: fixed 'output_file_path' and 'golden_file_path'.
…w available for build.

Fixed conanfile.py.
Removed some comments in CMakeLists.txt files.
- Version 3.0 files output top comment using '//', not '#'.
- Version 3.0 files always output the qubit register, with the 'qubit[n]' syntax.
- Added a version_compare function.
- Added a few helper methods at Writer: version_equal, version_less_than...
test/ql/ir/cqasm/write.cc: added tests for version_compare function.
@rturrado rturrado requested a review from pablolh October 6, 2023 09:50
Skipped Python tests failing due to case-sensitiveness (and other) changes.
- Added Conan dependency.
- Added manylinux/arm64 job.
- Removed Flex/Bison dependencies.
- Removed caching of Chocolatey for the Windows job.
write.cc: Apple Clang 14.0 doesn't implement yet std::lexicographically_compare_three_way.
… is weird because

assets.yml:
- Changed `yml` to `dnf` as we do for the QX simulator.
- Installed Conan dependency as part of the Build wheel step.
- Updated CMake version to 3.12 for Manylinux jobs.
assets.yml:
- Removed Manylinux 2014, left only Manylinux_2_28.
- Fixed Python command for Manylinux/64 job.
assets.yml:
- Removed a reference to Manylinux 2014 in the Manylinux/x64 job.
- Back to installing Conan as part of the 'Install dependencies' step.
assets.yml:
- Temporarily disabled all jobs except for Manylinux/x64.
- Installed python3-venv as a Manylinux/x64 job dependency.
- Built wheel in a Python virtual environment.
- Installed Conan in this Python virtual environment.
test.yml: temporarily disabled all jobs.
assets.yml: changed python3-venv to venv.
assets.yml: trying without installing venv.
assets.yml: trying to add Conan to path.
assets.yml: trying to install everything on a Python virtual environment.
assets.yml: activating the virtual environment for the Build wheel step as well.
assets.yml: doing everything at Build wheel step:
 - creating the Python venv,
 - installing Conan, and
 - exporting Conan's path to PATH.
assets.yml: sudoing the installation of conan.
assets.yml: removing sudo for the installation of conan.
assets.yml: some more testing.
assets.yml: trying to fix some syntax issues.
assets.yml: I was using 'string' instead of 'matrix.cpython_version' and '-3' instead of '-2'.
assets.yml: installed Flex/Bison and Java modules.
assets.yml: forgot to add BISON_VERSION, FLEX_VERSION and JAVA_VERSION to 'env'.
assets.yml: upgraded 'set-output' command to use Environment Files.
…ux/ARM64.

assets.yml:
- Disabled all jobs except for manylinux/arm64.
- Added '--plat' option to 'auditwheel repair'.
test.yml:
- Disabled all jobs except for cpp-arm64.
- Removed 'Get latest CMake' step for cpp-arm64.
…ux/ARM64.

assets.yml:
- Disabled all jobs except for manylinux/arm64 (Python 3.11).
- Trying to use an x86_64 container, as we do for the QX simulator.
test.yml:
- Disabled all jobs except for cpp-arm64/Linux.
- Added back 'Get latest CMake' step for cpp-arm64.
assets.yml: passing 'platform' option to container.
assets.yml: fixing typo for 'platform' option.
assets.yml:
- Back to using an ARM64 container.
- Removed repair wheel step.
test.yml: disabled cpp-arm64 job.
assets.yml: removed 'platform' option to container in manylinux/x64 job (added here by error in first place).
assets.yml: removed 'platform' option to container in manylinux/x64 job (yet another error).
assets.yml: retrying the x86_64 container, now setting 'platform' correctly.
assets.yml: reverting last commit and adding back the repair wheel step.
assets.yml: trying 'quay.io/pypa/manylinux_2_28_poc_aarch64:poc' image.
assets.yml: using wheel-inspect.
assets.yml: using wheel-inspect for Manylinux/x64 too.
version.h: updating OpenQL version to 0.11.2.
Enabling cpp-arm64/Linux job again.
And firing the assets workflow.
Those problems could come from the setup.py code, which has been changed to use 'conan create'.
assets.yml: enabling all jobs.
setup.py: removing the 're.escape' code.
assets.yml: disabling Python 3.8, 3.9 and 3.10 jobs.
setup.py: replacing single backslashes for double backslashes when setting python_dir and python_ext.
test_x90_q12__cnot_q1_q0.cq: it has to be a v1.0 file now.
test_x90_q12__cnot_q1_q0.qasm: removed block header.
write.cc:
- Temporarily always writing out v3 comments.
- Temporarily always writing out v3 version statement.
- Temporarily always writing out v3 qubit statement.
- Removed block header.
assets.yml: disabling everything except for Manylinux/x64.
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.

1 participant