{"id":25240435,"url":"https://github.com/juliaquantumcontrol/juliaquantumcontrol","last_synced_at":"2025-10-26T16:30:20.654Z","repository":{"id":64239742,"uuid":"417881411","full_name":"JuliaQuantumControl/JuliaQuantumControl","owner":"JuliaQuantumControl","description":"Development environment for the @JuliaQuantumControl organization","archived":false,"fork":false,"pushed_at":"2024-04-03T19:38:24.000Z","size":44,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-04T20:02:24.948Z","etag":null,"topics":["devops","julia"],"latest_commit_sha":null,"homepage":"https://github.com/JuliaQuantumControl","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuliaQuantumControl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-10-16T16:16:44.000Z","updated_at":"2024-01-12T18:23:29.000Z","dependencies_parsed_at":"2023-02-16T00:00:35.968Z","dependency_job_id":"4e74111b-a5c9-45c8-9f3e-66b2f49f5356","html_url":"https://github.com/JuliaQuantumControl/JuliaQuantumControl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaQuantumControl%2FJuliaQuantumControl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaQuantumControl%2FJuliaQuantumControl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaQuantumControl%2FJuliaQuantumControl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaQuantumControl%2FJuliaQuantumControl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaQuantumControl","download_url":"https://codeload.github.com/JuliaQuantumControl/JuliaQuantumControl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238357635,"owners_count":19458614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devops","julia"],"created_at":"2025-02-11T19:34:23.642Z","updated_at":"2025-10-26T16:30:20.291Z","avatar_url":"https://github.com/JuliaQuantumControl.png","language":"Julia","readme":"# JuliaQuantumControl Dev Environment\n\nThe packages within the [JuliaQuantumControl][] organization are tightly coupled. Development on any package should happen in conjunction with all other packages.\n\nWhen developing on a Unix system ([WSL](https://docs.microsoft.com/en-us/windows/wsl/) is recommended on Windows), you should use this repository to set up a development environment:\n\n```\ngit clone git@github.com:JuliaQuantumControl/JuliaQuantumControl.git\ncd JuliaQuantumControl\nmake clone\n```\n\nThis will clone all the active project repos within the [JuliaQuantumControl][] organization into a subfolder of `JuliaQuantumControl`. You may then navigate into any of the project folders for development, e.g.\n\n```\ncd QuantumControl.jl\nmake test\nmake devrepl\n```\n\nThe `Makefile` for each project is set up such that testing happens automatically against the current state of all sibling folders (the entire organization). Run just `make` within each project for available make-targets.\n\n\n## Org-level Makefile\n\nYou may also perform some development tasks across the entire organization by using `make` within the parent `JuliaQuantumControl` folder. E.g.,\n\n```\nmake pull\n```\n\nwill pull the current state of all org projects from Github,\n\n```\nmake status\n```\n\nwill show the state of all checkouts, and\n\n```\nmake distclean testall\n```\n\nwill run a complete set of tests for the entire organization.\n\nYou can also run\n\n```\nmake devrepl\n```\n\nfor a Julia REPL with the dev-version of all projects available. Note that this is in addition to the development REPL available for each individual project (`make devrepl` in the project folder), which also has access to the sibling projects.\n\n\n## Making Releases\n\nIf releases need to be made for multiple packages across the organization, they must be made in the order listed in the [package table](https://github.com/JuliaQuantumControl#packages)\n\nFor each package, for a release `X.Y.Z`, e.g. `1.0.0`, do the following from the `master` branch:\n\n- [ ] `git checkout -b release-1.0.0`\n- [ ] Modify `Project.toml` to bump to the new version number, set `compat` for all dependencies in the JuliaQuantumControl org to the latest release (removing any `\u003e=` specification)\n- [ ] Make a commit with message \"Release 1.0.0\"\n- [ ] `git push -u origin release-1.0.0`\n- [ ] Create a pull request\n- [ ] Apply the \"no changelog\" label\n- [ ] Wait for continuous integration to finish\n- [ ] Go to the main Github profile for the package\n- [ ] Select the `release-1.0.0` branch in the top left\n- [ ] Click on the commit ID of the release commit in the table title row\n- [ ] Comment `@JuliaRegistrator register` on the commit\n- [ ] Wait for JuliaRegistrator and Tagbot to make and tag a release, wait for all CI to finish\n- [ ] In the terminal, switch to the `master` branch\n- [ ] `git merge --no-ff --no-commit release-1.0.0`\n- [ ] Edit `Project.toml` to append `+dev` to the version number (e.g., `1.0.0+dev`), prepend `\u003e=` to the compat specification of all dependencies in the JuliaQuantumControl organization.\n- [ ] `git commit` to make a merge commit, use \"Bump version to 1.0.0+dev\" as the commit message\n- [ ] `git push` to push the `master`\n\n\n## The QuantumControlRegistry\n\n[Working with unregistered packages in Julia is tricky.](https://discourse.julialang.org/t/cant-figure-out-how-to-dev-install-unregistered-package/70298). Therefore, we have a [QuantumControlRegistry](https://github.com/JuliaQuantumControl/QuantumControlRegistry) to register any packages within the `JuliaQuantumControl` organization that should not be or are not ready yet for the [Julia General Registry](https://github.com/JuliaRegistries/General). Packages must be registered *either* in `QuantumControlRegistry` *or* in `General`: when a package gets added to `General`, it should be removed from `QuantumControlRegistry`.\n\nTo add the `QuantumControlRegistry` to your julia installation, run\n\n~~~\npkg\u003e registry add https://github.com/JuliaQuantumControl/QuantumControlRegistry.git\n~~~\n\nTo add packages to `QuantumControlRegistry`, or create new releases for previously added packages, use the `LocalRegistry.register` command in the [org-level REPL](#org-level-makefile) (`make devrepl`), e.g.,\n\n~~~\nusing LocalRegistry\nregister(\"./GRAPELinesearchAnalysis.jl/\", registry=\"QuantumControlRegistry\")\n~~~\n\nSee\n~~~\nhelp?\u003e register\n~~~\n\nor the [`LocalRegistry` documentation](https://github.com/GunnarFarneback/LocalRegistry.jl#readme) for details.\n\n\n[JuliaQuantumControl]: https://github.com/JuliaQuantumControl\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaquantumcontrol%2Fjuliaquantumcontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliaquantumcontrol%2Fjuliaquantumcontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaquantumcontrol%2Fjuliaquantumcontrol/lists"}