Skip to content

chore: add community health files and GitHub setup script - #20

Merged
collinsezedike merged 2 commits into
mainfrom
chore/community-health
May 9, 2026
Merged

chore: add community health files and GitHub setup script#20
collinsezedike merged 2 commits into
mainfrom
chore/community-health

Conversation

@collinsezedike

Copy link
Copy Markdown
Collaborator

Description

Adds all community health files required for a professional open-source DeFi project and the Drips Stellar Wave Program. This sets up the full contributor infrastructure — issue templates, changelog, code of conduct, security policy, dependabot, and a GitHub setup script for labels, issues, and Discussions.

Related Issue

N/A — repository infrastructure work.

Type of Change

  • chore — build, CI, or dependency update

Context (DeFi / Stellar)

Field Value
Network tested on N/A
Protocol affected None
Touches contracts? No
Wallet used N/A

Changes

  • .github/ISSUE_TEMPLATE/bug_report.md — DeFi-specific bug report template (network, wallet, protocol, tx hash fields)
  • .github/ISSUE_TEMPLATE/feature_request.md — Feature request with scope table
  • .github/ISSUE_TEMPLATE/config.yml — Disables blank issues; links to Discussions and Stellar Discord
  • .github/dependabot.yml — Weekly npm + Actions dependency updates
  • CHANGELOG.md — Keep a Changelog format with [Unreleased] and [0.1.0] entries
  • CODE_OF_CONDUCT.md — Project code of conduct; enforcement contact: collinsezedike@gmail.com
  • SECURITY.md — DeFi-grade security policy covering scope, private reporting, 48hr SLA, mainnet contracts = Critical
  • CONTRIBUTING.md — Updated with Stellar Wave label info and markdown fixes
  • PULL_REQUEST_TEMPLATE.md — Updated with Network, Protocol affected, and Wallet fields
  • scripts/setup-github.sh — Idempotent gh script: 17 labels, 13 new issues, Discussions setup

Checklist

  • My branch follows the naming convention: chore/community-health
  • My commit messages follow Conventional Commits: chore: add community health files and GitHub setup script
  • No code changes — documentation and config only
  • I have not committed .env files, secrets, or private keys

@collinsezedike collinsezedike left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really solid infrastructure PR

The DeFi-specific issue templates, the honest changelog with pending issue links, and the thoughtful dependabot config (especially pinning the Stellar SDK to minor-only updates) all set a high bar for the project.

One thing to fix before this goes public: the next-intl reference in the Unreleased section needs updating since Next.js is gone. The SECURITY.md SLA is also worth revisiting given there is a just one maintainer. Everything else is nits.

Comment thread CHANGELOG.md Outdated
- Unsigned Soroban deposit/withdraw transaction XDR builder
- Soroban router contract for atomic single-transaction rebalancing
- Yield history sparkline chart per vault
- French/English i18n with `next-intl` and locale detection

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

next-intl is a Next.js-specific library and won't work with the Vite frontend from PR #3. Update this to a Vite-compatible alternative like react-i18next, or keep it framework-agnostic for now until i18n is actually scoped.

Comment thread SECURITY.md Outdated

| Stage | Target |
|---|---|
| Acknowledgement | Within **48 hours** of receipt |

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A 48hr response SLA with no backup contact is risky for a solo maintainer. One unavailable weekend and a critical mainnet vulnerability flies unacknowledged. Either soften this to "best effort within 48 hours" or add a secondary contact for Critical-severity reports.


<!-- What other approaches did you consider and why did you reject them? -->

## Acceptance Criteria

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: the three empty - [ ] acceptance criteria checkboxes will be submitted literally by contributors who don't read the template carefully.

Replace them with <!-- - [ ] e.g. User can deposit USDC into a Blend vault --> so they're instructional but don't pre-populate the issue.

Comment thread .github/dependabot.yml

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: target-branch isn't set, so Dependabot defaults to main. Fine for now, but worth making explicit so a future branching strategy change doesn't silently affect where dependency PRs land.

@collinsezedike collinsezedike added docs Documentation, guides, README, inline docs, or ADRs chore Build, CI, dependency updates, or repository maintenance labels May 9, 2026
@collinsezedike
collinsezedike merged commit d124fce into main May 9, 2026
2 checks passed
@collinsezedike
collinsezedike deleted the chore/community-health branch May 9, 2026 18:54
@collinsezedike collinsezedike removed docs Documentation, guides, README, inline docs, or ADRs chore Build, CI, dependency updates, or repository maintenance labels May 22, 2026
Iker2522 added a commit to Iker2522/meridian that referenced this pull request Sep 7, 2026
drydocs#557 lengthened migrate_adapter's MIN_LEDGER_GAP cooldown from ~1 minute
to ~1 day. The migration keeper didn't special-case the resulting
MigrationCooldownNotMet rejection, so it fell into the generic failure
path: every hourly run during that ~1-day window produced an HTTP 500
and a failure log entry, undermining the timelock's purpose of giving
observers a calm window to watch for a malicious begin_migration.

Adds isMigrationCooldownError (packages/stellar-sdk-helpers/src/keeper-tx.ts),
matching the contract's MigrationCooldownNotMet = 20 (packages/contracts/vault/src/errors.rs)
in the raw simulation error text, the same message-text approach
isStaleAdapterError already uses (withKeeperRetry's wrapping loses the
original error's type). migration-keeper.ts now checks it before the
existing isStaleAdapterError check and reports a skip instead of a
failure; api/v1/keepers/[action].ts needs no changes, since its
'failures.length > 0 ? 500 : 200' status logic already does the right
thing once the count is accurate.

Also fixes a stale comment describing the bug as intended behavior
('comfortably fine given MIN_LEDGER_GAP is ~1 minute'), and updates
apps/docs/operations/migration-keeper.md, which already documented this
exact gap as a tracked follow-up.

Verified: pnpm typecheck clean, 75/75 tests pass (2 new: a unit test for
isMigrationCooldownError and an integration test asserting the full
runMigrationKeeper path reports skipped/not failures/no retry for a
drydocs#20 simulation rejection), apps/docs vitepress build succeeds, and
prettier --check passes on every changed file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant