Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Feat/versioning #71

Merged
merged 17 commits into from
Feb 21, 2024
Merged
14 changes: 14 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": "standard-with-typescript",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
}
}
172 changes: 172 additions & 0 deletions .github/workflows/build-test-publish-on-push-cached.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
name: build-test-publish-on-push-cached
on:
workflow_dispatch:
pull_request:
branches:
- 'main'
- 'next'
- 'unstable'
push:
branches:
- 'main'
- 'next'
- 'unstable'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- uses: pnpm/action-setup@v3
with:
version: 8
- run: pnpm add -g pnpm
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- run: pnpm install
- run: pnpm build
- name: 'Save build output'
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}
key: ${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}

test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: pnpm/action-setup@v3
with:
version: 8
- run: pnpm add -g pnpm
- name: 'Restore build output'
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}
key: ${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}
restore-keys: ${{ runner.os }}-build-${{ github.sha }}
fail-on-cache-miss: true
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: 'Run node'
run: pnpm test
- uses: actions/upload-artifact@v3
with:
name: coverage-artifacts
path: coverage/

report-coverage:
runs-on: ubuntu-latest
needs: [test]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/download-artifact@v3
with:
name: coverage-artifacts
path: coverage
# - name: Merge Code Coverage
# run: npx nyc merge coverage/ coverage/coverage-final.json
# TODO: include once we have codecov token setup
# - uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# fail_ci_if_error: false

# lint:
# needs: build
# runs-on: ubuntu-latest
# steps:
# - uses: pnpm/action-setup@v3
# with:
# version: 8
# - run: pnpm add -g pnpm
# - name: 'Restore build output'
# uses: actions/cache/restore@v4
# with:
# path: ${{ github.workspace }}
# key: ${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}
# restore-keys: ${{ runner.os }}-build-${{ github.sha }}
# fail-on-cache-miss: true
# - name: 'Setup Node.js with pnpm cache'
# uses: actions/setup-node@v4
# with:
# node-version: 20
# cache: 'pnpm'
# - name: 'Run lint'
# run: pnpm run lint

# Only run this job when the push is on main, next or unstable
publish:
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/unstable')
needs:
- build
- test
# - lint
env:
NPM_TOKEN: ${{secrets.NPM_TOKEN}}
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
GH_TOKEN: ${{secrets.GH_TOKEN}}
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
GH_USER: ${{secrets.GH_USER}}
GH_EMAIL: ${{secrets.GH_EMAIL}}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{secrets.GH_TOKEN}}
- uses: pnpm/action-setup@v3
with:
version: 8
- run: pnpm add -g pnpm
- name: 'Setup Node.js with pnpm cache'
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: 'Restore build output'
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}
key: ${{ runner.os }}-build-${{ github.sha }}-${{ github.run_id }}
restore-keys: ${{ runner.os }}-build-${{ github.sha }}
fail-on-cache-miss: true

- name: 'Setup git coordinates'
run: |
git remote set-url origin https://${{secrets.GH_USER}}:${{secrets.GH_TOKEN}}@github.com/${{ github.repository }}.git
git config user.name $GH_USER
git config user.email $GH_EMAIL

- name: 'Setup npm registry'
run: |
echo "@veramo:registry=https://registry.npmjs.org/" > .npmrc
echo "registry=https://registry.npmjs.org/" >> .npmrc
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc
npm whoami

- name: 'Publish @latest when on main'
if: github.ref == 'refs/heads/main'
run: pnpm publish:latest

- name: 'Publish @next when on next'
if: github.ref == 'refs/heads/next'
run: pnpm publish:next

- name: 'Publish @unstable when on unstable branch'
if: github.ref == 'refs/heads/unstable'
run: pnpm publish:unstable
26 changes: 0 additions & 26 deletions .github/workflows/test-pr.yaml

This file was deleted.

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ node_modules
dist

.vscode
coverage
coverage
.npmrc
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [2.0.3](https://github.com/openwallet-foundation-labs/sd-jwt-js/compare/v2.0.2...v2.0.3) (2024-02-20)
Copy link
Member

Choose a reason for hiding this comment

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

I assume that this changelog generated automatically, is it right?
It might be needed to fix manually as we discuss in #44. To 0.x

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think we should remove the generated one from this PR. As mentioned above, I don't know what's the best way to generate the changelog that should be part of the github repo. It should be relatively easy to use the release mechanism of github

Copy link
Member

Choose a reason for hiding this comment

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

@cre8 I think we might need to reset all the tags in this repo when we deploy to @sd-jwt/*

Copy link
Member

Choose a reason for hiding this comment

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

I guess release mechanism of github is easiest way :D.



### Bug Fixes

* update versioning ([058a562](https://github.com/openwallet-foundation-labs/sd-jwt-js/commit/058a5623e9fad3ef37fd3b1a0627a98fa7b3d59e))
12 changes: 10 additions & 2 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"version": "2.0.1",
"version": "2.0.3",
"npmClient": "pnpm",
"exact": true,
"message": "chore(release): %s"
"message": "chore(release): %s",
"packages": [
"packages/*"
],
"command": {
"publish": {
"conventionalCommits": true
}
}
}
39 changes: 25 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,18 @@
"version": "2.0.1",
"description": "sd-jwt draft 7 implementation in typescript",
"scripts": {
"build": "pnpm -r build",
"test": "pnpm -r test",
"test:browser": "pnpm -r test:browser",
"test:e2e": "pnpm -r test:e2e",
"test:cov": "pnpm -r test:cov"
"build": "lerna run build --stream",
"lint": "lerna run lint --stream",
"test": "vitest run --coverage",
"clean": "lerna clean -y",
"publish:latest": "lerna publish --conventional-commits --include-merged-tags --create-release github --yes --dist-tag latest",
"publish:next": "lerna publish --conventional-prerelease --force-publish --canary --no-git-tag-version --include-merged-tags --preid next --pre-dist-tag next --yes",
"publish:unstable": "lerna publish --conventional-prerelease --force-publish --canary --no-git-tag-version --include-merged-tags --preid unstable --pre-dist-tag unstable --yes"
},
"keywords": [
"verifiable-credentials",
"digital-wallet",
"sd-jwt",
"sdjwt",
"sd-jwt-vc",
"decentralized-identity",
"ssi",
"oauth",
"oauth2",
"openid-connect"
"sd-jwt-vc"
],
"repository": {
"type": "git",
Expand All @@ -32,6 +27,22 @@
},
"license": "Apache-2.0",
"devDependencies": {
"lerna": "^8.1.2"
"@types/node": "^20.10.2",
"@vitest/coverage-v8": "^1.2.2",
"jsdom": "^24.0.0",
"lerna": "^8.1.2",
"ts-node": "^10.9.1",
"tsup": "^8.0.2",
"typescript": "^5.3.2",
"vite": "^5.1.1",
"vitest": "^1.2.2"
},
"dependencies": {
"@typescript-eslint/eslint-plugin": "^6.4.0",
"eslint": "^8.0.1",
"eslint-config-standard-with-typescript": "^43.0.1",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-n": "^16.0.0",
"eslint-plugin-promise": "^6.0.0"
}
}
8 changes: 8 additions & 0 deletions packages/broswer-crypto/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [2.0.3](https://github.com/openwallet-foundation-labs/sd-jwt-js/compare/v2.0.2...v2.0.3) (2024-02-20)

**Note:** Version bump only for package @hopae/sd-jwt-browser-crypto
30 changes: 7 additions & 23 deletions packages/broswer-crypto/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@hopae/sd-jwt-browser-crypto",
"version": "2.0.1",
"version": "2.0.3",
"description": "sd-jwt draft 7 implementation in typescript",
"main": "dist/index.js",
"module": "dist/index.mjs",
Expand All @@ -13,21 +13,15 @@
},
"scripts": {
"build": "rm -rf **/dist && tsup",
"test": "vitest run ./src/test/*.spec.ts",
"test:browser": "vitest run ./src/test/*.spec.ts --environment jsdom",
"lint": "eslint src/**/*.ts",
"test": "pnpm run test:browser && pnpm run test:cov",
"test:browser": "vitest run ./src/test/*.spec.ts",
"test:cov": "vitest run --coverage"
},
"keywords": [
"verifiable-credentials",
"digital-wallet",
"sd-jwt",
"sdjwt",
"sd-jwt-vc",
"decentralized-identity",
"ssi",
"oauth",
"oauth2",
"openid-connect"
"sd-jwt-vc"
],
"repository": {
"type": "git",
Expand All @@ -39,17 +33,6 @@
"url": "https://github.com/openwallet-foundation-labs/sd-jwt-js/issues"
},
"license": "Apache-2.0",
"devDependencies": {
"@types/node": "^20.10.2",
"@vitest/coverage-v8": "^1.2.2",
"jsdom": "^24.0.0",
"lerna": "^8.1.2",
"ts-node": "^10.9.1",
"tsup": "^8.0.2",
"typescript": "^5.3.2",
"vite": "^5.1.1",
"vitest": "^1.2.2"
},
"tsup": {
"entry": [
"./src/index.ts"
Expand All @@ -62,5 +45,6 @@
"cjs",
"esm"
]
}
},
"gitHead": "ded40e4551bde7ae93083181bf26bd1b38bbfcfb"
}
14 changes: 2 additions & 12 deletions packages/broswer-crypto/vitest.config.mts
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
// vite.config.ts
import { defineConfig } from 'vite';
import { browserConfig } from '../../vitest.shared';

export default defineConfig({
test: {
// Common test configuration
globals: true,
coverage: {
reporter: ['text', 'json', 'html'],
},
environment: 'node', // Default environment
// Override per environment as needed
},
});
export default browserConfig;
Loading
Loading