Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions .changeset/bun-migration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'intersphinx': minor
---

Upgraded tooling to use Bun as the package manager and test runner.
4 changes: 0 additions & 4 deletions .eslintrc.cjs

This file was deleted.

33 changes: 15 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,30 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 2
submodules: recursive
- name: Use Node.js 16.x
uses: actions/setup-node@v1
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 16.x
- run: npm install
- run: npm run lint:format
- run: npm run lint
bun-version: latest
- run: bun install --frozen-lockfile
- run: bun run lint:format
- run: bun run lint
test:
if: github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
strategy:
matrix:
node: ['16', '18']
name: Testing on node ${{ matrix.node }}
name: Testing with Bun
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 2
submodules: recursive
- name: Setup Node.js environment
uses: actions/setup-node@v2
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- run: npm install
- run: npm run test
bun-version: latest
- run: bun install --frozen-lockfile
- run: bun run build
- run: bun test
54 changes: 54 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Release

on:
push:
branches: [main]

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false

permissions:
contents: write # create the Version Packages PR / push tags
pull-requests: write # open/update the Version Packages PR
id-token: write # npm trusted publishing (OIDC) + provenance

jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10

# Node provides the npm client changesets publishes with.
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
registry-url: "https://registry.npmjs.org"

# npm trusted publishing needs npm >= 11.5.1 (Node 22 ships an older npm).
# OIDC exchange replaces a long-lived token, and provenance is automatic.
- name: Update npm
run: npm install -g npm@latest

- name: Install dependencies
run: bun install --frozen-lockfile

# `version` opens/updates the "Version Packages" PR when changesets exist;
# `publish` (bun run release → build + changeset publish) runs once that PR
# is merged and there are no pending changesets on main. Publishing uses
# OIDC trusted publishing — no NPM_TOKEN, just `id-token: write` above.
- name: Create Release PR or publish
uses: changesets/action@v1
with:
version: bun run version
publish: bun run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2024 Continuous Science Foundation
Copyright (c) 2026 Continuous Science Foundation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,25 @@ inv.setEntry({
inv.write('objects.inv');
```

## Development

This project uses [Bun](https://bun.sh) as its package manager and test runner.

```bash
# Install dependencies
bun install

# Build the library and CLI
bun run build

# Run the test suite (powered by `bun test`)
bun test

# Lint and check formatting
bun run lint
bun run lint:format
```

---

As of v1.0.0 this package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
Expand Down
477 changes: 477 additions & 0 deletions bun.lock

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import js from '@eslint/js';
import tseslint from 'typescript-eslint';
import prettier from 'eslint-config-prettier';

export default tseslint.config(
{
ignores: ['dist', 'node_modules', 'src/version.ts'],
},
js.configs.recommended,
...tseslint.configs.recommended,
prettier,
{
files: ['src/**/*.ts'],
languageOptions: {
ecmaVersion: 2021,
sourceType: 'module',
},
},
);
Loading
Loading