Skip to content

Commit 08dbcf3

Browse files
committed
Import visual-hashing standalone crate
0 parents  commit 08dbcf3

42 files changed

Lines changed: 2016 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
4+
* @paudley @ErinAudley
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
4+
name: Bug report
5+
description: Report a reproducible defect in emojihash, randomart, docs, or release tooling.
6+
title: "[bug] "
7+
labels:
8+
- bug
9+
body:
10+
- type: markdown
11+
attributes:
12+
value: |
13+
Thanks for reporting a bug. Please provide a minimal, reproducible report.
14+
A minimal input byte string or failing conformance vector is the most useful thing you can attach.
15+
16+
- type: checkboxes
17+
id: checks
18+
attributes:
19+
label: Pre-flight
20+
options:
21+
- label: I searched existing issues first.
22+
required: true
23+
- label: I can reproduce this on the current `main` branch or latest release.
24+
required: true
25+
26+
- type: dropdown
27+
id: area
28+
attributes:
29+
label: Area
30+
description: Which part of the project does this affect?
31+
options:
32+
- emojihash
33+
- randomart
34+
- Conformance corpus
35+
- Documentation
36+
- CI / release
37+
validations:
38+
required: true
39+
40+
- type: input
41+
id: version
42+
attributes:
43+
label: Version
44+
description: Which engine version or commit are you using?
45+
placeholder: "visual-hashing 0.1.3 or commit SHA"
46+
validations:
47+
required: true
48+
49+
- type: input
50+
id: environment
51+
attributes:
52+
label: Environment
53+
description: OS and Rust toolchain version.
54+
placeholder: "Ubuntu 24.04; rustc 1.x"
55+
validations:
56+
required: true
57+
58+
- type: textarea
59+
id: steps
60+
attributes:
61+
label: Steps to reproduce
62+
description: Provide the smallest sequence that reproduces the problem.
63+
placeholder: |
64+
1. Run a short code snippet using the library.
65+
2. Observe ...
66+
validations:
67+
required: true
68+
69+
- type: textarea
70+
id: expected
71+
attributes:
72+
label: Expected behavior
73+
validations:
74+
required: true
75+
76+
- type: textarea
77+
id: actual
78+
attributes:
79+
label: Actual behavior
80+
validations:
81+
required: true
82+
83+
- type: textarea
84+
id: logs
85+
attributes:
86+
label: Logs or output
87+
render: shell
88+
description: Paste command output, diagnostics, or stack traces.
89+
90+
- type: textarea
91+
id: context
92+
attributes:
93+
label: Additional context
94+
description: Anything else that helps explain the issue.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
4+
blank_issues_enabled: false
5+
contact_links:
6+
- name: GTS specification
7+
url: https://github.com/Blackcat-Informatics/gmeow-gts/blob/main/docs/GTS-SPEC.md
8+
about: Read the authoritative wire-format specification.
9+
- name: Security policy
10+
url: https://github.com/Blackcat-Informatics/gmeow-gts/blob/main/SECURITY.md
11+
about: Report vulnerabilities privately using the process described in SECURITY.md.
12+
- name: Questions & discussion
13+
url: https://github.com/Blackcat-Informatics/gmeow-gts/discussions
14+
about: Ask usage questions or discuss the format and engines.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
4+
name: Feature request
5+
description: Propose an enhancement to visual-hashing.
6+
title: "[feature] "
7+
labels:
8+
- enhancement
9+
body:
10+
- type: markdown
11+
attributes:
12+
value: |-
13+
Thanks for suggesting an improvement. Focus on the concrete user or maintainer
14+
problem you want to solve. Changes to rendered output affect the stable
15+
conformance corpus, so call that out explicitly.
16+
- type: checkboxes
17+
id: checks
18+
attributes:
19+
label: Pre-flight
20+
options:
21+
- label: I searched existing issues first.
22+
required: true
23+
- type: textarea
24+
id: problem
25+
attributes:
26+
label: Problem statement
27+
description: What workflow or limitation are you trying to address?
28+
validations:
29+
required: true
30+
- type: textarea
31+
id: proposal
32+
attributes:
33+
label: Proposed solution
34+
description: Describe the behavior you want.
35+
validations:
36+
required: true
37+
- type: dropdown
38+
id: scope
39+
attributes:
40+
label: Scope
41+
description: What does this touch?
42+
multiple: true
43+
options:
44+
- emojihash
45+
- randomart
46+
- Conformance corpus
47+
- Documentation
48+
- Tooling / CI
49+
validations:
50+
required: true
51+
- type: textarea
52+
id: examples
53+
attributes:
54+
label: Examples or prior art
55+
description: Links, mock output, CLI examples, or comparable tools.
56+
- type: textarea
57+
id: alternatives
58+
attributes:
59+
label: Alternatives considered
60+
description: Workarounds or other solutions you evaluated.
61+
- type: textarea
62+
id: context
63+
attributes:
64+
label: Additional context
65+
description: Any implementation constraints, risks, or compatibility considerations.

