Skip to content

Commit

Permalink
Meta: publish biblio to npm (#2393)
Browse files Browse the repository at this point in the history
  • Loading branch information
bakkot authored and ljharb committed Mar 2, 2022
1 parent 0bf22a9 commit c75e816
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 1 deletion.
27 changes: 27 additions & 0 deletions .github/workflows/publish-biblio.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: 'ecma-262-biblio'

on:
push:
branches:
- main

jobs:
publish:
name: 'publish ecma262-biblio'
runs-on: ubuntu-latest
if: ${{ github.repository == 'tc39/ecma262' }}

steps:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: 'lts/*'
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: npm ci

- name: Publish biblio
run: scripts/publish-biblio.sh
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_FOR_TC39_USER }}
9 changes: 9 additions & 0 deletions biblio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ECMA-262 Bibliography

This package, available on npm as `@tc39/ecma262-biblio`, contains a machine-readable representation of the terms, clauses, grammar, and abstract operations defined in ECMA-262. This will primarily be of use to people working with the specification itself.

If added as a dependency to a project using ecmarkup, you can load it by passing `--load-biblio @tc39/ecma262-biblio`.

It is automatically updated whenever ECMA-262 is. It is inherently unstable: editorial changes to the specification may add, remove, or modify the biblio, which may break your build (for example, if using ecmarkup with `--lint-spec --strict`). As such, **the usual semver guarantees do not hold**. You should pin a precise version of this package.

Major version bumps may be used for breaking changes to the format of the biblio itself. Minor version bumps may be used for non-breaking additions to the biblio format.
21 changes: 21 additions & 0 deletions biblio/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "@tc39/ecma262-biblio",
"version": "VERSIONED-DURING-PUBLISH",
"description": "Machine-readable representation of the internals of the ecma-262 spec",
"keywords": [
"ecmascript"
],
"author": "TC39",
"main": "biblio.json",
"exports": {
".": "./biblio.json",
"./package.json": "./package.json"
},
"files": [
"biblio.json"
],
"license": "SEE LICENSE IN LICENSE.md",
"publishConfig": {
"access": "public"
}
}
2 changes: 1 addition & 1 deletion scripts/check-form.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ const authors = request(branchURL).then((json) => JSON.parse(json)).then(data =>
const teamURL = 'https://api.github.com/orgs/tc39/teams/delegates';

function getMembers(teamID, page = 1) {
const memberURL = `https://api.github.com/teams/${teamID}/members?per_page=100&page=${page}`;
const memberURL = `https://api.github.com/organizations/tc39/teams/${teamID}/members?per_page=100&page=${page}`;
const data = request(memberURL).then((json) => JSON.parse(json));
return data.then((data) => {
if (data.length > 0) {
Expand Down
20 changes: 20 additions & 0 deletions scripts/publish-biblio.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash

set -euxo pipefail


$(npm bin)/ecmarkup --verbose spec.html --write-biblio biblio/biblio.json /dev/null

cp LICENSE.md biblio/

cd biblio

COMMIT_COUNT=$(git rev-list --count HEAD)
npm version --no-git-tag-version "1.0.${COMMIT_COUNT}"

SHORT_COMMIT=$(git rev-parse --short HEAD)
LONG_COMMIT=$(git rev-parse --verify HEAD)
echo "
This version was built from commit [${SHORT_COMMIT}](https://github.com/tc39/ecma262/tree/${LONG_COMMIT})." >> README.md

npm publish --access public

0 comments on commit c75e816

Please sign in to comment.