Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/01_bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ body:
id: rustiq_version
attributes:
label: RustiQ version or commit
placeholder: v0.1.0-alpha.1 or commit SHA
placeholder: v0.1.0-beta.1 or commit SHA
validations:
required: true

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/release-smoke.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: Release artifact smoke test

on:
pull_request:
branches: [main]
workflow_dispatch:
inputs:
ref:
Expand All @@ -12,6 +14,10 @@ on:
permissions:
contents: read

concurrency:
group: release-smoke-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
manual:
uses: ./.github/workflows/build-release-manual.yml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:

# Build and packages all the platform-specific things
build-local-artifacts:
name: build-local-artifacts (${{ join(matrix.targets, ', ') }})
name: Build platform artifacts
# Let the initial task tell us to not run (currently very blunt)
needs:
- plan
Expand Down
6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

The following capabilities are intended for the first public beta, `v0.1.0-beta.1`.
## [0.1.0-beta.1] - 2026-11-12


### Added

Expand Down Expand Up @@ -58,4 +59,5 @@ The following capabilities are intended for the first public beta, `v0.1.0-beta.
- The MP2 workspace budget does not bound total process memory; AO integral
storage can still grow rapidly with basis size.

[Unreleased]: https://github.com/mveril/RustiQ/commits/main/
[Unreleased]: https://github.com/mveril/RustiQ/compare/v0.1.0-beta.1...HEAD
[0.1.0-beta.1]: https://github.com/mveril/RustiQ/releases/tag/v0.1.0-beta.1
8 changes: 5 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ type: software
authors:
- family-names: Veril
given-names: Mickael
version: 0.1.0-alpha.1
license: MIT OR Apache-2.0
version: 0.1.0-beta.2.dev
license:
- MIT
- Apache-2.0
repository-code: https://github.com/mveril/RustiQ
abstract: A Rust prototype for modern quantum chemistry software.
abstract: Experimental quantum chemistry software written in Rust, providing a reusable scientific library and CLI. RustiQ-authored code is available under MIT OR Apache-2.0.
5 changes: 3 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ tokio = { version = "1", default-features = false }
name = "rustiq-chem"
description = "A modern command-line application for quantum chemistry, written in Rust"
authors.workspace = true
version = "0.1.0-alpha.1.dev"
version = "0.1.0-beta.2.dev"
edition.workspace = true
license.workspace = true
repository.workspace = true
Expand All @@ -91,7 +91,7 @@ completions = ["dep:clap_complete", "dep:clap_complete_nushell", "dep:sysinfo"]

[dependencies]
bytesize.workspace = true
rustiq-core = { package = "rustiq-chem-core", path = "crates/rustiq-core", version = "0.1.0-alpha.1.dev", default-features = false }
rustiq-core = { package = "rustiq-chem-core", path = "crates/rustiq-core", version = "0.1.0-beta.2.dev", default-features = false }
directories = "6"
miette = { workspace = true, features = ["fancy"] }
clap = { version = "4.6", features = ["cargo", "derive", "env"] }
Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,18 @@ and [the first H₂ calculation](https://mveril.github.io/RustiQ/getting-started
Release archives contain the executable and licenses; obtain basis data and
create calculation inputs as shown in those guides.

Once the beta is published, install it from crates.io with
`cargo install --locked rustiq-chem --version '=0.1.0-beta.1'`, or install the
tagged flake’s default package with
`nix profile install 'github:mveril/RustiQ/v0.1.0-beta.1'`.
See the installation guide for prerequisites and supported Nix platforms.

To build from source, install Git, Rust through [rustup](https://rustup.rs/), a
C/C++ build toolchain, and CMake; see [manual setup](docs/src/development/manual-setup.md).
Alternatively, enter `nix develop .#rust` after cloning:

