oakmac / chessboard2

chessboard.js v2
ISC License
81 stars 7 forks source link

chessboard2 JavaScript Library npm ISC License

An updated version of chessboard.js.

Development Status

April 2023: Development in progress. Getting close to an initial v2 release. Pretty usable for most projects in it's current state.

In-progress documentation available at https://chessboardjs.com/v2/examples

Download and Install

Instructions are available here.

@chrisoakman/chessboard2 on npm

Or use via CDN:

<!-- add stylesheet via CDN: -->
<link rel="stylesheet"
      href="https://unpkg.com/@chrisoakman/chessboard2@0.5.0/dist/chessboard2.min.css"
      integrity="sha384-47VeTDpmy4yT21gKPXQcLQYQZwlmz27gEH5NTrOmTk3G/SGvMyltclOW/Q8uE+sL"
      crossorigin="anonymous">

<!-- add JS via CDN: -->
<script src="https://unpkg.com/@chrisoakman/chessboard2@0.5.0/dist/chessboard2.min.js"
        integrity="sha384-/KwQCjA1GWovZNV3QDVtvSMDzO4reGgarF/RqHipr7hIUElH3r5zNl9WEPPOBRIF"
        crossorigin="anonymous"></script>

Naming and Versioning

chessboard2 is a distinct project from chessboard.js. The project name is "chessboard2" and the version of the library will be independent of the version of original chessboard.js.

To remove any confusion for users, I will release chessboard2 at v2.0.0 for it's "initial release". There will not be a v1.0.0 major release of chessboard2.

It is possible (although unlikely) that chessboard.js will have a v2.0.0 branch.

Development Setup

Make sure that node.js, yarn, and a modern version of the JVM are installed (for shadow-cljs), then:

## initial setup: install node_modules/ folder
yarn install

## produce website/chessboard2.js and build the local website
npm run build

## run a local web server on port 3232
npm run local-dev

In order to create and publish a release:

## 1) update CHANGELOG
## 2) make sure flags/runtime-checks? is set to false
## 3) update package.json version
## 4) create a git commit
## 5) create git tag: "git tag -a v1.4 -m "my version 1.4" "
## 6) push git tag to GitHub: git push origin <tagname>

## 7) create fresh build
npm run release

## 8) sanity-check the result files
npm publish --dry-run

## 9) publish
npm publish --access=public

Tests

## Unit Tests
npm run test

## Cypress
npm run cypress

TODO before go-live

API

License

ISC License