diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..a96c1d2 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: weekly + - package-ecosystem: npm + directory: "/" + schedule: + interval: weekly diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 48b7116..8368dd1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,16 +11,16 @@ jobs: name: Build runs-on: ubuntu-latest steps: + - uses: actions/checkout@v7 - name: Use Node - uses: actions/setup-node@v1 + uses: actions/setup-node@v7 with: - node-version: '14.x' - - uses: actions/checkout@v2 + node-version: '18' + cache: yarn - name: Install NPM dependencies run: | - yarn install + yarn install --frozen-lockfile yarn global add asciidoctor@^2.2.4 - name: Build site run: | yarn adoc make - diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3cf59c2..c38ced3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,20 +30,21 @@ jobs: name: production url: https://www.interscript.org steps: + - uses: actions/checkout@v7 - name: Use Node - uses: actions/setup-node@v1 + uses: actions/setup-node@v7 with: - node-version: '14.x' - - uses: actions/checkout@v2 + node-version: '18' + cache: yarn - name: Install NPM dependencies run: | - yarn install + yarn install --frozen-lockfile yarn global add asciidoctor@^2.2.4 - name: Build site run: | yarn adoc make - name: Upload artifact - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-pages-artifact@v5 with: path: dist @@ -58,4 +59,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v2 \ No newline at end of file + uses: actions/deploy-pages@v5 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..388ac39 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,42 @@ +# Contributing + +Thanks for your interest in contributing! + +## Development setup + +```bash +git clone +cd +bundle install # Ruby projects +# or +npm ci # JS projects +``` + +## Workflow + +1. Fork → branch from `main` +2. Make changes with tests +3. Run `bundle exec rspec` (Ruby) or `npm test` (JS) locally +4. Run `bundle exec standardrb` (Ruby) or `npm run lint` (JS) +5. Open a PR with a clear description + +## Code style + +- Ruby: enforced by [StandardRB](https://github.com/standardrb/standard) +- JavaScript: enforced by ESLint + Prettier +- Python: enforced by ruff + +## Commit messages + +Use [Conventional Commits](https://www.conventionalcommits.org/): + +``` +feat: add new transliteration system +fix: correct off-by-one in CALT lookup +chore: bump dependencies +docs: clarify README +``` + +## Releases + +Maintainers tag releases following semver. CI publishes on tag push. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..4c1f49b --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,20 @@ +# Security Policy + +## Supported Versions + +The latest released version of this project receives security fixes. + +## Reporting a Vulnerability + +Please **do not** open public GitHub issues for security vulnerabilities. + +Report privately via one of: + +- **GitHub Security Advisories** — Security tab → "Report a vulnerability" (preferred) +- **Email** — open.source@ribose.com + +We acknowledge reports within 72 hours and aim to ship a fix within 30 days for critical issues. Coordinated disclosure is supported. + +## Disclosure + +Public disclosure happens after a fix is released, on a timeline agreed with the reporter.