```sh
git clone https://github.com/mveril/RustiQ.git
git clone --branch develop --single-branch https://github.com/mveril/RustiQ.git
cd RustiQ
cargo build --locked
cargo run --locked -- basis import tests/data/sto-3g.json
Expand Down
2 changes: 1 addition & 1 deletion THIRD-PARTY-NOTICES.sha256
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2fbcaed6277c0ee1532734dbf6474fea1965985e94c34c8fe07ab9ea0dbaf992 THIRD-PARTY-NOTICES.txt
3f1859908faa6531c31671624f15e6339819bd08c6ba0e70bc6c9cd6305d12d9 THIRD-PARTY-NOTICES.txt
10 changes: 5 additions & 5 deletions THIRD-PARTY-NOTICES.txt

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions crates/rustiq-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "rustiq-chem-core"
description = "A reusable Rust library for modern quantum chemistry software"
authors.workspace = true
version = "0.1.0-alpha.1.dev"
version = "0.1.0-beta.2.dev"
edition.workspace = true
license.workspace = true
repository.workspace = true
Expand All @@ -28,6 +28,7 @@ online = ["dep:reqwest", "dep:tokio"]
bench = []

[dependencies]
itertools = { version = "0.14", default-features = false }
miette.workspace = true
reqwest = { version = "0.13", default-features = false, optional = true, features = [
"json",
Expand All @@ -48,7 +49,7 @@ bounded-vec-deque = "0.1.1"
thiserror.workspace = true
rand.workspace = true
rand_chacha = "0.10"
petname = { version = "3.2", default-features = false }
petname = { version = "3.1", default-features = false }
rand_distr = "0.6"
special = { version = "0.14", default-features = false, features = ["std"] }
factorial = "0.4.0"
Expand Down
2 changes: 1 addition & 1 deletion docs/src/development/docker-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ cross-architecture emulation into the comparison.
Open a terminal on your computer and download the project:

```sh
git clone https://github.com/mveril/RustiQ.git
git clone --branch develop --single-branch https://github.com/mveril/RustiQ.git
cd RustiQ
```

Expand Down
2 changes: 1 addition & 1 deletion docs/src/development/manual-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Install Git and Rust through [`rustup`](https://rustup.rs/), then use Cargo
directly on Linux, macOS, or Windows:

```sh
git clone https://github.com/mveril/RustiQ.git
git clone --branch develop --single-branch https://github.com/mveril/RustiQ.git
cd RustiQ
rustup show
cargo build --locked
Expand Down
7 changes: 5 additions & 2 deletions docs/src/development/nix-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The flake also exposes `legacyPackages.<system>.cpuTarget`, a function accepting
an LLVM CPU name and returning a CPU-specific RustiQ package. See the
[installation guide](../getting-started/installation.md#install-with-nix) for
[Nix installation guide](../getting-started/installation-nix.md#optional-cpu-specific-build) for
commands and portability considerations. The default package remains portable.

The packages below are declared in [`flake.nix`](https://github.com/mveril/RustiQ/blob/main/flake.nix). All four
Expand Down Expand Up @@ -96,7 +96,10 @@ The flake also exposes `nix build .#book` to build this manual,
`nix build .#cargo-artifacts` for cached Cargo dependency artifacts, and
`nix build .#pyscf-environment` for the base PySCF environment. These are build
outputs rather than development shells. The default package is the RustiQ CLI
binary, available through `nix build`. Its online manual follows the Cargo
binary, available through `nix build` or explicitly through `nix build .#default`.
Install a tagged version with `nix profile install github:mveril/RustiQ/vVERSION`,
replacing `vVERSION` with a published tag. Both development and release revisions
use this default package. Its online manual follows the Cargo
version: a `dev` prerelease identifier selects development documentation;
other versions select the matching versioned manual. No release flag is needed.
See [releasing](releasing.md#preparing-a-release).
Expand Down
4 changes: 2 additions & 2 deletions docs/src/development/nix-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Install Nix with flakes enabled, clone the repository, and enter the development
shell manually:

```sh
git clone https://github.com/mveril/RustiQ.git
git clone --branch develop --single-branch https://github.com/mveril/RustiQ.git
cd RustiQ
nix develop
```
Expand Down Expand Up @@ -144,7 +144,7 @@ nix build
Install both Nix and `direnv`, enable the direnv hook for your shell, then run:

```sh
git clone https://github.com/mveril/RustiQ.git
git clone --branch develop --single-branch https://github.com/mveril/RustiQ.git
cd RustiQ
direnv allow
```
Expand Down
22 changes: 13 additions & 9 deletions docs/src/development/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,17 @@ out-of-date generated workflow. Keep the pin synchronized with the intended
upload-artifact release when updating the workflow or cargo-dist. Preserve the
custom `build-manual` job, the local-build dependency on it, and the download
into `manual/html/` when regenerating the release workflow; generated defaults do
not contain this offline-manual integration.
not contain this offline-manual integration. Preserve the static local-build job
name, `Build platform artifacts`, so pull requests that skip artifact builds
display a readable name before the target matrix is expanded.

### Release rehearsal

Run **Actions → Release artifact smoke test → Run workflow** and select the
commit, branch, or tag to rehearse. The manually triggered workflow builds the
configured target archive with the pinned dist version on each target's native
The **Release artifact smoke test** workflow runs automatically on pull requests
targeting `main`, testing the prospective merge commit. To rehearse another
revision, run **Actions → Release artifact smoke test → Run workflow** and select
the commit, branch, or tag. New runs cancel older rehearsals for the same pull
request or selected workflow ref. The workflow builds the configured target archive with the pinned dist version on each target's native
GitHub-hosted runner. It extracts that archive, verifies its dist-generated
SHA-256 checksum, starts the packaged `rustiq` executable, checks `--help`,
and runs the checked-in H2/STO-3G regression with a copied local basis fixture
Expand Down Expand Up @@ -68,12 +72,12 @@ system installations. The rehearsal requires the combined `sha256.sum` generated
dist build and verifies each tested archive against it. A checksum made during a rehearsal does not independently validate
a published release.

The rehearsal has read-only repository permissions and only a
`workflow_dispatch` trigger. It does not run dist's `host` command, upload
The rehearsal has read-only repository permissions and supports `pull_request`
events targeting `main` and manual `workflow_dispatch` runs. It does not run dist's `host` command, upload
release assets, create a GitHub Release, create tags, or publish crates. It
complements `.github/workflows/release.yml`, whose dispatched release path builds
and publishes the release assets; ordinary pull requests continue to use the
generated plan-only check.
and publishes the release assets. Pull requests targeting `develop` continue
to use the generated plan-only check without the six-target rehearsal.

Each executable archive includes `rustiq` (named `rustiq.exe` on Windows),
the README, `LICENSE-MIT`, `LICENSE-APACHE`, `COPYING`, `DISTRIBUTION.md`, and
Expand Down Expand Up @@ -268,7 +272,7 @@ if the Nixpkgs package differs:
cargo install cargo-dist --version 0.34.0 --locked
```

Development takes place on the default `develop` branch. Use a version ending
Development takes place on the `develop` branch. Use a version ending
in `.dev`, keeping both crate versions and the internal dependency synchronized.
Prepare a release on a `chore/*` task branch from `develop`: remove the development
identifier, finalize the dated changelog, and update `Cargo.lock`.
Expand Down
7 changes: 4 additions & 3 deletions docs/src/getting-started/first-calculation.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# First H₂ calculation

## Using only the release binary
## Using an installed release

Copy the following geometry into a file named `h2.xyz` in your working
directory. It is the same geometry used by the checked-in sample:
The following commands work after installing a release from a GitHub archive,
Cargo, or Nix. Copy the following geometry into a file named `h2.xyz` in your
working directory. It is the same geometry used by the checked-in sample:

```text
{{#include ../../../samples/h2/molecule.xyz}}
Expand Down
Loading
Loading