Microsoft's IQ# Server.
Перейти к файлу
Chris Granade 81120dbec4
Build conda packages for IQ#, qsharp.py (#37)
* Started iqsharp recipe.

* Update Jupyter.Core dependency to get --sys-prefix.

* Started work on packing new recipe.

* Modify steps to use conda env instead.

* Remove redundant step.

* Updated description.

* Add conda package to drop.

* Some very painful shell scripting.

* Move iqsharp conda install to opt.

* Fix order in which we add to path.

* Fix some bugs building dotnetcore-sdk from Linux.

* Use powershell instead of pwsh when building from Windows.

* Suppress profile when building iqsharp on POSIX.

* Made pwsh dependency from iqsharp POSIX-only.

* Started working on pwsh package.

* Only pack pwsh on non-Windows hosts.

* Prevent pwsh from capturing NuGet cache.

* Fix PowerShell 5.1 vs 6.2 issues.

* Fixed name of DOTNET_ROOT env var.

* Fix Runtime ID check on PS 5.1.

* Fix name of activation/deactivation scripts.

* Force line endings to enable patching 10607.

* Add SHA256 sums.

* Build fixes for # [non win].

* Fixes to test.

* Fixed meta.yaml for windows.

* Version bump

* Suppress posh profile on Windows.

* Fixed line endings in dotnet/cli#10607 workaround.

* Pin versions in pwsh.

* Added slightly more tests to iqsharp package.

* Use Jinja2 to handle IQ# version passed by set-env.ps1.

* Added qsharp package as well.

* Added qsharp package to pack as well.

* macOS fixes

* Fix some metadata.

* Extended build definition for xplat conda build.

* Renamed xplat conda build jobs.

* Propagate step template parameter into env.

* Adding more detail to pack diagnostics.

* Handle stderr from conda-build better.

* Detect $IsWindows even on Windows.

* Revert and downgrade to warning.

* Separate out conda-build call into separate job.

* Find .NET Core SDK more reliabily.

* Write conda build logs to temporary file as well.

* trying again to log.

* Explicitly write all conda-build output to host.

* Fixing property name in log upload.

* Fix uploadfile task command.

* Trying again to get any log information out of ADO.

* Don't trust conda-build's exit code.

* Switch to using pwsh everywhere.

* Fix macOS-specific bug.

* Fix pack-conda diagnostics.

* Forgot to remove log upload.

* First stab at removing dotnetcore-sdk and pwsh recipes.

* Updated pack script for reduced package set.

* Fixed test-time requirements for iqsharp.

* Force pwsh vs powershell.

* Try using pwsh on Windows.

* Lock conda-build to 3.18.8.

* Added call to dotnet --info.

* Revert "Added call to dotnet --info."

This reverts commit eeaf8a9ebd.

* Lock conda build to dotnet 2.2.401

* Adding more diagnostics.

* More diagnostics.

* even more diagnostics

* Disable binary prefix searching.

* yet more debugging

* fix diagnostics.

* One more fix to diagnostics.

* one moar fix

* undo diagnostics.

* Workaround for conda/conda-build#3736.

* Workaround for conda/conda-build#3170.

* Trying again to redirect stderr.

* trying one more time to suppress stderr.

* Putting try catch back.

* Redirect just stderr.

* Downgrade error action as well.

* Build 3.6 and 3.7 versions.

