Git Product home page Git Product logo

sequence.js's Introduction

0xsequence

Sequence: a modular web3 stack and smart wallet for Ethereum chains

Usage

npm install 0xsequence ethers

or

pnpm install 0xsequence ethers

or

yarn add 0xsequence ethers

Packages

Development Environment

Below are notes and instructions on how to get your development environment up and running, and enjoyable.

  1. Install dependencies Run, pnpm install

  2. Workflow -- we use the amazing preconstruct package to handle our monorepo build system.

  3. Local dev -- when you're working on the code in this repository, you can safely run pnpm dev at the root-level, which will link all packages/** together, so that when a local dependency from packages/** is used by another, it will automatically be linked without having to run a build command. Just remember: run pnpm dev anytime you developing in this repo. Note, that when you run pnpm build it will clear the dev environment, so you will need to run pnpm dev again after a build. However, pnpm build should only be used when making a release.

  4. Testing -- to test the system, you can run pnpm test at the top-level or at an individual package-level.

  5. Type-checking -- to typecheck the system you can run pnpm typecheck at any level.

  6. Building -- to compile the project to dist files for a release, run pnpm build at the root-level. Note building packages repeatedly during development is unnecessary with preconstruct. During local development run pnpm dev and when building to make a release, run pnpm build.

  7. Versioning -- this repository uses the handy changesets package for package versioning across the monorepo, as well as changelogs. See Releasing section below.

Releasing to NPM

0xsequence uses changesets to do versioning. This makes releasing really easy and changelogs are automatically generated.

How to do a release

  1. Run pnpm to make sure everything is up to date
  2. Code.. do your magic
  3. Run pnpm changeset to generate a new .changeset/ entry explaining the code changes
  4. Version bump all packages regardless of them having changes or not
  5. Commit and submit your changes as a PR for review
  6. Once merged and you're ready to make a release, continue to the next step. If you're not ready to make a release, then go back to step 2.
  7. Run pnpm build && pnpm test to double check all tests pass
  8. Run pnpm version-packages to bump versions of the packages
  9. Commit files after versioning. This is the commit that will be published and tagged: git push --no-verify
  10. Run pnpm release. If the 2FA code timesout while publishing, run the command again with a new code, only the packages that were not published will be published.
  11. Finally, push your git tags, via: git push --tags --no-verify

How to do a snapshot release

NOTE: snapshot release is for dev preview, it's similar to the above, but:

  1. pnpm changeset
  2. pnpm changeset version --snapshot
  3. pnpm changeset publish --tag snapshot

NOTES

  1. Browser tests can be run with pnpm test or, separately pnpm test:server and pnpm test:run
  2. To run a specific test, run pnpm test:only <test-file-basename>, ie. pnpm test:only window-transport

TIPS

  • If you're using node v18+ and you hit the error Error: error:0308010C:digital envelope routines::unsupported, make sure to first set, export NODE_OPTIONS=--openssl-legacy-provider

LICENSE

Apache-2.0

Copyright (c) 2017-present Horizon Blockchain Games Inc. / https://horizon.io

sequence.js's People

Contributors

pkieltyka avatar agusx1211 avatar attente avatar acrylix avatar phabc avatar corbanbrook avatar dependabot[bot] avatar tolgahan-arikan avatar arilotter avatar nicolasmahe avatar aditya520 avatar nachomazzara avatar iflp avatar maschad avatar epg323 avatar ferranbt avatar rellfy avatar sjriddle avatar yeungphenom avatar ta-999 avatar danielrea avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.