Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
640b303
fix(api): correct date/time param epoch and NUMERIC insert scale
StefanSteiner Oct 8, 2026
1ca0f74
fix(mcp): stop panicking on non-ASCII text in previews and type infer…
StefanSteiner Oct 8, 2026
86cec91
ci: require the real check names in the release gates
StefanSteiner Oct 8, 2026
ad6fcd9
build: ship license text with every crate and npm package
StefanSteiner Oct 8, 2026
c22379f
docs: pre-1.0 audit pass over docs, rustdoc and comments
StefanSteiner Oct 8, 2026
0a3c4d7
fix: escape scratch-table DROP and label queries; fix has_table and I…
StefanSteiner Oct 8, 2026
dc8e1ac
fix(salesforce): stop leaking client secrets and tokens through Debug…
StefanSteiner Oct 8, 2026
e6cf3a3
fix(bootstrap): reject path-like release versions before install
StefanSteiner Oct 8, 2026
5a51b33
fix(api): do not delete a caller-supplied socket directory on HyperPr…
StefanSteiner Oct 8, 2026
8d1f078
fix(api): apply query_timeout and bind query_as!/query_scalar! arguments
StefanSteiner Oct 10, 2026
0860a3f
fix(core): send gRPC JSON parameters in hyperd's typed format
StefanSteiner Oct 10, 2026
ac3bd4b
docs(api): document OR/IN-over-parameters engine limitation
StefanSteiner Oct 10, 2026
48ea4e3
refactor(api)!: stop leaking core, tonic and deadpool types from the …
StefanSteiner Oct 10, 2026
96ead74
fix(api,core)!: address review of the public-API leak cleanup
StefanSteiner Oct 10, 2026
daa217e
docs(api): transport failures are Error::Connection, not Error::Io
StefanSteiner Oct 10, 2026
23173ab
feat(api,core)!: mark SqlType and Error struct variants non_exhaustive
StefanSteiner Oct 10, 2026
624ce95
fix(api,core,derive)!: always quote identifiers so reserved-word tabl…
StefanSteiner Oct 10, 2026
90f3512
fix(api)!: tie PreparedStatement::query rowset to the statement borrow
StefanSteiner Oct 10, 2026
1eb49d7
feat(api)!: move to arrow/parquet 60 and re-export arrow, chrono, geo…
StefanSteiner Oct 10, 2026
5be7ae2
refactor(api): name the prepared-statement borrow lifetime 'stmt
StefanSteiner Oct 10, 2026
90f2fac
feat(core)!: TLS negotiation module with sslmode verifiers and TLS ca…
StefanSteiner Oct 10, 2026
4c090cd
feat(api,core)!: TLS for TCP connections via the builders' tls(), can…
StefanSteiner Oct 10, 2026
84ab598
feat(api)!: TLS for both connection pools
StefanSteiner Oct 10, 2026
1a3fe70
feat(node): TLS options for ConnectionBuilder, ConnectionPool and Hyp…
StefanSteiner Oct 10, 2026
1f7562b
fix(api): async without_database/connect_with_auth reach IPC endpoints
StefanSteiner Oct 10, 2026
0fd87e3
fix(node): HyperProcess transport 'ipc' works and its endpoint is con…
StefanSteiner Oct 10, 2026
e944741
docs: TLS for TCP connections and pools
StefanSteiner Oct 10, 2026
ae273fe
fix(core,node): TLS final-review follow-ups
StefanSteiner Oct 10, 2026
37dfd45
fix(core): drop an IPv6 zone id from the TLS server name
StefanSteiner Oct 10, 2026
b8d8590
fix(mcp): read-only SQL checks follow Hyper's grammar and cover every…
StefanSteiner Oct 10, 2026
1659af8
fix(mcp)!: export and chart refuse to overwrite by default and never …
StefanSteiner Oct 10, 2026
82c6328
fix(core): scope the AsyncWriteExt import to the Unix cancel path
StefanSteiner Oct 10, 2026
9748e77
feat(mcp): per-user control transport and daemon lock
StefanSteiner Oct 10, 2026
1047b7d
feat(mcp)!: daemon health channel is a per-user Unix socket or named …
StefanSteiner Oct 10, 2026
d8f3d0f
feat(mcp): retire a pre-1.0 TCP daemon on takeover
StefanSteiner Oct 10, 2026
dd8daf7
fix(mcp): version takeover starts the new daemon reliably
StefanSteiner Oct 10, 2026
79174b1
fix(mcp): authenticate the control endpoint server and harden the Win…
StefanSteiner Oct 10, 2026
f22d123
chore: drop unpublished npm platform scaffolding and unused workspace…
StefanSteiner Oct 11, 2026
3ea87a1
build: ship third-party license notices in the npm platform packages
StefanSteiner Oct 11, 2026
3072dd4
docs(mcp): rewrite get_readme in compact schema notation
StefanSteiner Oct 11, 2026
3f9ae0d
test(mcp): gate unix-only test helpers so the Windows legs compile clean
StefanSteiner Oct 11, 2026
46e0755
test(core): close the TLS test client gracefully so Windows does not …
StefanSteiner Oct 11, 2026
0e4cc06
fix(sea-query): escape string literals Postgres-style and stop droppi…
StefanSteiner Oct 11, 2026
2530168
fix(core): drain or cancel abandoned result streams, wait out cancel …
StefanSteiner Oct 11, 2026
84e5ce2
fix(mcp): stop data loss in merge, replace and copy paths and clean u…
StefanSteiner Oct 11, 2026
9d4d0dc
fix(compile-check): skip registration errors under the rust-analyzer …
StefanSteiner Oct 11, 2026
473289a
fix(mcp): cap the advertised MCP protocol at 2025-11-25 and harden ca…
StefanSteiner Oct 11, 2026
d12f819
fix(mcp): answer the server/discover probe with method-not-found so C…
StefanSteiner Oct 11, 2026
dfc0218
fix(node): cap the pool under concurrent acquire and correct the hasD…
StefanSteiner Oct 11, 2026
1dce10f
fix(api): copy_database uses CREATE DATABASE FROM and close() skips D…
StefanSteiner Oct 11, 2026
9c5e591
fix(mcp): render BYTES, TIME and INTERVAL values in query results
StefanSteiner Oct 11, 2026
59c1d5d
fix(mcp): wait out Windows' slow loopback refusal when retiring a pre…
StefanSteiner Oct 11, 2026
37406f8
test(mcp): tolerate Windows byte-range lock when snapshotting daemon.…
StefanSteiner Oct 11, 2026
0c1f3cd
fix(api): send application_name on Unix-socket and named-pipe connect…
StefanSteiner Oct 11, 2026
a92a369
fix(api): AsyncInserter writes auto-flushed chunks to the socket inst…
StefanSteiner Oct 11, 2026
187efe1
test(api): add AsyncInserter integration tests
StefanSteiner Oct 11, 2026
fc8350a
test(mcp): isolate two_db_model_tests from the real user daemon and s…
StefanSteiner Oct 11, 2026
8519a1d
test(mcp): cover NoDiscover server/discover rejection and following i…
StefanSteiner Oct 11, 2026
dc491ec
test(mcp): cover create_table_as 42P07 skip and compile-check registr…
StefanSteiner Oct 11, 2026
428a7cd
docs(mcp): correct legacy-daemon probe cost for the Windows connect b…
StefanSteiner Oct 11, 2026
e2ddaf1
fix(node): reject NaN and out-of-range JS numbers instead of saturati…
StefanSteiner Oct 11, 2026
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 .cargo/audit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[advisories]
ignore = [
# `rsa` Marvin Attack — no constant-time fix yet. Used only for outbound
# JWT signing in `hyperapi-salesforce`, where timing sidechannels are not
# JWT signing in `hyperdb-api-salesforce`, where timing sidechannels are not
# observable to a remote attacker. Threat model does not apply.
"RUSTSEC-2023-0071",
# `ttf-parser` unmaintained (RUSTSEC-2026-0192, informational). Transitive via
Expand Down
2 changes: 1 addition & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ download-hyperd = "run --release --package hyperdb-bootstrap --bin hyperdb-boots
# Use mold on Linux to avoid lld OOM-crashing on large debug link jobs
# (CI ubuntu-latest runners have ~7 GB RAM; linking the full workspace in
# debug mode with lld exhausts it and triggers a Bus error / signal 7).
# mold is pre-installed on ubuntu-latest since actions/runner-images 20240310.
# CI installs mold via apt in every Linux job that builds code.
# No effect on macOS or Windows (target cfg guards the override).
[target.x86_64-unknown-linux-gnu]
linker = "clang"
Expand Down
2 changes: 1 addition & 1 deletion .claude/workflows/plan-to-release.js
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ CRITICAL — verify against the REAL published artifact, NOT this session's conn
\`npx -y ${npmPackage}@${expected} --ephemeral-only --no-daemon\`
These two flags avoid two real collisions with the session's live MCP, observed on the v0.7.0 run:
- \`--ephemeral-only\`: the shared persistent \`workspace.hyper\` is held open by the session's server; opening it from a second process throws SQLSTATE 55006 ("database file is locked by another process"). The KV smoke checks only need the ephemeral DB, so skip persistent entirely.
- \`--no-daemon\`: a newer client performs a daemon version-takeover on the shared port 7485 (a shipped feature) — killing the session's daemon. \`--no-daemon\` spawns a private hyperd and leaves the session's daemon alone.
- \`--no-daemon\`: a newer client performs a daemon version-takeover on the shared per-user health socket (a shipped feature) — killing the session's daemon. \`--no-daemon\` spawns a private hyperd and leaves the session's daemon alone.
Do the MCP JSON-RPC handshake (initialize -> notifications/initialized -> tools/call). GATE FIRST: call \`status\` and assert its reported version starts with "${expected}". If it does not, STOP — you are not testing the new artifact; report version_match=false. Only if the version matches, run these checks and record each as a test:
- kv_set returns a \`created\` field (true on first write, false on overwrite of the same key) and \`value_bytes\`.
- kv_set with overwrite:false on an existing key returns \`{stored:false, existed:true}\` / does not clobber.
Expand Down
31 changes: 26 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -252,9 +252,9 @@ jobs:
cargo test --workspace \
--exclude hyperdb-api-node \
--exclude hyperdb-bootstrap
# hyperdb-api-node needs napi-rs + a Node.js toolchain; it gets
# its own workflow when wired up. hyperdb-bootstrap has its own
# coverage (next step) and doesn't need hyperd running.
# hyperdb-api-node needs napi-rs + a Node.js toolchain; the
# node-bindings job builds and smoke-tests it. hyperdb-bootstrap has
# its own coverage (next step) and doesn't need hyperd running.

- name: hyperdb-compile-check tests
# Declares its own [workspace], so the run above cannot see it. Nothing
Expand Down Expand Up @@ -385,6 +385,29 @@ jobs:
- run: cargo install cargo-audit --locked
- run: cargo audit --deny warnings

third-party-licenses:
# Generates the THIRD-PARTY-LICENSES.txt that npm-build-publish.yml ships
# in the npm platform packages, so a dependency under an unaccepted
# license (about.toml) fails here rather than in the middle of a release.
name: third-party licenses
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
- uses: actions-rust-lang/setup-rust-toolchain@v2
with:
toolchain: stable
cache-key: about
rustflags: ""
- run: cargo install cargo-about --locked --features cli --version 0.9.2
- name: Generate the notices for both shipped binaries
run: |
set -euo pipefail
for crate in hyperdb-mcp hyperdb-api-node; do
cargo about generate --manifest-path "$crate/Cargo.toml" about.hbs \
-o "$RUNNER_TEMP/THIRD-PARTY-LICENSES-$crate.txt"
done

version-consistency:
# Ensures version.txt (release-please source of truth) stays in sync
# with Cargo.toml workspace version. Catches release-please PRs that
Expand Down Expand Up @@ -423,9 +446,7 @@ jobs:
hyperdb-api-node/package.json
hyperdb-api-node/npm/darwin-arm64/package.json
hyperdb-api-node/npm/darwin-x64/package.json
hyperdb-api-node/npm/linux-arm64-gnu/package.json
hyperdb-api-node/npm/linux-x64-gnu/package.json
hyperdb-api-node/npm/linux-x64-musl/package.json
hyperdb-api-node/npm/win32-x64-msvc/package.json
)
OFFENDERS=()
Expand Down
35 changes: 31 additions & 4 deletions .github/workflows/npm-build-publish.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
name: npm-build-publish

# Builds hyperdb-mcp and hyperdb-api-node npm packages with bundled
# hyperd binaries. Triggered after a successful release workflow creates
# a GitHub release, or manually via workflow_dispatch.
# hyperd binaries. Triggered by the hand-created GitHub Release
# (`release: published`, in parallel with release.yml), or manually via
# workflow_dispatch.

on:
workflow_dispatch:
Expand Down Expand Up @@ -58,17 +59,23 @@ jobs:
# them through bash → jq → Oniguruma was fragile and broke
# silently on the v0.2.2 release. Exact-string match avoids
# the whole class of regex-escaping bugs.
# These names must match the `name:` of the ci.yml jobs; the
# msrv entry embeds the MSRV, so it changes whenever ci.yml does.
# Every name must be present: a renamed or missing job makes the
# gate time out instead of silently lowering the count.
REQUIRED_JSON='[
"rustfmt","clippy (ubuntu-24.04)","clippy (windows-2025)",
"cargo-audit","cargo-deny",
"msrv (1.88)","doc","cargo-audit","cargo-deny",
"version consistency","publish dry-run",
"test (ubuntu-24.04)","test (macos-26)","test (windows-2025)",
"hyperdb-api-node (build + smoke)"
]'
EXPECTED=$(echo "$REQUIRED_JSON" | jq 'length')
for i in $(seq 1 "$MAX_ATTEMPTS"); do
RUNS=$(gh api "repos/$REPO/commits/$SHA/check-runs?per_page=100" \
--jq "[.check_runs[] | select(.name as \$n | $REQUIRED_JSON | index(\$n))]")
TOTAL=$(echo "$RUNS" | jq 'length')
PRESENT=$(echo "$RUNS" | jq '[.[].name] | unique | length')
COMPLETED=$(echo "$RUNS" | jq '[.[] | select(.status=="completed")] | length')
FAILED=$(echo "$RUNS" | jq '[.[] | select(.status=="completed" and (.conclusion!="success" and .conclusion!="skipped" and .conclusion!="neutral"))] | length')
echo "Attempt $i/$MAX_ATTEMPTS: total=$TOTAL completed=$COMPLETED failed=$FAILED"
Expand All @@ -77,7 +84,7 @@ jobs:
echo "$RUNS" | jq -r '.[] | select(.status=="completed" and (.conclusion!="success" and .conclusion!="skipped" and .conclusion!="neutral")) | " - \(.name): \(.conclusion)"'
exit 1
fi
if [[ "$TOTAL" -gt 0 && "$COMPLETED" == "$TOTAL" ]]; then
if [[ "$PRESENT" == "$EXPECTED" && "$COMPLETED" == "$TOTAL" ]]; then
echo "CI passed ($TOTAL required check-runs completed successfully)."
exit 0
fi
Expand Down Expand Up @@ -169,6 +176,9 @@ jobs:
MACOSX_DEPLOYMENT_TARGET: "13.0"
run: cargo build --release --target "$TARGET" -p hyperdb-api-node

- name: Install cargo-about
run: cargo install cargo-about --locked --features cli --version 0.9.2

- name: Download and verify hyperd
env:
SLUG: ${{ matrix.hyperd-slug }}
Expand Down Expand Up @@ -255,6 +265,8 @@ jobs:
cp "$f" "$DEST/"
done
cp LICENSE-HYPERD "$DEST/"
cargo about generate --manifest-path hyperdb-mcp/Cargo.toml about.hbs \
-o "$DEST/THIRD-PARTY-LICENSES.txt"
chmod +x "$DEST/hyperdb-mcp${EXE}" "$DEST/${HYPERD_BIN}" 2>/dev/null || true
echo "Contents of $DEST:"
ls -la "$DEST/"
Expand All @@ -280,6 +292,8 @@ jobs:
cp "$f" "$DEST/"
done
cp LICENSE-HYPERD "$DEST/"
cargo about generate --manifest-path hyperdb-api-node/Cargo.toml about.hbs \
-o "$DEST/THIRD-PARTY-LICENSES.txt"
chmod +x "$DEST/${HYPERD_BIN}" 2>/dev/null || true
echo "Contents of $DEST:"
ls -la "$DEST/"
Expand Down Expand Up @@ -331,6 +345,19 @@ jobs:
- name: Copy README into hyperdb-mcp npm publish directory
run: cp hyperdb-mcp/README.md hyperdb-mcp/npm/README.md

- name: Copy license files into every published npm package directory
# npm auto-includes only files named LICENSE / LICENCE, so the
# hyphenated names are listed in each package.json `files` array and
# copied in here, the same way as the README above. The platform
# list must match PLATFORMS in the version-injection step below.
run: |
set -euo pipefail
for d in hyperdb-mcp/npm hyperdb-api-node \
hyperdb-mcp/npm/{darwin-arm64,linux-x64-gnu,win32-x64-msvc} \
hyperdb-api-node/npm/{darwin-arm64,linux-x64-gnu,win32-x64-msvc}; do
cp LICENSE-MIT.txt LICENSE-APACHE.txt NOTICE "$d/"
done

- name: Resolve version and dist-tag from event
id: version
# Source-of-truth: the git tag that triggered the workflow.
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ name: release-please
# anchor on the freshly created tag and correct the next release PR (see #308).
#
# Uses a fine-grained PAT (RELEASE_PLEASE_TOKEN) instead of the default
# GITHUB_TOKEN so that PRs and tags created by this workflow trigger
# downstream CI and publish workflows. With GITHUB_TOKEN, GitHub
# suppresses workflow triggers on events it creates (anti-recursion).
# GITHUB_TOKEN so that PRs created by this workflow trigger downstream
# CI. With GITHUB_TOKEN, GitHub suppresses workflow triggers on events
# it creates (anti-recursion).
#
# After release-please opens or updates the release PR, a follow-up
# step reconciles Cargo.lock against the bumped Cargo.toml and pushes
Expand Down
29 changes: 17 additions & 12 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ name: release
# - a manual workflow_dispatch with an explicit existing tag (for
# re-runs or emergency releases).
#
# Note: the `push: tags:` trigger was removed because release-please
# now uses a PAT (RELEASE_PLEASE_TOKEN) that fires both `release:
# published` AND `push: tags:` events. Keeping both caused duplicate
# runs. For emergency releases that bypass release-please, use
# workflow_dispatch.
# There is no `push: tags:` trigger: pushing a tag alone publishes
# nothing. Use workflow_dispatch for re-runs or for emergency releases
# that bypass release-please.
#
# Stable tags (v0.1.0) mark the GitHub release as latest; pre-release
# tags (v0.1.0-rc.1) mark it as prerelease so it doesn't show as
Expand Down Expand Up @@ -60,16 +58,18 @@ jobs:
ref: ${{ github.event.inputs.tag || github.event.release.tag_name || github.ref }}

- name: Wait for CI to pass
# The full test matrix already ran on the merge commit before
# release-please tagged it. Re-running it here was ~20 minutes
# of redundant CI per release. Instead, poll the check-runs
# The full test matrix already ran on the release-PR merge
# commit, and re-running it here would cost ~20 minutes of
# redundant CI per release. Instead, poll the check-runs
# API for the tag's SHA and verify all required checks are
# green. Mirrors the verify-ci pattern in npm-build-publish.yml.
#
# Risk: a maintainer who runs workflow_dispatch with a tag on
# a SHA that never had CI would skip all test coverage. Guard
# against that by requiring TOTAL > 0 — if no required check
# ever ran on this SHA, abort.
# against that by requiring every name in REQUIRED_JSON to be
# present and completed — if a required check never ran on
# this SHA (or was renamed), the gate times out instead of
# passing.
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
Expand All @@ -85,16 +85,21 @@ jobs:
# them through bash → jq → Oniguruma was fragile and broke
# silently on the v0.2.2 release. Exact-string match avoids
# the whole class of regex-escaping bugs.
# These names must match the `name:` of the ci.yml jobs; the
# msrv entry embeds the MSRV, so it changes whenever ci.yml does.
REQUIRED_JSON='[
"rustfmt","clippy","cargo-audit","cargo-deny",
"rustfmt","clippy (ubuntu-24.04)","clippy (windows-2025)",
"msrv (1.88)","doc","cargo-audit","cargo-deny",
"version consistency","publish dry-run",
"test (ubuntu-24.04)","test (macos-26)","test (windows-2025)",
"hyperdb-api-node (build + smoke)"
]'
EXPECTED=$(echo "$REQUIRED_JSON" | jq 'length')
for i in $(seq 1 "$MAX_ATTEMPTS"); do
RUNS=$(gh api "repos/$REPO/commits/$SHA/check-runs?per_page=100" \
--jq "[.check_runs[] | select(.name as \$n | $REQUIRED_JSON | index(\$n))]")
TOTAL=$(echo "$RUNS" | jq 'length')
PRESENT=$(echo "$RUNS" | jq '[.[].name] | unique | length')
COMPLETED=$(echo "$RUNS" | jq '[.[] | select(.status=="completed")] | length')
FAILED=$(echo "$RUNS" | jq '[.[] | select(.status=="completed" and (.conclusion!="success" and .conclusion!="skipped" and .conclusion!="neutral"))] | length')
echo "Attempt $i/$MAX_ATTEMPTS: total=$TOTAL completed=$COMPLETED failed=$FAILED"
Expand All @@ -103,7 +108,7 @@ jobs:
echo "$RUNS" | jq -r '.[] | select(.status=="completed" and (.conclusion!="success" and .conclusion!="skipped" and .conclusion!="neutral")) | " - \(.name): \(.conclusion)"'
exit 1
fi
if [[ "$TOTAL" -gt 0 && "$COMPLETED" == "$TOTAL" ]]; then
if [[ "$PRESENT" == "$EXPECTED" && "$COMPLETED" == "$TOTAL" ]]; then
echo "CI passed ($TOTAL required check-runs completed successfully)."
exit 0
fi
Expand Down
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,8 @@ cargo test -p hyperdb-api
# Run a specific test
cargo test -p hyperdb-api test_name

# Run tests in a specific file (use module path)
cargo test -p hyperdb-api --test integration_test
# Run tests in a specific file (use the file stem)
cargo test -p hyperdb-api --test connection_tests
```

### Running Examples
Expand Down Expand Up @@ -311,7 +311,7 @@ hyperdb-api-core/src/types/ # Unit tests (inline with code)
**Test utilities:**

- `hyperdb-api/tests/common/mod.rs` - Shared test helpers
- `hyperdb-api-core/src/client/test_util.rs` - Client test utilities
- `hyperdb-api-core/tests/common/mod.rs` - Client test utilities
- Both use `HyperProcess::new()` to start temporary `hyperd` servers

**Pattern:** Tests create temporary `.hyper` files and clean them up automatically. The `make clean-test-files` command removes any leftover test artifacts.
Expand Down Expand Up @@ -346,7 +346,7 @@ Query results are **always streaming** to maintain constant memory usage:
```rust
let mut result = conn.execute_query("SELECT * FROM large_table")?;

// Process in chunks (default: 16384 rows per chunk)
// Process in chunks (TCP: up to 65,536 rows per chunk)
while let Some(chunk) = result.next_chunk()? {
for row in &chunk {
// Process row
Expand Down
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ It includes adaptions and additions from [Go Community Code of Conduct][golang-c
This Code of Conduct is licensed under the [Creative Commons Attribution 3.0 License][cc-by-3-us].

[contributor-covenant-home]: https://www.contributor-covenant.org (https://www.contributor-covenant.org/)
[golang-coc]: https://golang.org/conduct
[golang-coc]: https://go.dev/conduct
[cncf-coc]: https://github.com/cncf/foundation/blob/master/code-of-conduct.md
[microsoft-coc]: https://opensource.microsoft.com/codeofconduct/
[cc-by-3-us]: https://creativecommons.org/licenses/by/3.0/us/
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Use GitHub Issues page to submit issues, enhancement requests and discuss ideas.
### Bug Reports and Fixes

- If you find a bug, please search for it in the [Issues](https://github.com/tableau/hyper-api-rust/issues), and if it isn't already tracked,
[create a new issue](https://github.com/tableau/hyper-api-rust/issues/new). Fill out the "Bug Report" section of the issue template. Even if an Issue is closed, feel free to comment and add details, it will still
[create a new issue](https://github.com/tableau/hyper-api-rust/issues/new). Include the crate and version, your OS, the `hyperd --version` output, a minimal reproduction, and the expected vs. actual behavior. Even if an Issue is closed, feel free to comment and add details, it will still
be reviewed.
- Issues that have already been identified as a bug (note: able to reproduce) will be labelled `bug`.
- If you'd like to submit a fix for a bug, [send a Pull Request](#creating-a-pull-request) and mention the Issue number.
Expand Down Expand Up @@ -140,7 +140,7 @@ GPG signing is also supported — see [GitHub's signing-commits guide](https://d
7. **Submit** a Pull Request against the `main` branch and refer to the issue(s) you are fixing. Try not to pollute your pull request with unintended changes. Keep it simple and small.
8. **Sign** the Salesforce CLA (you will be prompted to do so when submitting the Pull Request)

> **NOTE**: Be sure to [sync your fork](https://help.github.com/articles/syncing-a-fork/) before making a pull request.
> **NOTE**: Be sure to [sync your fork](https://docs.github.com/en/pull-requests/how-tos/work-with-forks/syncing-a-fork) before making a pull request.

## Contributor License Agreement ("CLA")

Expand Down Expand Up @@ -274,4 +274,4 @@ Please follow our [Code of Conduct](CODE_OF_CONDUCT.md).

## License

By contributing your code, you agree to license your contribution under the terms of our project [MIT](LICENSE-MIT) and [Apache-2.0](LICENSE-APACHE) dual license, and to sign the [Salesforce CLA](https://cla.salesforce.com/sign-cla).
By contributing your code, you agree to license your contribution under the terms of our project [MIT](LICENSE-MIT.txt) and [Apache-2.0](LICENSE-APACHE.txt) dual license, and to sign the [Salesforce CLA](https://cla.salesforce.com/sign-cla).
Loading
Loading