* Adding python version to outputs as well.
2019-09-25 10:56:23 -07:00
.github/ISSUE_TEMPLATE Initial commit. 2019-07-10 16:30:41 -07:00
.ionide Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
.vscode Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
build Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
conda-recipes Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
images/iqsharp-base Lock iqsharp-base version of Debian to Stretch. (#27) 2019-08-05 17:31:22 -07:00
src Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
test-containers/miniconda Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
.gitignore Initial commit. 2019-07-10 16:30:41 -07:00
CONTRIBUTING.md Initial commit. 2019-07-10 16:30:41 -07:00
LICENSE Initial commit. 2019-07-10 16:30:41 -07:00
NOTICE.txt Build conda packages for IQ#, qsharp.py (#37) 2019-09-25 10:56:23 -07:00
NuGet.Config Updates IQ# to use the prerelease feed. (#33) 2019-09-10 15:58:32 -07:00
PRIVACY.md Initial commit. 2019-07-10 16:30:41 -07:00
README.md Updates IQ# to use the prerelease feed. (#33) 2019-09-10 15:58:32 -07:00
bootstrap.ps1 Initial commit. 2019-07-10 16:30:41 -07:00
iqsharp.sln Initial commit. 2019-07-10 16:30:41 -07:00

README.md

Microsoft Quantum Development Kit: IQ# Kernel

Welcome to the Microsoft Quantum Development Kit!

This repository contains the IQ# kernel for the Quantum Development Kit. This kernel provides Q# support for the Jupyter platform, as well as the backend used by the Python client for Q#.

  • src/Core/: Core of the IQ# kernel.
  • src/Jupyter/: Assembly used to interoperate between Jupyter and the rest of the IQ# kernel.
  • src/Python/: Python package for accessing IQ#.
  • src/Tests/: Unit tests for IQ#.
  • src/Tool/: .NET Core Global Tool used to install and launch IQ#.
  • src/Web/: Provides a RESTful API into IQ#.

New to Quantum?

See the introduction to quantum computing provided with the Quantum Development Kit.

Getting Started

The Jupyter kernel provided in this repository is built using .NET Core (2.2 or later) and the compiler infrastructure provided with the Quantum Development Kit. Please see the getting started guide for how to get up and running.

You may also visit the microsoft/quantum repository, which offers a wide variety of samples on how to use this kernel to run Q# in Jupyter Notebooks, or from Python.

Building IQ# from Source

To build IQ# from Visual Studio 2017 or later, please use the iqsharp.sln solution file. To build using the .NET Core SDK, please run dotnet build iqsharp.sln.

In either case, the IQ# kernel can be installed by using dotnet run:

cd src/Tool/
dotnet run -- install

Optionally, you can install IQ# in development mode, which instructs the Jupyter platform to rebuild IQ# whenever a new kernel is started:

cd src/Tool/
dotnet run -- install --develop

This can cause some issues, especially when running multiple instances of IQ#, such that we recommend against using development mode in general usage.

Note that when building IQ# from source, this repository is configured so that .NET Core will automatically look at the Quantum Development Kit prerelease feed in addition to any other feeds you may have configured.

Using IQ# as a Container

This repository provides a Dockerfile that includes the .NET Core SDK, Python, Jupyter Notebook, and the IQ# kernel.

The image built from this Dockerfile is hosted on the Microsoft Container Registry as the quantum/iqsharp-base repository. The iqsharp-base image can be used, for instance, to quickly enable using Binder with Q#-language repositories, or as a base image for Visual Studio Code Development Containers.

To use the iqsharp-base image in your own Dockerfile, make sure to begin your Dockerfile with a FROM line that points to the Microsoft Container Registry:

FROM mcr.microsoft.com/quantum/iqsharp-base:latest

To use the iqsharp-base image as a development container for Visual Studio Code, add a .devcontainer folder that points to the Microsoft Container Registry:

{
    "image": "mcr.microsoft.com/quantum/iqsharp-base:latest",
    "extensions": [
        "quantum.quantum-devkit-vscode",
        "ms-vscode.csharp"
    ]
}

In either case, you can also use a Quantum Development Kit version number (0.8 or later) in place of latest to point to a specific version.

Build Status

branch status
master Build Status

Feedback

If you have feedback about IQ#, please let us know by filing a new issue! If you have feedback about some other part of the Microsoft Quantum Development Kit, please see the contribution guide for more information.

Telemetry

By default, IQ# collects information about the runtime performance of IQ#. To opt-out of sending telemetry, create an environment variable called IQSHARP_TELEMETRY_OPT_OUT set to a value of 1 before starting IQ#. The telemetry we collect falls under the Microsoft Privacy Statement.

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

For more details, please see CONTRIBUTING.md, or the contribution guide.