.github/copilot-instructions.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca> -->
2+
<!-- SPDX-License-Identifier: MIT OR Apache-2.0 -->
3+
# GitHub Copilot Instructions
4+
5+
This repository contains the `visual-hashing` Rust crate.
6+
7+
1. Preserve the public rendering contracts for emojihash and randomart unless a
8+
change intentionally updates the conformance vectors.
9+
2. Do not hand-edit `vectors/**/*.json`; regenerate them from the scripts under
10+
`python/scripts/` and review the resulting diff.
11+
3. Every source file must carry an SPDX `MIT OR Apache-2.0` license header.
12+
4. Match the existing Rust style and keep `cargo fmt`, `cargo clippy`, tests,
13+
rustdoc, wasm build, and package dry-run green.

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
version: 2
4+
updates:
5+
- package-ecosystem: cargo
6+
directory: /
7+
schedule:
8+
interval: weekly
9+
- package-ecosystem: github-actions
10+
directory: /
11+
schedule:
12+
interval: weekly

.github/pull_request_template.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<!--
2+
SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
3+
SPDX-License-Identifier: MIT OR Apache-2.0
4+
-->
5+
## Summary
6+
7+
- what changed
8+
- why it changed
9+
10+
## Validation
11+
12+
- [ ] `cargo fmt --check`
13+
- [ ] `cargo clippy --all-targets -- -D warnings`
14+
- [ ] `cargo test --locked`
15+
- [ ] `RUSTDOCFLAGS="-D warnings" cargo doc --no-deps`
16+
- [ ] `cargo build --lib --target wasm32-unknown-unknown`
17+
- [ ] `cargo publish --locked --dry-run`

.github/workflows/ci.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
name: CI
4+
5+
on:
6+
push:
7+
branches: [main]
8+
pull_request:
9+
10+
concurrency:
11+
group: ci-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
rust:
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
os: [ubuntu-latest, macos-latest, windows-latest]
23+
runs-on: ${{ matrix.os }}
24+
steps:
25+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
26+
with:
27+
persist-credentials: false
28+
29+
- name: Install Rust
30+
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
31+
with:
32+
components: clippy, rustfmt
33+
targets: wasm32-unknown-unknown
34+
35+
- name: Cache Cargo dependencies
36+
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
37+
38+
- name: Format
39+
if: runner.os == 'Linux'
40+
run: cargo fmt --check
41+
42+
- name: Clippy
43+
if: runner.os == 'Linux'
44+
run: cargo clippy --all-targets -- -D warnings
45+
46+
- name: Rustdoc
47+
if: runner.os == 'Linux'
48+
env:
49+
RUSTDOCFLAGS: -D warnings
50+
run: cargo doc --no-deps
51+
52+
- name: Test
53+
run: cargo test --locked
54+
55+
- name: Wasm library build
56+
if: runner.os == 'Linux'
57+
run: cargo build --lib --target wasm32-unknown-unknown
58+
59+
- name: Package dry-run
60+
if: runner.os == 'Linux'
61+
run: cargo publish --locked --dry-run

.github/workflows/codeql.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
2+
# SPDX-License-Identifier: MIT OR Apache-2.0
3+
name: CodeQL
4+
5+
on:
6+
push:
7+
branches: [main]
8+
pull_request:
9+
schedule:
10+
- cron: '17 8 * * 1'
11+
12+
permissions:
13+
contents: read
14+
security-events: write
15+
16+
jobs:
17+
analyze:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
21+
with:
22+
persist-credentials: false
23+
- uses: github/codeql-action/init@ec8392c46e2f411b2937041aae1504f52272c2dd # v4.30.8
24+
with:
25+
languages: rust
26+
- uses: github/codeql-action/analyze@ec8392c46e2f411b2937041aae1504f52272c2dd # v4.30.8

0 commit comments

Comments
 (0)