celq 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. celq-0.1.1/.github/scripts/publish-npm-binary.sh +64 -0
  2. celq-0.1.1/.github/scripts/stable_or_not.cel +3 -0
  3. celq-0.1.1/.github/workflows/main.yml +108 -0
  4. celq-0.1.1/.github/workflows/release_crates_io.yml +28 -0
  5. celq-0.1.1/.github/workflows/release_github.yml +100 -0
  6. celq-0.1.1/.github/workflows/release_npm.yml +116 -0
  7. celq-0.1.1/.github/workflows/release_pypi.yml +87 -0
  8. celq-0.1.1/.gitignore +27 -0
  9. celq-0.1.1/CONTRIBUTING.md +55 -0
  10. celq-0.1.1/Cargo.lock +942 -0
  11. celq-0.1.1/Cargo.toml +50 -0
  12. celq-0.1.1/LICENSE-APACHE +202 -0
  13. celq-0.1.1/LICENSE-MIT +21 -0
  14. celq-0.1.1/PKG-INFO +163 -0
  15. celq-0.1.1/README.md +137 -0
  16. celq-0.1.1/docs/manual.md +365 -0
  17. celq-0.1.1/npm/celq/.gitignore +133 -0
  18. celq-0.1.1/npm/celq/.yarnrc.yml +1 -0
  19. celq-0.1.1/npm/celq/LICENSE-APACHE +202 -0
  20. celq-0.1.1/npm/celq/LICENSE-MIT +21 -0
  21. celq-0.1.1/npm/celq/README.md +137 -0
  22. celq-0.1.1/npm/celq/package.json +50 -0
  23. celq-0.1.1/npm/celq/src/index.ts +40 -0
  24. celq-0.1.1/npm/celq/tsconfig.json +12 -0
  25. celq-0.1.1/npm/celq/yarn.lock +1039 -0
  26. celq-0.1.1/npm/package.json.cel +25 -0
  27. celq-0.1.1/pypi/.gitignore +7 -0
  28. celq-0.1.1/pypi/LICENSE-APACHE +202 -0
  29. celq-0.1.1/pypi/LICENSE-MIT +21 -0
  30. celq-0.1.1/pypi/README.md +137 -0
  31. celq-0.1.1/pypi/pyproject.toml +51 -0
  32. celq-0.1.1/pypi/uv.lock +43 -0
  33. celq-0.1.1/pyproject.toml +51 -0
  34. celq-0.1.1/src/args2cel/args2cel_test.rs +79 -0
  35. celq-0.1.1/src/args2cel/mod.rs +72 -0
  36. celq-0.1.1/src/cel2json/mod.rs +52 -0
  37. celq-0.1.1/src/cli/mod.rs +143 -0
  38. celq-0.1.1/src/documentation.rs +2 -0
  39. celq-0.1.1/src/input_handler/input_handler_test.rs +239 -0
  40. celq-0.1.1/src/input_handler/mod.rs +254 -0
  41. celq-0.1.1/src/json2cel/json2cel_test.rs +98 -0
  42. celq-0.1.1/src/json2cel/mod.rs +89 -0
  43. celq-0.1.1/src/main.rs +101 -0
  44. celq-0.1.1/tests/golden.rs +576 -0
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Usage: publish-npm-binary.sh <build-name> <build-os> <target>
5
+ # Example: publish-npm-binary.sh linux-x64-glibc ubuntu-24.04 x86_64-unknown-linux-gnu
6
+
7
+ BUILD_NAME="$1"
8
+ BUILD_OS="$2"
9
+ TARGET="$3"
10
+
11
+ BIN="celq"
12
+ NPM_DIR="npm"
13
+
14
+ # Read release version from package.json using celq
15
+ RELEASE_VERSION=$(cargo run -- "this.version" < "${NPM_DIR}/celq/package.json")
16
+ RELEASE_VERSION=${RELEASE_VERSION#\"}
17
+ RELEASE_VERSION=${RELEASE_VERSION%\"}
18
+
19
+ # Derive OS and architecture from build name
20
+ # Format: os-arch-variant (e.g., linux-x64-glibc, darwin-arm64)
21
+ node_os=$(echo "$BUILD_NAME" | cut -d '-' -f1)
22
+ node_arch=$(echo "$BUILD_NAME" | cut -d '-' -f2)
23
+
24
+ # Set package name (use 'windows' instead of 'win32')
25
+ if [[ "$BUILD_OS" == windows-* ]]; then
26
+ node_pkg="${BIN}-windows-${node_arch}"
27
+ else
28
+ node_pkg="${BIN}-${node_os}-${node_arch}"
29
+ fi
30
+
31
+
32
+ echo "Publishing ${node_pkg} version ${RELEASE_VERSION}"
33
+
34
+ # Create package directory
35
+ mkdir -p "${NPM_DIR}/${node_pkg}/bin"
36
+
37
+ # Generate package.json using celq
38
+ cargo run -- \
39
+ -n \
40
+ -p \
41
+ -S \
42
+ --from-file "${NPM_DIR}/package.json.cel" \
43
+ --arg="node_os:string=${node_os}" \
44
+ --arg="node_arch:string=${node_arch}" \
45
+ --arg="node_version:string=${RELEASE_VERSION}" \
46
+ --arg="node_pkg:string=${node_pkg}" \
47
+ > "${NPM_DIR}/${node_pkg}/package.json"
48
+
49
+ # Copy binary (add .exe extension for Windows)
50
+ binary_name="$BIN"
51
+ if [[ "$BUILD_OS" == windows-* ]]; then
52
+ binary_name="${BIN}.exe"
53
+ fi
54
+
55
+ cp "target/${TARGET}/release/${binary_name}" "${NPM_DIR}/${node_pkg}/bin/"
56
+ cp "LICENSE-MIT" "${NPM_DIR}/${node_pkg}/"
57
+ cp "LICENSE-APACHE" "${NPM_DIR}/${node_pkg}/"
58
+ cp "README.md" "${NPM_DIR}/${node_pkg}/"
59
+
60
+ # Publish package
61
+ cd "${NPM_DIR}/${node_pkg}"
62
+ npm publish --access public
63
+
64
+ echo "Successfully published ${node_pkg}"
@@ -0,0 +1,3 @@
1
+ (this.version.contains("beta")
2
+ || this.version.contains("alpha")
3
+ || this.version.contains("rc") ) ? "prerelease" : "stable"
@@ -0,0 +1,108 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+ branches: ["main"]
8
+ concurrency:
9
+ group: ${{ github.repository }}-${{ github.ref }}-${{ github.head_ref }}
10
+ cancel-in-progress: true
11
+
12
+ env:
13
+ CARGO_TERM_COLOR: always
14
+
15
+ jobs:
16
+ build:
17
+ name: Build (Linux x86-64)
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - name: Install Rust 1.90.0
23
+ uses: dtolnay/rust-toolchain@1.90.0
24
+
25
+ - name: Build with locked dependencies
26
+ run: cargo build --locked
27
+
28
+ format:
29
+ name: Format Check
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+
34
+ - name: Install Rust stable
35
+ uses: dtolnay/rust-toolchain@stable
36
+ with:
37
+ components: rustfmt
38
+
39
+ - name: Check formatting
40
+ run: cargo fmt --all -- --check
41
+
42
+ clippy:
43
+ name: Clippy
44
+ runs-on: ubuntu-latest
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+
48
+ - name: Install Rust 1.90.0
49
+ uses: dtolnay/rust-toolchain@1.90.0
50
+ with:
51
+ components: clippy
52
+
53
+ - name: Run Clippy
54
+ run: cargo clippy --all-targets --all-features -- -D warnings
55
+
56
+ test:
57
+ name: Test
58
+ needs: [build, format, clippy]
59
+ strategy:
60
+ fail-fast: false
61
+ matrix:
62
+ include:
63
+ - os: ubuntu-latest
64
+ target: x86_64-unknown-linux-gnu
65
+ rust: stable
66
+ - os: ubuntu-24.04-arm
67
+ target: aarch64-unknown-linux-gnu
68
+ rust: stable
69
+ - os: macos-latest
70
+ target: aarch64-apple-darwin
71
+ rust: stable
72
+ - os: windows-latest
73
+ target: x86_64-pc-windows-msvc
74
+ rust: stable
75
+ runs-on: ${{ matrix.os }}
76
+ steps:
77
+ - uses: actions/checkout@v4
78
+
79
+ - name: Install Rust ${{ matrix.rust }}
80
+ uses: dtolnay/rust-toolchain@master
81
+ with:
82
+ toolchain: ${{ matrix.rust }}
83
+ targets: ${{ matrix.target }}
84
+
85
+ - name: Run tests
86
+ run: cargo test --target ${{ matrix.target }}
87
+
88
+ docs:
89
+ name: Documentation
90
+ needs: [build, format, clippy]
91
+ runs-on: ubuntu-latest
92
+ steps:
93
+ - uses: actions/checkout@v4
94
+
95
+ - name: Install Rust stable
96
+ uses: dtolnay/rust-toolchain@stable
97
+
98
+ - name: Build documentation
99
+ run: cargo doc --no-deps --all-features
100
+ env:
101
+ RUSTDOCFLAGS: "-D warnings"
102
+
103
+ - name: Upload documentation
104
+ uses: actions/upload-artifact@v4
105
+ with:
106
+ name: documentation
107
+ path: target/doc/
108
+ retention-days: 1
@@ -0,0 +1,28 @@
1
+ name: Publish to crates.io
2
+
3
+ on:
4
+ workflow_dispatch: # Manual trigger only
5
+ push:
6
+ tags:
7
+ - "v[0-9]*" # Trigger on version tags like v1.0.0
8
+
9
+
10
+ jobs:
11
+ publish:
12
+ runs-on: ubuntu-latest
13
+ environment: crates_io_release
14
+
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Install Rust toolchain
20
+ uses: dtolnay/rust-toolchain@stable
21
+
22
+ - name: Run tests
23
+ run: cargo test
24
+
25
+ - name: Publish to crates.io
26
+ env:
27
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
28
+ run: cargo publish
@@ -0,0 +1,100 @@
1
+ # Release workflow for celq binaries
2
+ # Credit: Inspired by https://github.com/01mf02/jaq/blob/main/.github/workflows/release.yml
3
+ # Also see: https://github.com/BurntSushi/ripgrep/blob/61733f6378b62fa2dc2e7f3eff2f2e7182069ca9/.github/workflows/release.yml
4
+
5
+
6
+ name: GitHub Release
7
+
8
+ on:
9
+ workflow_dispatch: # Manual trigger only
10
+ push:
11
+ tags:
12
+ - "v[0-9]*" # Trigger on version tags like v1.0.0
13
+
14
+ defaults:
15
+ run:
16
+ shell: bash
17
+
18
+ env:
19
+ NAME: celq
20
+ VERSION: ${{ github.ref_name }}
21
+
22
+ # Required for gh release upload
23
+ permissions:
24
+ contents: write
25
+
26
+ jobs:
27
+ build:
28
+ name: ${{ matrix.target }}
29
+ runs-on: ${{ matrix.os }}
30
+ environment: github_release
31
+ strategy:
32
+ fail-fast: false
33
+ matrix:
34
+ include:
35
+ # macOS ARM64 (native)
36
+ - { target: aarch64-apple-darwin, os: macos-15 }
37
+
38
+ # Windows x86-64 (native)
39
+ - { target: x86_64-pc-windows-msvc, os: windows-2025 }
40
+
41
+ # Linux x86-64 (native - glibc)
42
+ - { target: x86_64-unknown-linux-gnu, os: ubuntu-24.04 }
43
+
44
+ # Linux x86-64 (native - musl static binary)
45
+ - { target: x86_64-unknown-linux-musl, os: ubuntu-24.04 }
46
+
47
+ # Linux ARM64 (native)
48
+ - { target: aarch64-unknown-linux-gnu, os: ubuntu-24.04-arm }
49
+
50
+ # Linux ARM64 (native - musl static binary)
51
+ - { target: aarch64-unknown-linux-musl, os: ubuntu-24.04-arm }
52
+
53
+ steps:
54
+ - uses: actions/checkout@v4
55
+
56
+ - name: Install Rust toolchain
57
+ uses: dtolnay/rust-toolchain@stable
58
+ with:
59
+ targets: ${{ matrix.target }}
60
+
61
+ - name: Install musl tools (for musl targets)
62
+ if: contains(matrix.target, 'musl')
63
+ run: |
64
+ sudo apt-get update
65
+ sudo apt-get install -y musl-tools
66
+
67
+ - name: Build
68
+ run: cargo build --locked --release --target ${{ matrix.target }}
69
+
70
+ - name: Create release archive
71
+ id: archive
72
+ run: |
73
+ EXE_suffix=""
74
+ case ${{ matrix.target }} in
75
+ *-pc-windows-*) EXE_suffix=".exe" ;;
76
+ esac
77
+
78
+ BIN_PATH="target/${{ matrix.target }}/release/${NAME}${EXE_suffix}"
79
+ BIN_NAME="${NAME}${EXE_suffix}"
80
+
81
+ # Determine archive format based on platform
82
+ case ${{ matrix.target }} in
83
+ *-pc-windows-*)
84
+ # Windows: create .zip archive
85
+ ARCHIVE_NAME="${NAME}-${{ matrix.target }}.zip"
86
+ 7z a "${ARCHIVE_NAME}" "${BIN_PATH}"
87
+ ;;
88
+ *)
89
+ # Linux/macOS: create .tar.gz archive
90
+ ARCHIVE_NAME="${NAME}-${{ matrix.target }}.tar.gz"
91
+ tar czf "${ARCHIVE_NAME}" -C "target/${{ matrix.target }}/release" "${BIN_NAME}"
92
+ ;;
93
+ esac
94
+
95
+ echo "ARCHIVE_NAME=${ARCHIVE_NAME}" >> $GITHUB_OUTPUT
96
+
97
+ - name: Upload release archive
98
+ env:
99
+ GH_TOKEN: ${{ github.token }}
100
+ run: gh release upload ${VERSION} ${{ steps.archive.outputs.ARCHIVE_NAME }}
@@ -0,0 +1,116 @@
1
+ # Release workflow to publish NPM packages
2
+ # Courtesy of: https://github.com/orhun/packaging-rust-for-npm/blob/4640d8a33491cc68cddc257b5966c8caa3b4e8c8/.github/workflows/cd.yml#L1
3
+ name: Publish to NPM
4
+
5
+ on:
6
+ workflow_dispatch: # Manual trigger only
7
+ push:
8
+ tags:
9
+ - "v[0-9]*" # Trigger on version tags like v1.0.0
10
+
11
+ permissions:
12
+ # IMPORTANT: this permission is mandatory for Trusted Publishing
13
+ id-token: write
14
+ contents: read
15
+
16
+ jobs:
17
+ publish-npm-binaries:
18
+ name: Publish NPM packages
19
+ runs-on: ${{ matrix.build.os }}
20
+ environment: npm_release
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ build:
25
+ - {
26
+ NAME: linux-x64-glibc,
27
+ OS: ubuntu-24.04,
28
+ TOOLCHAIN: stable,
29
+ TARGET: x86_64-unknown-linux-gnu,
30
+ }
31
+ - {
32
+ NAME: linux-arm64-glibc,
33
+ OS: ubuntu-24.04-arm,
34
+ TOOLCHAIN: stable,
35
+ TARGET: aarch64-unknown-linux-gnu,
36
+ }
37
+ - {
38
+ NAME: win32-x64-msvc,
39
+ OS: windows-2025,
40
+ TOOLCHAIN: stable,
41
+ TARGET: x86_64-pc-windows-msvc,
42
+ }
43
+ - {
44
+ NAME: win32-arm64-msvc,
45
+ OS: windows-2025,
46
+ TOOLCHAIN: stable,
47
+ TARGET: aarch64-pc-windows-msvc,
48
+ }
49
+ - {
50
+ NAME: darwin-x64,
51
+ OS: macos-15,
52
+ TOOLCHAIN: stable,
53
+ TARGET: x86_64-apple-darwin,
54
+ }
55
+ - {
56
+ NAME: darwin-arm64,
57
+ OS: macos-15,
58
+ TOOLCHAIN: stable,
59
+ TARGET: aarch64-apple-darwin,
60
+ }
61
+ steps:
62
+ - name: Checkout
63
+ uses: actions/checkout@v4
64
+
65
+ - name: Install Rust toolchain
66
+ uses: dtolnay/rust-toolchain@stable
67
+ with:
68
+ targets: ${{ matrix.build.TARGET }}
69
+
70
+ - name: Build
71
+ run: cargo build --release --locked --target ${{ matrix.build.TARGET }}
72
+
73
+ - name: Install node
74
+ uses: actions/setup-node@v6
75
+ with:
76
+ node-version: "24"
77
+ registry-url: "https://registry.npmjs.org"
78
+
79
+ - name: Make publish script executable
80
+ shell: bash
81
+ run: chmod +xw ./.github/scripts/publish-npm-binary.sh
82
+
83
+ - name: Publish to NPM
84
+ shell: bash
85
+ run: |
86
+ ./.github/scripts/publish-npm-binary.sh \
87
+ "${{ matrix.build.NAME }}" \
88
+ "${{ matrix.build.OS }}" \
89
+ "${{ matrix.build.TARGET }}"
90
+
91
+ publish-npm-base:
92
+ name: Publish the base NPM package
93
+ needs: publish-npm-binaries
94
+ environment: npm_release
95
+ runs-on: ubuntu-24.04
96
+ steps:
97
+ - name: Checkout
98
+ uses: actions/checkout@v4
99
+
100
+ - name: Install node
101
+ uses: actions/setup-node@v6
102
+ with:
103
+ node-version: "24"
104
+ registry-url: "https://registry.npmjs.org"
105
+
106
+ - name: Publish the package
107
+ continue-on-error: true
108
+ shell: bash
109
+ run: |
110
+ STABLE_OR_NOT=$(cargo run -- --from-file ./.github/scripts/stable_or_not.cel < "npm/celq/package.json")
111
+ STABLE_OR_NOT=${STABLE_OR_NOT#\"}
112
+ STABLE_OR_NOT=${STABLE_OR_NOT%\"}
113
+ cd npm/celq
114
+ yarn install # requires optional dependencies to be present in the registry
115
+ yarn build
116
+ npm publish --access public --tag "$STABLE_OR_NOT"
@@ -0,0 +1,87 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ workflow_dispatch: # Manual trigger only
5
+ push:
6
+ tags:
7
+ - "v[0-9]*" # Trigger on version tags like v1.0.0
8
+
9
+ permissions:
10
+ # IMPORTANT: this permission is mandatory for Trusted Publishing
11
+ id-token: write
12
+ contents: read
13
+
14
+ jobs:
15
+ publish-binaries:
16
+ name: Publish binaries
17
+ runs-on: ${{ matrix.build.os }}
18
+ environment: pypi_release
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ build:
23
+ - {
24
+ NAME: linux-x64,
25
+ OS: ubuntu-24.04,
26
+ TOOLCHAIN: stable,
27
+ TARGET: x86_64-unknown-linux-gnu,
28
+ }
29
+ - {
30
+ NAME: linux-arm64,
31
+ OS: ubuntu-24.04-arm,
32
+ TOOLCHAIN: stable,
33
+ TARGET: aarch64-unknown-linux-gnu,
34
+ }
35
+ - {
36
+ NAME: win32-x64-msvc,
37
+ OS: windows-2025,
38
+ TOOLCHAIN: stable,
39
+ TARGET: x86_64-pc-windows-msvc,
40
+ }
41
+ - {
42
+ NAME: darwin-arm64,
43
+ OS: macos-15,
44
+ TOOLCHAIN: stable,
45
+ TARGET: aarch64-apple-darwin,
46
+ }
47
+ steps:
48
+ - name: Checkout
49
+ uses: actions/checkout@v4
50
+
51
+ - name: Install Rust ${{ matrix.build.TOOLCHAIN }}
52
+ uses: dtolnay/rust-toolchain@stable
53
+ with:
54
+ toolchain: ${{ matrix.build.TOOLCHAIN }}
55
+ targets: ${{ matrix.build.TARGET }}
56
+
57
+ - name: Install uv
58
+ uses: astral-sh/setup-uv@v7
59
+ with:
60
+ version: "0.9.22"
61
+
62
+ - name: Install Python 3.12
63
+ run: uv python install 3.12
64
+
65
+ - name: Build Python wheels (Linux with cibuildwheel)
66
+ if: runner.os == 'Linux'
67
+ run: |
68
+ uvx cibuildwheel@3.3.1 --output-dir pypi/dist pypi
69
+
70
+ - name: Build Python wheels (Windows/macOS)
71
+ if: runner.os != 'Linux'
72
+ working-directory: pypi
73
+ run: |
74
+ uv build --wheel --out-dir dist
75
+
76
+ - name: Publish wheels to PyPI
77
+ run: uv publish --trusted-publishing always pypi/dist/*.whl
78
+
79
+ - name: Build source distribution
80
+ if: matrix.build.TARGET == 'x86_64-unknown-linux-gnu'
81
+ working-directory: pypi
82
+ run: |
83
+ uv build --sdist --out-dir dist
84
+
85
+ - name: Publish source distribution to PyPI
86
+ if: matrix.build.TARGET == 'x86_64-unknown-linux-gnu'
87
+ run: uv publish --trusted-publishing always pypi/dist/*.tar.gz
celq-0.1.1/.gitignore ADDED
@@ -0,0 +1,27 @@
1
+ # Generated by Cargo
2
+ # will have compiled files and executables
3
+ debug
4
+ target
5
+
6
+ # These are backup files generated by rustfmt
7
+ **/*.rs.bk
8
+
9
+ # MSVC Windows builds of rustc generate these, which store debugging information
10
+ *.pdb
11
+
12
+ # Generated by cargo mutants
13
+ # Contains mutation testing data
14
+ **/mutants.out*/
15
+
16
+ # RustRover
17
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
18
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
19
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
20
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
21
+ #.idea/
22
+
23
+
24
+ # Added by cargo
25
+
26
+ /target
27
+ .DS_Store
@@ -0,0 +1,55 @@
1
+ # Contributing
2
+
3
+ ## Building
4
+
5
+ `celq` is built with Rust. To contribute, you'll need to have `cargo` installed. If you don't, check
6
+ [rustup](https://rustup.rs/) for the most popular way of installing.
7
+
8
+ Once you have `cargo`, simply run:
9
+
10
+ ```bash
11
+ cargo build
12
+ ```
13
+
14
+ To use the local binary, `cargo run -- <ARGS>` is your friend.
15
+
16
+ ## Bug Fixes and Features
17
+
18
+ If `celq` has a bug or is missing a feature, please:
19
+ 1. Open an issue
20
+ 2. Discuss the proposed bug fix/ feature design
21
+ 3. Send a PR with tests
22
+
23
+ ## Tests
24
+
25
+ To run the tests:
26
+
27
+ ```bash
28
+ cargo test
29
+ ```
30
+
31
+ `celq` has two kind of tests: unit tests and integration tests.
32
+
33
+ Unit tests live very close to the implementation. Next to the `mod.rs`, there's generally a `module_test.rs`. It's fine to use unit tests for smaller details.
34
+
35
+ Integration tests live in the `test/` folder, mostly in `tests/golden.rs`. When fixing a bug or adding a feature, please try to add a test covering multiple combinations to that file.
36
+
37
+ ## Documentation
38
+
39
+ The `celq` manual lives in docs.rs. To build it locally, run:
40
+
41
+ ```bash
42
+ cargo doc --open --no-deps
43
+ ```
44
+
45
+ Despite `celq` being a binary, docs.rs reads from `src/lib.rs`. Our current documentation lives in the `docs/` folder, so `src/lib.rs` should exclusively include the markdown from the docs folder.
46
+
47
+ ## Packaging
48
+
49
+ Packaging `celq` for Linux, macOS, and Windows is a welcome contribution. If you add `celq` to a packaging repository, feel free to send a Pull Request updating the README to list that installation method.
50
+
51
+ ## MSRV
52
+
53
+ The Minimum Supported Rust Version (MSRV) of `celq` trys to align with the MSRV of Debian stable. To see their current MSRV, search for [rustc](https://packages.debian.org/search?keywords=rustc) and see the version listed for testing.
54
+
55
+ Notice that eventually that may lag behind the latest of rustc by a considerable margin. However, that guarantees that `celq` can be packaged by many Linux distributions.