You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -174,7 +174,7 @@ Here we provide a brief performance comparison between `QuantumToolbox.jl` and o
174
174
175
175
## Contributing to QuantumToolbox.jl
176
176
177
-
You are most welcome to contribute to `QuantumToolbox.jl` development by forking this repository and sending pull requests (PRs), or filing bug reports at the issues page. You can also help out with users' questions, or discuss proposed changes in the [QuTiP discussion group](https://groups.google.com/g/qutip).
177
+
You are most welcome to contribute to `QuantumToolbox.jl` development by forking this repository and sending pull requests (PRs), or filing bug reports at the issues page. Contributors and users are invited to [](https://quantumtoolbox-jl.zulipchat.com) for questions, development discussions, and community updates. You can also help out with users' questions, or discuss proposed changes in the [QuTiP discussion group](https://groups.google.com/g/qutip).
178
178
179
179
For more information about contribution, including technical advice, please see the [Contributing to Quantum Toolbox in Julia](https://qutip.org/QuantumToolbox.jl/stable/resources/contributing).
`QuantumToolbox.jl` is developed using the [`git`](https://git-scm.com/) version-control system, with the [main repository](https://github.com/qutip/QuantumToolbox.jl) hosted in the [qutip organisation on GitHub](https://github.com/qutip). You will need to be familiar with [`git`](https://git-scm.com/) as a tool, and the [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow) workflow for branching and making pull requests. The exact details of environment set-up, build process, and runtests vary by repository are discussed below. In overview, the steps to contribute are:
6
10
7
11
- Consider creating an issue on the GitHub page of the relevant repository, describing the change you think should be made and why, so we can discuss details with you and make sure it is appropriate.
@@ -13,16 +17,43 @@
13
17
- Write and make sure all the runtests pass. See [here](@ref doc-Contribute:Runtests) for more details.
14
18
- Make sure all the changes match the `Julia` code format (style). See [here](@ref doc-Contribute:Julia-Code-Format) for more details.
15
19
- Improve and make sure the documentation can be built successfully. See [here](@ref doc-Contribute:Documentation) for more details.
16
-
- Update changelog. See [here](@ref doc-Contribute:Update-ChangeLog) for more details.
20
+
- Update changelog. See [here](@ref doc-Contribute:ChangeLog) for more details.
17
21
- Add the changed files to the `git` staging area `git add <file1> <file2> ...`, and then create some commits with short-but-descriptive names: `git commit`.
18
22
- Push the changes to your fork (`origin`): `git push -u origin <branch-name>`. You won’t be able to push to the remote (`qutip`) repositories directly.
19
23
- Go to the GitHub website for the repository you are contributing to, click on the “Pull Requests” tab, click the “New Pull Request” button, and follow the instructions there.
20
24
21
25
Once the pull request (PR) is created, some members of the QuTiP admin team will review the code to make sure it is suitable for inclusion in the library, to check the programming, and to ensure everything meets our standards. For some repositories, several automated CI pipelines will run whenever you create or modify a PR. In general, these will basically be the same ones which you can run locally, and all CI pipelines are required to pass online before your changes are merged to the remote `main` branch. There might be some feedbacks and requested changes. You can add more commits to address these, and push them to the branch (`<branch-name>`) of your fork (`origin`) to update the PR.
22
26
23
-
The rest of this document covers programming standards.
The `make` command is not available by default on Windows. You will need to install a compatible version of `make` (for example via Git-for-Windows, MSYS2, or similar tools). A helpful reference for setting this up can be found here: https://stackoverflow.com/questions/66525016/how-to-run-make-command-in-gitbash-in-windows
31
+
32
+
To simplify common developer tasks, `QuantumToolbox.jl` provides a set of predefined `make` commands. These commands are defined in the repository’s file called `Makefile` and offer a convenient interface for running documentation builds, tests, formatting, and other maintenance routines.
33
+
34
+
If you are contributing for the first time, or have installed a fresh `julia` version, you should begin with:
24
35
25
-
## [Runtests](@id doc-Contribute:Runtests)
36
+
```shell
37
+
make setup
38
+
```
39
+
40
+
to install necessary dependencies. Here are several other common commands:
41
+
42
+
```shell
43
+
make test# run the tests
44
+
make format # format codes with JuliaFormatter
45
+
make docs # instantiate and build the documentation
46
+
make changelog # generate changelog
47
+
make help# view all commands
48
+
```
49
+
50
+
Each command may accept additional options or environment variables to customize its behavior. The following sections describe these commands in detail and explain the available configuration options.
The rest of this document covers programming standards for `QuantumToolbox.jl`.
55
+
56
+
### [Runtests](@id doc-Contribute:Runtests)
26
57
27
58
All the test scripts should be located in the folder `test` in the repository. To run the test, use the following command under the *__root directory of the repository__* you are working on:
28
59
@@ -38,13 +69,13 @@ The tests are divided into several test groups, where the group names are define
38
69
make GROUP=Core test
39
70
```
40
71
41
-
### [Test Item Framework for Core tests](@id doc-Contribute:Test-Item-Framework-for-Core-tests)
72
+
####[Test Item Framework for Core tests](@id doc-Contribute:Test-Item-Framework-for-Core-tests)
42
73
43
74
The tests in `GROUP=Core` are provided using the [Test Item Framework](https://www.julia-vscode.org/docs/stable/userguide/testitems/), which structures the test codes into `@testitems` and makes it easier to run individually.
44
75
45
76
The [VS Code](https://code.visualstudio.com/) and its [Julia extension](https://www.julia-vscode.org/) provides us with options to run individual `@testitems`. It is much easier to find the specific core test that failed since the [Julia extension](https://www.julia-vscode.org/) in [VS Code](https://code.visualstudio.com/) will collect all core test failures and then display them in a structured way, directly at the place in the code where a specific core test failed. See [here](https://www.julia-vscode.org/docs/stable/userguide/testitems/) for more details.
We use [`JuliaFormatter.jl`](https://github.com/domluna/JuliaFormatter.jl) to format all the source codes. The code style and extra formatting options is defined in the file `.JuliaFormatter.toml` in the repository.
50
81
@@ -57,7 +88,7 @@ To format the changed codes, use the following command under the *__root directo
All the documentation source files [in markdown (`.md`) format] and build scripts should be located in the folder `docs` in the repository.
63
94
@@ -74,6 +105,13 @@ make docs
74
105
75
106
This command will automatically rebuild `Julia` and run the script located in `docs/make.jl` (should be able to build the necessary files for the documentation).
76
107
108
+
One can also skip several processes in documentation build by adding arguments to the `make docs` command. For example,
109
+
110
+
```shell
111
+
make docs DOCTEST=false # skip doc tests
112
+
make docs DRAFT=true # disable cell evaluation
113
+
```
114
+
77
115
To read the documentation in a browser, you can run the following command:
78
116
79
117
```shell
@@ -82,7 +120,7 @@ make vitepress
82
120
83
121
This will start a local Vitepress site of documentation at `http://localhost:5173` in your computer.
The changelog is written in the file `CHANGELOG.md` in the repository. If you add some changes to the repository and made a PR, you should also add some messages or release notes together with the related PRs/issues entries to `CHANGELOG.md`. For example, add a new line in `CHANGELOG.md`:
0 commit comments